Account Management

1. Deposit Coins (CoinHolder)

function deposit_coins() external payable;

The first step to start interacting with the ODO to start supplying data and earning is to deposit some of the native currency into the CoinHolder contract. When coins are deposited by an unknown address, a new account is generated for that address. The account is used to decouple a user’s staking account from their signer address. See the Algorithms section for information on what happens to depositted coins.

2. Withdraw Coins (CoinHolder)

function withdraw_coins(uint256 amount) external;

Eventually users will want to collect their earnings and otherwise withdraw their coins. This can be done at any time that the coins are not staked. For more information on the details of withdrawals and staking see the Algorithms section.

3. Name New Account Owner (UserProfiles)

function name_new_account_owner(address new_owner) external;

In order to facilitate transferring an account, a two-step process is used. In the first step the account holder names the new account owner. There are some details surrounding when this can be done, so check out the relevant part of the Algorithms section for more details.

4. Transfer Account (UserProfiles)

function transfer_account(uint256 account) external;

Step two of account transfer is to use the account named by the current account holder to complete the transfer. This second step ensures the original account owner actually owns the new signing address (or that the transfer is at least legitimate).

Last updated