Supported wallets
You need a UTXO-compatible Cardano wallet browser extension set to the testnet network. All of the wallets below implement the CIP-30 standard that the Sundial faucet page and L2 rely on.
You only need one. Install it as a browser extension, create or restore a wallet inside it, and continue below.
A separate Bitcoin wallet for the testnet dashboard is optional. You do not need one to claim faucet sBTC. Bitcoin wallet setup is covered in the Explore the Dashboard section below.
Claiming testnet sBTC from the faucet
The faucet at sundialprotocol.com/testnet/faucet distributes free testnet sBTC to any valid testnet address. No wallet connection or signature is required — you paste your address and click a button.1
Switch your wallet to testnet
Open your wallet extension and locate the network selector — usually in Settings or displayed as a network name in the top bar. Switch from Mainnet to Testnet or Preprod. Every wallet listed above supports this, though the exact menu label varies.Once switched, open the Receive screen and copy your payment address. A testnet address always begins with
addr_test1. If your address starts with addr1, your wallet is still on Mainnet — switch networks and copy a fresh address.2
Submit your address to the faucet
- Go to sundialprotocol.com/testnet/faucet.
- Paste your
addr_test1…address into the Sundial testnet address field. - Click Request testnet sBTC.
3
Confirm the balance in your wallet
Refresh your wallet extension (still on Testnet/Preprod) — the testnet sBTC grant should appear in your balance. Because this balance lives on Sundial’s L2 rather than on the Cardano settlement L1, it will not appear on standard Cardano block explorers. Your wallet extension and the faucet confirmation screen are the authoritative sources during the testnet phase.
Troubleshooting faucet errors
If your claim doesn’t succeed, the faucet page displays a specific reason. Use the table below to diagnose and fix the issue.
Address-related errors — invalid format, wrong network, no payment credential, or a script address — all have the same fix: paste a normal receive address copied from a wallet that is in testnet mode, not a stake address, script address, or mainnet address.
Testnet network details
You do not need to call the node RPC directly to use the faucet. The faucet web page handles the claim submission on your behalf using a server-side credential, so claims must go through the web page rather than a direct API call.
Explore the testnet dashboard
Sundial’s dashboard gives you a preview of the full Bitcoin-yield product: connecting a wallet, depositing assets, and tracking positions. On testnet, the dashboard runs against Bitcoin’s testnet3 network using a separate Bitcoin wallet connected through the page’s Connect Wallet button. This is a separate flow from claiming faucet sBTC — you can use the faucet on its own without ever connecting a Bitcoin wallet to the dashboard.The midgard CLI tool
Sending testnet sBTC to another address requires talking to the Sundial L2 node directly. Your wallet extension’s built-in Send button only knows about the settlement L1, not the Sundial L2. The midgard command-line tool handles this for you without any programming required.
Install and build
From a checkout of thesundial-monorepo repository:
node dist/bin.js <command>. The same binary is installable globally as midgard via the package’s bin field. By default, commands connect to http://localhost:3000 — use --endpoint to point at the public testnet node or any other instance.
Create a wallet
addr_test1… address — the same format used in the browser-wallet faucet flow. The private key is stored locally in demo/midgard-manager/config/wallets/default.json, which is git-ignored. Treat this wallet as test-only; never use it for real assets.
Import an existing wallet
wallet import to register a keypair you already have instead of generating a new one.
List wallets
Check a balance
Send tokens
--amount flag is in sBTC, not lovelace. Signing uses the locally stored private key — this is the raw-private-key path intended for the terminal, not the CIP-30 browser-wallet flow.
If you try to send before funding the wallet, the CLI will return a coin-selection error telling you the wallet doesn’t have enough funds. Fund the address via the faucet first, then retry.
Look up a transaction
send — the node queues it for processing, and a background worker validates and includes it shortly after. If you see “Not found” for a hash you just sent, wait a few seconds and try again.
Check node status
node-status first whenever send or wallet balance can’t connect. A node can be live (the process is running) but not ready (still completing startup). The status output identifies which subsystem is failing so you know whether to wait or escalate.
CLI command reference
wallet create <name>
wallet create <name>
Generates a fresh Ed25519 keypair and saves it under the given name. Prints the new
addr_test1… address and private key.wallet import <name> --private-key <key>
wallet import <name> --private-key <key>
Registers an existing Ed25519 private key under the given name without generating a new keypair.
wallet list
wallet list
Displays all saved wallets with their names and
addr_test1… addresses.wallet balance <name>
wallet balance <name>
Queries the node for the sBTC balance and UTxO count of the named wallet.
send --from <name> --to <address> --amount <sBTC>
send --from <name> --to <address> --amount <sBTC>
Signs and submits an L2 transfer using the named wallet’s stored private key. Amount is in sBTC.
tx-lookup <hash>
tx-lookup <hash>
Looks up a transaction by its hex hash. Returns the transaction details or a “Not found” message if it hasn’t been processed yet.
node node-status [--endpoint <url>]
node node-status [--endpoint <url>]
Checks whether the target node is live and ready. Reports any failing subsystems so you know whether to wait or escalate. Defaults to
http://localhost:3000 if --endpoint is omitted.