Tech Specification

A7A5 token specification

  • Programming language: Solidity

  • Token standards: ERC-20, TRC-20

  • List of functions:

    • Mint: Issue A7A5 tokens. New A7A5 tokens are issued only upon receipt of fiat deposits

    • Burn: Redeem A7A5 tokens

    • Approve: Standard function to grant access for spending A7A5 tokens

    • Transfer: Standard function for transferring A7A5 tokens

    • TransferFrom: Standard function to allow wallets with granted access to withdraw A7A5 tokens

    • Pause: Temporarily pause A7A5 token transfers

    • Unpause: Resume A7A5 token transfers

    • Blacklist: Freeze A7A5 tokens on a specific wallet address

    • RemoveBlacklist: Unfreeze A7A5 tokens on a specific wallet address

    • BurnBlackFunds: Burn frozen A7A5 tokens

    • SetParams: Set fees for A7A5 token transfers

  • Roles:

    • Owner has access to the Mint, Burn, Pause, Unpause, and SetParams functions

    • Compliance has access to the Blacklist, RemoveBlacklist, and BurnBlackFunds

Is A7A5 a rebase (elastic) token?

A7A5 is a rebasing (elastic supply) token implemented using a mechanism that converts internal “shares” into user-visible balances via a global coefficient. Instead of storing balances directly, each address holds a number of shares, and the actual balance is calculated with the formula:

balance = (_shares[user] * _totalLiquidity) / _totalSupply

When interest (or yield) is accrued via the distributeInterest function, only the _totalLiquidity is adjusted (increased or decreased), while _totalSupply (i.e., the total shares) remains unchanged. This results in an automatic rebase—every holder’s balance is proportionally updated. Additionally, the contract includes features such as transfer fees, a blacklist mechanism, and the ability to pause operations.

In simple words, A7A5 is a token that automatically adjusts users’ balances when interest is being added to every account. Instead of directly updating each balance, the system keeps an internal value (called “shares”) for each user, and the actual balance is computed using a special formula with a global coefficient. When interest is applied, that coefficient changes, so every balance increases proportionally. This mechanism is similar to what is seen in “rebasing tokens.”

A7A5 smart-contracts ecosystem:

A7A5 smart-contracts ecosystem

Multisignature smart contracts specification

Owner - a dedicated multi-signature (3 of 5) smart contract. The smart contract has 5 signatories, 5 unique wallet addresses representing the quorum participants. To initiate any transaction calling the A7A5 function of the smart contract, which is accessible to the Owner role, 3 on-chain signatures from quorum participants are required. The quorum participants are the A7A5 project team.

Compliance - a dedicated multi-signature (5 of 5) address for the Compliance role is established. The smart contract has 5 signatories, 5 unique wallet addresses representing the quorum participants. To initiate any transaction calling the A7A5 function of the smart contract, which is accessible to the Compliance role, 5 on-chain signatures from quorum participants are required. The quorum participants are the A7A5 project team.

GitHub

https://github.com/a7a5-defi/a7a5

Last updated

Was this helpful?