Wallets and addresses
A wallet holds keys. A key is a secret number (the private key) and the public key derived from it. Whoever holds the private key controls everything the key controls, so it never leaves your device and you never paste it anywhere.
An address is the short public name for a public key. In Divi it is a P2PKH address:
address = base58check(version || RIPEMD160(SHA256(compressed_pubkey)))
The version byte tells you which network the address belongs to:
| Network | Version byte | Addresses start with |
|---|---|---|
| Divi testnet | 139 | x or y |
| Divi mainnet | 30 | D |
base58check adds a 4-byte checksum, so a mistyped address is almost always rejected instead of silently
sending to the wrong place.
Why this matters for games
On the Divi Games side-chain an account is a Divi address. There is no username and no password. If you
can sign with the key behind xyz…, you are xyz…. The chain is configured for one network and rejects
addresses from the other one, so a mainnet D… address cannot be used on the testnet side-chain by mistake.
Games also have accounts that nobody holds a key for: module escrow accounts named module:<id>, for
example module:tictactoe. They are not valid base58 addresses, so nobody can sign as one. Only the module's
own code moves money out of them.
Ways to get a key
- Divi Core, the full node wallet.
- The IronDivi browser extension, which signs for web pages.
- The SDK's built-in guest key, a throwaway key the browser games can create for you so you can play straight away. Treat it as disposable.