An address is the public part of a Geode account. The private part is the key used to access this address. The public and private parts together make up a Geode account. You can think of the public address of your account like your mailbox and the private key like the key to open that mailbox. Anybody can send mail to your mailbox, but only you can access them as only you have access to its key. In the context of Geode accounts, anybody can send tokens to your public address but only you can transact with them using your private key or password. That is why you should keep your private key and password secret.
DISCLAIMER: Key Security
The only ways to get access to your account are via your secret seed (your secret 12 word phrase) or your account’s JSON file in combination with a password. You must keep them all secure and private. If you share them with anyone they will have full access to your account, including all of your funds, and no one will be able to help you. This information is a target for hackers and others with bad intentions. See the section on How To Protect Yourself From Scams.
Obtaining and Managing an Address
The most user-friendly way to create a Geode address is through Geode Portal. Remember to back up the seed phrase used to generate your account – the accounts are stored only in your browser, so purging the cache will wipe your accounts as well. You would then have to recreate them using the seed phrase given to you by the UI – this will also restore all your previously held balances.
A more convenient and recommended method of keeping the accounts stored on your computer is using the Polkadot{.js} extension. This extension remembers your accounts and allows you to clear your browser cache without fear. Still, don’t forget to back up your seed phrase – if you lose access to this computer or the extension somehow crashes beyond repair, the phrase will come in handy.
Please note that as this keeps your accounts in the browser, it is not safe to keep significant holdings. By definition, a browser is a “hot wallet” and susceptible to a wide range of attacks, so keep your funds in cold storage when dealing with non-trivial amounts. For improved security, you can securely stash away the seed phrase for your accounts and remove all traces of the accounts from your computer after creating them.
Besides the extension and the Geode Portal, Geode addresses can also be created with the Subkey tool. Subkey is intended for users comfortable with using the command line and can seem intimidating but is quite approachable. Follow the instructions in the Subkey documentation. When used properly, Subkey is the most secure method available for creating an account.
There is also the very secure Parity Signer. This keeps your keys on an air-gapped mobile phone. However, it does require obtaining an old Android or iOS-compatible phone that you are comfortable using only for Parity Signer. *** This wallet is still in Beta pending an audit. We recommend waiting until it is in its first release. ***
Balance Types
On Geode, four different balance types indicate whether your balance can be used for transfers, to pay fees, or must remain frozen and unused due to an on-chain requirement.
The AccountData struct defines the balance types in Substrate.
The four types of balances include free, reserved, misc_frozen (miscFrozen in camel-case), and fee_frozen (feeFrozen in camel-case).
In general, the usable balance of the account is the amount that is free minus any funds that are considered frozen (either misc_frozen or fee_frozen), depending on the reason for which the funds are to be used. If the funds are to be used for transfers, then the usable amount is the free amount minus any misc_frozen funds. However, if the funds are to be used to pay transaction fees, the usable amount would be the free funds minus fee_frozen.
The total balance of the account is considered to be the sum of free and reserved funds in the account. Reserved funds are held due to on-chain requirements like bonding and can usually be freed by taking some on-chain action. For example, the “Identity” pallet reserves funds while an on-chain identity is registered, but by clearing the identity, you can unreserve the funds and make them free again.
Existential Deposit and Reaping
When you generate an account (address), you only generate a key that lets you access it. The account does not exist yet on-chain. For that, it needs the existential deposit of 10 GEODE.
Having an account go below the existential deposit causes that account to be reaped. The account will be wiped from the blockchain’s state to conserve space, along with any funds in that address. You do not lose access to the reaped address – as long as you have your private key or recovery phrase, you can still use the address – but it needs a top-up of another existential deposit to be able to interact with the chain.
Transaction fees cannot cause an account to be reaped. Since fees are deducted from the account before any other transaction logic, accounts with balances equal to the existential deposit cannot carry out a valid transaction. Additional funds will need to be added to cover the transaction fees. Your address is removed from the chain when nothing is in it but gets put back when it has the existential minimum deposit.
Indices
A Geode address can have an index. An index is like a short and easy-to-remember version of an address. Like a display name for your address. Claiming an index requires a deposit that is released when the index is cleared. Any index can be claimed as long as it is not taken by someone else.
But what if an account gets reaped as explained above? In that case, the index is emptied. In other words, the slot frees up again, making it available for anyone to claim it. It is possible to freeze an index and permanently assign it to an address. This action consumes a deposit but makes sure that the index can never be reclaimed unless released by the holding account.
Nodes Can Look Up Account Indices On-Chain
When someone shares their account index, their actual account address on-chain can be looked up through Geode Portal > Developer > Chain state > Storage and selecting state query on indices pallet for the account corresponding to the index.
To register an index, submit a claim extrinsic to the indices pallet, and follow up with a freeze extrinsic. The easiest way to do this is via PolkadotJS UI through the Developer -> Extrinsics menu:
Identities
The Identities Pallet built into Geode allows users to attach on-chain metadata to their accounts. Independent registrars can verify this metadata to provide trustworthiness. To learn more about how to set or release an identity, how to define sub-accounts, or how to become a registrar, please read the documentation on Identity.
Proxy Accounts
Geode comes with a generalized proxy account system that allows users to keep keys in cold storage while proxies act on their behalf with restricted (or unrestricted) functionality. See the proxies page at the Polkadot Wiki. Geode’s proxies work the same way..