Tech Specification

A7A5 token specification

  • Programming language: Solidity

  • Token standards: ERC-20, TRC-20

  • List of functions:

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

    • distributeInterest: A7A5 shares its interest from fiat overnight deposits income with the token holders by updating TotalLiquidity (difference between New and Old total liquidity)

    • Burn: Redeem A7A5 tokens

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

    • Transfer: Standard function for transferring A7A5 tokens

    • transferScaled: The same as transfer, but in terms of shares (a special value used for calculations, equal to the number of tokens assuming no rebases have ever occurred)

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

    • transferScaledFrom: The same as transferFrom, but with the calculation logic of transferScaled

    • Pause: Temporarily pause A7A5 token transfers

    • Unpause: Resume A7A5 token transfers

    • addBlacklist: Freeze A7A5 tokens on a specific wallet address

    • removeBlacklist: Unfreeze A7A5 tokens on a specific wallet address

    • destroyBlackFunds: Burn frozen A7A5 tokens on a specific wallet address

    • updateBasisPointsRate: Set fees for A7A5 token transfers

  • Roles:

    • Owner (quorum of 3 from 5) has access to the Issue, Burn, Pause, Unpause, updateBasisPointsRate

    • Accountant (quorum of 3 from 5) has access to distributeInterest

    • Compliance (quorum of 5 from 5) has access to the addBlackList, removeBlackList, destroyBlackFunds

The only functional difference between the A7A5 token on the Tron network and the token on the Ethereum network is that, to correctly display the total number of tokens in circulation on the scanner (Etherscan), the totalSupply function on Ethereum returns the value of the _totalLiquidity variable, while on Tron it returns the value of the _totalSupply variable. To retrieve the _totalSupply value on Ethereum, the totalShares function has been implemented.

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, Accountant - the multisig 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 or Accountant roles, 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.

Last updated

Was this helpful?