ExC Tokens and Automated Exchange
Tokens are created and used similar to other cryptocurrency token platforms (such as Graphene).
Token features include all ExC base coin features as blockchain snapshots, branched chains, fast search and PoS rewards. This features can be enabled by token owner.
Main difference is that fee from token transactions is charged in tokens. This improvement helps to distribute token faster and popularize it. User will have an opportunity to exchange all tokens at distributed exchange integrated in ExC platform.
ExC Automated Exchange is ExC-based, integrated exchange service, built on DeFi principles. Every ExC-based token (ExT) has the possibility to enable exchange pairs with other ExT-s. Only requirement for token creators is to maintain a liquidity pool for desired exchange pairs. Also, ExC Automated Exchange is community-driven, so everyone can participate in liquidity pool maintenance via DeFi farming.
ExC Tokens are powered by ExtraChain smart-contracts. Smart contracts are made from simple and advanced code blocks, inducing visual simplicity united with complex approach.
Simple Code Blocks are same as in traditional block diagram:
- Integer value;
- Double value;
- Bool value;
- Plus block;
- Multiply block;
- Minus block;
- Equation block;
- Array block;
- Map block;
- "OR" block;
- "AND" block;
- "NOT" argument for block;
- "RATIO" block (block defines ratio between two Integer or Double values);
Advanced Code Blocks are more complex but flexible for more high-level development:
- "Creation" block (this block is predefined to ensure compatibility with other ExC tokens and services):
- Type - ExT / ExNFT / ExService;
- Owner address;
- Token holder address (if needed to send tokens to distributor at creation);
- Total token amount (total supply);
- Token minting/staking slot (here TM/SF block should be connected);
- (ExNFT only) Unique link to ExDFS file;
- All functions of smart contract should be connected to "Creation" output;
- "Transfer From/To" block (this block is predefined to ensure compatibility with other ExC tokens and services):
- Sender Address (with checkbox - if needed, service provider can do transfers from sender to service provider address. Disabled by default);
- Receiver Address;
- Data Payload;
- Transaction condition slot (used to control transaction process);
- Result - JSON with success/failure of transaction;
- "Exchange Processing" block:
- First token address;
- First token amount;
- Second token address;
- Map of token addresses and "RATIO" blocks (defines exchange rules for token);
- JSON with second token address and amount;
- "Token Minting/Staking Formula" block (TM/SF):
All parameters except Seed value and TM/SF-defining block will be taken from blockchain automatically.
- Total circulating amount of token;
- Total amount of token holders;
- (Minting-specific) Seed value (complexity) for formula;
- (Staking-specific) Total amount of User-locked tokens;
- (Staking-specific) User-specific value of locked tokens (user address will be used);
- (Staking-specific) Transaction amount as seed for staking (Transaction ID will be used);
- EVM-code block, defining the Minting/Staking formula.
- Receiver address;
- JSON structure with amount and receiver of token to be translated to transaction.
- "Custom Code" block:
- EVM code function, defined by developer, where input and output slots are defined by user. According to best practice, it is advised to return integer or bool value, or JSON structure, if required by predefined Code blocks.