Our platform of choice, SUI, utilizes the smart contract language Move, which stands out for its distinctive attributes:
- Its object-oriented architecture provides a higher degree of control over the objects. This feature is particularly beneficial when working with complex systems.
- Each Stablecoin we formulate, along with the attributes we attach to it, are stored as distinct objects. This allows for a streamlined and organized method of tracking each Stablecoin.
- Move's flexibility is a substantial enhancement over other programming languages, such as Solidity and Clarity. It offers more customization, which is pivotal in creating a user-friendly platform.
- Unlike EVM chains, where certain functions can become unresponsive due to insufficient fees or limited bandwidth, Move has no such constraints. This ensures a smooth and efficient operation of our platform.
The Smart Contract Development for our S3 platform is particularly unique due to its notable features:
- We have established a master contract encompassing all the basic functionalities associated with a Stablecoin, such as mint/burn/allocate, and so on. This creates a solid foundation for each Stablecoin that is generated.
- Whenever a new Stablecoin is created, we duplicate our master contract and assign specific fields:
-
The name of the Stablecoin
-
The ticker of the Stablecoin
-
The symbol representing the Stablecoin
-
The initial supply of the Stablecoin
-
The type of supply (Finite / Infinite)
In cases where the supply is finite, we have to specify the maximum supply
-
The decimal points
-
The permissions, which may include:
- Pausing and resuming the system
- Freezing the system
- Minting new coins
- Cashing In
- Burning coins
- The smart contract also manages the roles assigned to users who can interact with the Stablecoin, including the ability to pause/restart the system, mint/burn coins, and cash in.
- Of significant importance is the fact that each newly deployed contract is associated with an owner account address. Only this owner has ultimate control over the respective Stablecoin. Our system is designed such that it cannot override any actions or perform any actions on behalf of the owner.
A sample contract on the testnet can be accessed at the following link:
https://suiscan.xyz/testnet/object/0x6f5ecffa754dd5ed0cc3c70e7a596a405244a7da341c76ab4d0458c4cd9afcf3/contracts
Pravica Token Contracts
This document describes the smart token contracts created by the
S3.MONEY backend.
Naming
When a user creates a token, they send details like
- ticker symbol: starts with a "$" and is in capital letters
- name: a free-form name for the token