We have learned from account structure that each DeGate account is a node on a Merkle tree, represented by a unique AccountID. The node stores the latest information about account permissions and assets. Account permissions associate a user’s wallet address with their Asset Public Key. Once permissions are set, users can use their wallet account to operate the corresponding DeGate account. Assets information records the balance of assets in the DeGate account, and is updated every time a transaction, deposit, withdrawal, transfer, and other operations incurring gas fees is performed.
Writing account permissions and assets information to the Merkle tree is not subject to any mandatory sequence requirements. Users can deposit assets first and then set permissions, or do it in reverse order. However, the node operator subsidizes the gas fees incurred during setting account permissions for write operations. To ensure economic security, the node must obtain assets first before setting permissions. Users can submit an off-chain request for setting permissions first, and wait until their DeGate account has received assets, such as from a deposit or a transfer. The DeGate node will only process the permissions setting request after that.
The account registration procedure for a user involves:
- 1.Registering an account and submitting an off-chain request;
- 2.Completing a deposit, or receiving a transfer;
- 3.Setting permissions at the same time as the deposit (or transfer) is completed.
Account registration on DeGate requires no KYC, and DeGate supports External Owned Account(EOA) and contract account (CA). The only requirement is that the EVM account must have at least one transfer-in or transfer-out record. Therefore, a new address cannot register a DeGate account. The DeGate block synchronization service will regularly scan and updates the list of addresses that are eligible to create accounts.