From the Account Structure, we have understood that a DeGate account is a node on the merkle tree which is uniquely represented by an AccountID. The account node contains the latest account's permission settings and asset information. The relationship between the wallet's address and the account's asset private key is tied together with the account's permission settings.
As soon as the wallet settings are set, a user can begin using their wallet to access their DeGate account. Each time there is a deposit / withdrawal / transfer / trade or other transaction that deals with a gas fee, the account information will be updated with the assets balance change.
There is no mandatory sequence for updating account permissions and asset information in the merkle tree. This implies that deposits can occur before setting account permissions and vice versa. However, as the node operator has subsidized the cost of the account registration operation, from an economic standpoint, the node should first receive the asset before updating the on-chain permissions. Essentially, users can first submit an off-chain transaction to set the account permissions, only when DeGate has received a deposit or transfer then both transactions will be processed and submitted on-chain in tandem.
The account registration process is as follows:
- 1.Register for an account (this is an off-chain transaction)
- 2.Perform a deposit or receive a transfer
- 3.Once the deposit or transfer is confirmed, confirm the permission settings at the same time
DeGate account registration does not require a Know Your Customer (KYC) verification and supports the account registration with Ethereum's Externally-Owned Account (EOA) or Contract Account.
The only requirement is that the EVM account needs to have at least one historical transfer-in and transfer-out transaction. Thus, a brand new address will not be able to create a DeGate account. DeGate's chain sync service will regularly scan and update the list of addresses that are eligible to register for an account.