1Before you start
Testnet is Divi's practice network: same software, same rules, coins worth nothing. Every IronDivi wallet can run on it, and the IronDivi browser extension even starts there. This page shows the testnet side of each wallet; for what testnet is and how to run your own testnet node, read Get Testnet DIVI first.
x or y1' (mainnet 301')You need nothing installed. The web wallet runs in any browser, the Telegram wallet runs inside Telegram, and the extension is still a preview you cannot install yet (see section 3).
Real Divi addresses start with D. Each wallet below checks the address against the network it is on and refuses a mismatch, but the rule is worth knowing before the error message appears.
2IronDivi Web Wallet
The web wallet is a single page of JavaScript that keeps your keys in the browser and talks to Divi through the public RPC endpoint. There is no account and no server-side wallet: the recovery phrase is the wallet.
Open it on testnet
The network comes from the URL path. Open services.divi.domains/testnet/wallet/ and the header reads IronDivi Web Wallet TESTNET. The mainnet wallet lives at /wallet/ with no badge. There is no switch inside the wallet: to change network you change the URL (the site's top bar has a Switch to Testnet / Switch to Mainnet button that does exactly that).
# what the wallet does on load (divi-wallet/app.js)
const isTestnet = window.location.pathname.includes('/testnet');
const RPC_URLS = {
testnet: 'https://services.divi.domains/api/testnet/rpc/',
mainnet: 'https://services.divi.domains/api/rpc/'
};
A recovery phrase opened at /testnet/wallet/ and at /wallet/ gives two different sets of addresses, because testnet derives keys at m/44'/1'/0'/0/i and mainnet at m/44'/301'/0'/0/i. The two never mix, so one phrase is safe to use on both.
Create or restore a wallet
- Under , pick 12 Words or 24 Words and press . Creating a wallet from scratch has its own page, Create a wallet; this one only covers what is different on testnet.
- The screen shows the words. Save them in a password manager before you press : Proton Pass is free; 1Password, Bitwarden, Dashlane, Keeper and Apple Passwords all work too. How and why is in Back up your wallet.
- The wallet then quizzes you on a few of the words () and opens the dashboard.
- To open an existing wallet instead, paste the phrase under . The field validates as you type ("Valid 12-word phrase") and, with ticked, opens the wallet as soon as the phrase checks out. It accepts 12 or 24 words.
On testnet the wallet can also offer to remember the wallet on this device behind an unlock; that offer is deliberately off on mainnet for now.
The habit is the point. Keep the phrase in your password manager, never in a chat, a screenshot or a file in a git repository. The wallet itself clears the phrase from the page as soon as it has opened (the restore field is a password field by default).
Faucet, receive, send
- Press . The panel shows your first address (it starts with
xory) and, on testnet only, a button labelled . Press it: the wallet posts your address to the faucet and reportsReceived 1000 DIVI! TX: …. About a minute later the balance in the top bar updates; the wallet listens for new blocks over the testnet ZMQ feed, so you don't have to refresh. - Press . Fill , and , then . A confirmation sheet shows the network line Testnet (test coins, no value) (on mainnet it says Mainnet (real DIVI)), the amount and the real fee before anything is signed.
- The transaction row links to the explorer. Paste the txid into Explorer 2.0 testnet to watch it confirm (the wallet's own links go to the classic testnet explorer at
/testnet/explorer/; both show the same chain).
The button is greyed out: staking in the web wallet is "coming soon". To stake on testnet use an IronDivi node, as in Get Testnet DIVI.
What it talks to
Everything the wallet knows comes from the public, filtered RPC proxy at https://services.divi.domains/api/testnet/rpc/. It is unauthenticated and allows read-only methods plus createrawtransaction and sendrawtransaction, which is exactly what a non-custodial wallet needs: the wallet builds the transaction, verifies the unsigned hex it gets back, signs each input locally, and broadcasts. You can call the same endpoint:
curl -s -X POST https://services.divi.domains/api/testnet/rpc/ \
-H 'Content-Type: application/json' \
-d '{"method":"getblockcount","params":[]}'
# {"error":null,"id":null,"result":359941} (2026-10-21)
curl -s https://services.divi.domains/api/testnet/rpc/ # GET: lists the public methods
The faucet button is one HTTP call, the same one the faucet page makes:
POST https://services.divi.domains/testnet/faucet/api/request
Content-Type: application/json
{"address":"your x… or y… address"}
For a web page that wants the wallet to sign something, the wallet also listens for DIVI_SIGN_REQUEST window messages and answers with DIVI_SIGN_RESPONSE or DIVI_SIGN_CANCEL. That bridge only accepts messages from services.divi.domains and vps1.divi.domains (plus localhost dev ports when the wallet itself runs on localhost). Divi uses its own injected provider and this bridge, not WalletConnect. The full dApp story is in Connect a web page to the IronDivi browser extension.
3IronDivi browser extension (preview)
The IronDivi Wallet extension (version 0.0.1, for Chrome, Edge, Firefox and Safari) is still in a private repository. There is no store listing and no public download today; this section describes it from its source so you know what to expect, and the page will get the link when it ships.
Unlike the web wallet, one build of the extension serves both networks, and it starts on testnet: the default settings set network: 'testnet', so a fresh install cannot touch real coins by accident.
- Open the popup. Next to the account name is a Testnet badge; click it and a menu offers and . The same choice is under .
- Create an account with a password and a 12- or 24-word phrase, or import one. Each network keeps its own accounts, because the derivation path differs:
m/44'/1'/0'/0/ion testnet,m/44'/301'/0'/0/ion mainnet. - On testnet the popup shows a faucet section (hidden on mainnet). It posts to the same faucet API as the web wallet, and the popup itself waits an hour between requests, which is stricter than the faucet's own 24-hour rule per address.
The extension reads and broadcasts through the same public endpoints as the web wallet (/api/testnet/rpc/ and /api/rpc/) and calls getaddressbalance, getaddressutxos, getaddresstxids, getrawtransaction, sendrawtransaction, validateaddress, getblockcount and getnetworkinfo. Any IronDivi (or legacy divid) node with the address index on can stand in for them.
For web pages it injects window.irondivi (isIronDivi: true) with irondivi_connect, irondivi_accounts, irondivi_getBalance, irondivi_signMessage, irondivi_sendTransaction, irondivi_signRawTransaction, irondivi_getNetwork and irondivi_disconnect; every request is approved in the popup. irondivi_getNetwork is how your page finds out whether the user is on testnet. The API is covered in Connect a web page to the IronDivi browser extension.
4Telegram wallet: /network and /faucet
The IronDivi Telegram wallet is two parts: the bot @divi_wallet_bot, which answers read-only questions in chat, and a Mini App at /telegram/wallet/ that holds the keys on your phone. The bot is non-custodial: it holds no keys and signs nothing. Every chat has its own network setting, and new chats default to mainnet.
- Open the bot and send
/network testnet. It answers:Network set to Testnet. The wallet will open on Testnet (test coins; use /faucet to get some).
with an button./networkalone shows the current network and a Mainnet / Testnet keyboard; anything else getsUsage: /network mainnet or /network testnet. - Press . The Mini App opens with a TESTNET badge;
/walletcreates a wallet there and/restorerestores one. The phrase is generated and typed only inside the app, never in the chat. If you ever paste a phrase into the chat, the bot deletes it and tells you to treat it as compromised. - Copy a receiving address from the app and send
/faucet y…(your address). The bot asks the faucet for you and replies:Faucet (Testnet): sent 1000 DIVI to y… TX: https://services.divi.domains/testnet/explorer/tx/…
If the faucet says no, the reply isFaucet (Testnet):followed by the faucet's own message (the cooldown and limit messages are listed in Get Testnet DIVI). - Check with
/balance y…, or inside the app, whose panel has the same button as the web wallet.
The Mini App also has its own / switch in a strip under the balance; switching clears the screen, shows Scanning testnet…, rescans the addresses for that network and remembers the choice. Like the other two wallets it derives testnet keys at coin type 1' and mainnet at 301', so one phrase serves both networks without mixing funds.
The faucet counts payouts per IP, and every request from the bot would come from the same server. The bot therefore sends a per-user identifier in X-Real-IP, so your two payouts a day are yours, not the whole bot's.
Like the web wallet, staking in the Telegram wallet is "coming soon"; use an IronDivi node for that.
5The three wallets side by side
All three are IronDivi wallets and agree on the chain parameters, which also match C++ Divi's CTestNetParams.
| Web Wallet | Browser extension | Telegram wallet | |
|---|---|---|---|
| Where testnet is | /testnet/wallet/ (path decides) | Network badge or Settings → Network; starts on testnet | /network testnet in chat, or the switch in the app |
| Default network | mainnet at /wallet/ | testnet | mainnet (chats that never chose; older wallets stay on testnet) |
| Testnet RPC | /api/testnet/rpc/ | /api/testnet/rpc/ | /api/testnet/rpc/ |
| Derivation path | m/44'/1'/0'/0/i | m/44'/1'/0'/0/i | m/44'/1'/0'/0/i |
| Change addresses | m/44'/1'/0'/1/i | none: change goes back to the first input's address | m/44'/1'/0'/1/i |
| Address version byte | 0x8b (139) → x/y | 0x8b | 139 |
| Faucet call | POST /testnet/faucet/api/request | same, 1 h cooldown in the popup | same, via the bot (/faucet) or the app |
| Explorer links | /testnet/explorer/ | /testnet/explorer/tx/ | /testnet/explorer/ |
| Staking | coming soon | no | coming soon |
Because the paths agree, you can open the same phrase in any of the three (or in an IronDivi node) and see the same testnet coins. For scripting against the chain directly, see Talk to a Divi node from Python and JavaScript.
6Send the coins back
Faucet coins are shared. When you are done, send what you have left to the faucet's return address from the wallet's panel, leaving a little for the fee:
yJehBfdK9KbrwPRjYrzkrPES9uG5nFLjY4
In the Telegram chat, /send yJehBfdK9KbrwPRjYrzkrPES9uG5nFLjY4 999.9 opens the app with the payment filled in for you to confirm.
If something goes wrong
| You see | What it means |
|---|---|
| The faucet is testnet only — switch with /network testnet | The Telegram chat is on mainnet. Send /network testnet and try /faucet again. |
| That is a Testnet address, but this chat is on Mainnet. Switch with /network testnet | The address and the chat's network disagree. Switch the chat, or use an address for the network you are on. |
| That is not a valid Divi address. (Testnet) | Typo, or not a Divi address at all. Testnet addresses start with x or y. |
| Usage: include a Testnet address, e.g. /faucet y... | /faucet needs the address after it; the bot does not know your addresses. |
| Faucet (Testnet): the faucet did not answer. Check your balance before trying again. | The faucet timed out. The payment may still arrive; check /balance or the explorer first. |
| Network error. Please try again. (web wallet faucet button) | The browser could not reach the faucet. Check your connection and press the button again. |
| Network switch failed: … (Telegram app) | The rescan on the new network failed, usually a dropped connection. Press the network button again. |
| No TESTNET badge in the web wallet | You are at /wallet/, the mainnet wallet. Open /testnet/wallet/. |
| The browser extension asks for real DIVI | Its badge says Mainnet. Click the badge and choose Testnet; the testnet accounts come back as they were. |
The faucet's own refusals (24 hours per address, 2 per network per day, daily budget) are explained in Get Testnet DIVI. Still stuck? Ask the Divi chatbot, or see all tutorials.