Skip to content

Atlas One Smart Contracts for deployment and issuance of controllable Digital Security Tokens based on the Tezos and Ethereum blockchain.

Notifications You must be signed in to change notification settings

Atlas-One/smart-contracts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atlas One Smart Contracts

Atlas One Smart Contracts is a suite of smart contracts adopted by Atlas One to support the creation and issuance of a controlled and permissed asset i.e. Digital Security Offering (DSO). The token contracts are compatible with the ERC20 and FA1.2 standards. The suite of contracts allow minting/burning tokens, pausing transfer activities, and ability to extend/share transfer restrictions.

Access Control / Roles

Using OpenZeppelin's Access Control logic and design, the folowing roles are implemented for both Tezos and Ethereum. There can be multiple accounts per role using the Access Control.

See Tezos access control design doc here.

Role Description
Administrators This role can act as the burner, minter and controller. It is also the only role that can grant and revoke roles.
Controllers This role can operate on all tokens without permission as an intervention e.g. recover tokens from another wallet.
Minters This role is granted to accounts or contracts that can mint tokens.
Burners This role can be granted to any account of contract that can burn tokens.
Validators The validator role is granted to another contract only that has restrictions set to validate a transaction. The current restriction is a shared Whitelist and Blacklist.
Partitioner This role is granted to accounts or contracts that can change token partitions (currently used in ethereum ERC1400).
Operators Token holders are operators of their own token. A token holder can grant another account the operator role to their tokens.

Pausable

Role Description
Pauser This role can pause transactions. Only controllers can perform transactions when a contract is paused.

Granting, Revoking and Renouncing Roles

The deployer is initially granted the administrator role in the Ethereum Contract but with Tezos, the storage can be initiatiated with multiple roles preconfigured. The administrator is the only role that can grant/revoke roles using the grantRole and revokeRole entrypoints. At role member has the ability to renounce their role using the renounceRole entrypoint.

NOTE: Atlas One maintains an administrative role to manage a token for an issuer.

Whitelist Validator

The this validator checks the whitelist contract that maintains whitelist respective to each token:

Whitelist

Role Description
Administrators This role can act as both the allow and block list roles. This is the only role that can grant/revoke roles.
Whitelist Administrator This role can modify the whitelist list.
Blacklist Administrator This role can modify the blacklist list.

Granting, revoking and renoucing roles is similar to the explanation above.

NOTE: A controller/administrator can force transfer out of a blacklisted addresses

Pausing

Contract transfers can be paused except for the controller in order to perform any intervention actions.

Minting

Minters can mint tokens as long as the contract can still issue tokens. Issuance can be renounced by the admin using the entrypoint renounceIssuance.

Burning

Burners can burn tokens at any time.

Redeeming

The current redemption stratergy is for a burner to burn the tokens after an off chain agreement.

Meta/Feeless Transactions

The current stratergy is to make use of the controller role to perform a transfer on behalf of the token holder when they make an off chain transfer request. The TZIP-017 and EIP712 were not adopted in this suite but could be adopted to support feeless transactions without using the controller role.

Refrence Implementations:

Upgrading

TBD

Deactivating Token

TBD

About

Atlas One Smart Contracts for deployment and issuance of controllable Digital Security Tokens based on the Tezos and Ethereum blockchain.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published