1What an address is
An address is a short public name for one key in your wallet. Anyone can send coins to it. Only the wallet that holds the matching private key can spend them. Your wallet makes the keys from your recovery phrase, so every address it gives you comes back when you restore that phrase.
The first letter tells you which network the address belongs to:
| Network | Normal addresses start with | Example from this page |
|---|---|---|
| Mainnet (real DIVI) | D | DLGsf36UGkkwL8gnrAUDjwmxDkiaGRoXsk |
| Testnet (test coins, no value) | x or y | yC7cysasfRGSUNtEWtmxbcShpjoPjeaiXK |
Those two examples are the same key written for two networks. That matters in the next section.
Make a new address for each payment you expect. It costs nothing, every one of them is covered by the same phrase, and it keeps your payments from being linked together on the public explorer. An old address still works: coins sent to it are never lost.
2Check an address before you share it
A payment sent to a wrong address cannot be pulled back. Three checks take ten seconds:
- Copy and paste, never type it. Every wallet below has a copy button. A typed address with one wrong letter is caught by the checksum, but a pasted one has no wrong letters to catch.
- Read the first letter yourself.
Dfor real DIVI. If you are asking for real DIVI and the address starts withxory, you copied a testnet address. - Compare the first four and last four characters with what your wallet shows, after you paste the address into the message to the sender. Some clipboard malware swaps addresses as you paste. See Avoid scams.
Both nodes have a validateaddress command, and it catches typos. We changed the case of the last letter of a real address and both nodes answered "isvalid": false. It does not always catch the wrong network:
| Asked on testnet about | IronDivi 0.2.6 | C++ Divi 3.0.0 |
|---|---|---|
| A testnet address with one letter changed | "isvalid": false | "isvalid": false |
The mainnet form DLGsf3…GRoXsk | "isvalid": true | "isvalid": false |
DLGsf3…GRoXsk and it arrived at yC7cys…eaiXK in the C++ testnet wallet, because both are the same key. The owner still gets the coins, but only in a wallet on the network the coins were sent on. The C++ node refuses that send with Invalid DIVI address. Do the first-letter check yourself. The web wallet and the browser extension do check it.
3IronDivi node
You need the node from Install IronDivi and a wallet from Create your first wallet. If you followed Encrypt your wallet, IronDivi refuses to make an address while the wallet is locked:
$ irondivi-cli -c ~/divi-test/irondivi.conf getnewaddress error code: -13: Wallet is locked
Unlock it for a few minutes first. The passphrase goes in on standard input, so it never appears in your shell history:
$ read -s P; printf '%s\n300\n' "$P" | irondivi-cli -c ~/divi-test/irondivi.conf --stdin walletpassphrase; unset P $ irondivi-cli -c ~/divi-test/irondivi.conf getnewaddress xvzMd5vNjhdYw3Z42RizxfgD1mr4DbiRyc
getblockcount to go up by one before walletlock. We did that after every later address and send, and each key was kept.
Check the address. "ismine": true means this wallet holds its key:
$ irondivi-cli -c ~/divi-test/irondivi.conf validateaddress xvzMd5vNjhdYw3Z42RizxfgD1mr4DbiRyc
{
"account": "",
"address": "xvzMd5vNjhdYw3Z42RizxfgD1mr4DbiRyc",
"iscompressed": true,
"ismine": true,
"isscript": false,
"isvalid": true,
"iswatchonly": false,
"pubkey": "031b99cae6202961e724902457245892c2f3010d9256feffda46b7400129f0f1ea",
"scriptPubKey": "76a9140018d7538c988ab2a268a2697b1fbb7e15943aba88ac"
}
IronDivi 0.2.6 ignores a label: getnewaddress "first-receive" still gives "account": "". Keep a note of what each address is for in your password manager instead.
4Divi Desktop
We did not run Divi Desktop 2.0.0 for this page, so we do not describe its Receive screen. The open-source Desktop code on GitHub was last updated in 2023 and may not match the current release.
Desktop runs the C++ Divi node inside it, so the commands in section 6 also work in its debug console: getnewaddress "label" and validateaddress <address>.
5BoxWallet
BoxWallet installs and runs the C++ Divi node for you. Its README (v0.8.38, read 2026-10-22) describes a Receive panel with "Your address as text and a QR code, plus a fresh one on demand". Pick Divi in the coin list, open Receive, and copy the address. The node underneath is the same C++ node as section 6, so the same checks apply.
6C++ Divi command line
The C++ node keeps a pool of ready keys, so getnewaddress works even while the wallet is locked, and it keeps the label:
$ divi-cli -testnet getnewaddress "first-receive"
yC7cysasfRGSUNtEWtmxbcShpjoPjeaiXK
$ divi-cli -testnet validateaddress yC7cysasfRGSUNtEWtmxbcShpjoPjeaiXK
{
"isvalid": true,
"address": "yC7cysasfRGSUNtEWtmxbcShpjoPjeaiXK",
"ismine": true,
"iswatchonly": false,
"account": "first-receive",
"hdkeypath": "m/44'/1'/0'/0/3",
…
}
hdkeypath shows the address was made from your phrase. Asked about the mainnet form of the same key, this node answers "isvalid": false.
7Web wallet, browser extension and Telegram
| Wallet | Where to find your address |
|---|---|
| Web wallet | Press Receive. The panel shows Receive to Address with your first unused address, + New Address, an optional Amount for a payment QR code, Copy Address and Copy Payment URI. The ↗ link opens the address in the explorer. |
| Browser extension | Press Receive. The Receive screen has Receive to Address, a QR code and Copy Address. On testnet it also offers Request from Faucet. |
| Telegram wallet | /newaddress opens the wallet app to make a new address. /receive <address> [amount] replies with a QR code and payment link for an address you already have. |
All three make keys on your own device from your phrase. The Telegram bot never holds your keys.
8Watch the coins arrive
We sent 10 tDIVI from the C++ wallet to the IronDivi address above. A payment goes through two stages:
- Unconfirmed. The transaction is in the mempool but not in a block yet. Right after the send, IronDivi already showed it:
$ irondivi-cli … getunconfirmedbalance 10.0 $ irondivi-cli … getreceivedbyaddress xvzMd5vNjhdYw3Z42RizxfgD1mr4DbiRyc 0 10.0 $ irondivi-cli … getreceivedbyaddress xvzMd5vNjhdYw3Z42RizxfgD1mr4DbiRyc 0.0
The last command counts only coins with at least one confirmation, so it says 0.0 until a block includes the payment. - Confirmed. The next block included it, and the explorer counted up from 1/6 to Confirmed in about four minutes. Read a transaction walks through every stage on the explorer.
The explorer's address page is the easiest place to check from anywhere: open /testnet/explorer2/address/<your address>. For our address it showed:
Balance 10.00 DIVI Total Received 10.00 DIVI Transaction History (1) Confirmed 9b0cdbadb1...1182897ed1
getreceivedbyaddress adds up only the coins still unspent at that address. After we spent the 10 tDIVI it answered 0.0, while the explorer still said Total Received 10.00 DIVI. Use the explorer or listtransactions to prove a payment came in.
Do not ship goods or count a large payment as done at the first confirmation. Wait for the explorer's Confirmed, which means six blocks.
Troubleshooting
error code: -13: Wallet is locked on getnewaddress. That is IronDivi with an encrypted wallet. Unlock it as in section 3. The C++ node does not need this.
The sender says the address is invalid. Check the first letter. A testnet address sent to someone paying real DIVI, or the other way round, is the usual cause. Then copy it again from the wallet.
The payment does not show up. Look the address up on the explorer. If the explorer shows it and your wallet does not, your node is still syncing; wait for getblockcount to match the explorer's latest block.
IronDivi shows my address as watch-only. The wallet was locked before its next block (section 3). Restore the wallet from your phrase in a new folder, as in Create your first wallet. The restored wallet holds the key and can spend the coins.
Still stuck? Ask the Divi chatbot, or see all tutorials.