Choosing a wallet
Heirloom supports two Stacks wallet browser extensions.- Leather
- Xverse
Leather (formerly Hiro Wallet) is the most widely used Stacks wallet. It supports all Stacks token standards including sBTC and USDCx.
- Available for Chrome and Firefox
- Supports Stacks mainnet and testnet
- Open source
Getting testnet STX
You need testnet STX to pay transaction fees on Stacks. Real STX is not required for testnet use.Open the Hiro faucet
Go to the Hiro testnet faucet.
Connect your wallet
Click Connect Stacks Wallet and approve the connection request in your wallet extension.
Connecting your wallet in Heirloom
Open the app
Click Connect Wallet
Click Connect Wallet in the top-right corner of the navbar. The wallet selection dialog appears.
Approve the connection
Your wallet extension opens and asks you to approve the connection. Click Connect or Approve.
Switching wallets
To switch from one wallet to another:- Click Disconnect in the top-right corner of the navbar (or the dashboard header).
- This calls
disconnect()from@stacks/connectand clears the stored session. - Click Connect Wallet again and select the other wallet.
Disconnecting does not affect your vault. The vault lives on-chain and is tied to your Stacks address, not your browser session.
What the app stores in localStorage
When you connect a wallet,@stacks/connect writes your session data to localStorage under a key it manages internally. Heirloom reads this data on page load to restore your session automatically — you do not need to reconnect every time you open the app.
The stored data contains:
- Your Stacks address (
addresses.stx[0].address) - No private keys or seed phrases are ever stored
Testnet vs. mainnet configuration
The app network is set by theVITE_NETWORK environment variable in the .env file.
| Setting | Network | Tokens | Fees |
|---|---|---|---|
testnet | Stacks testnet | Test sBTC, test USDCx | Testnet STX (free via faucet) |
mainnet | Stacks mainnet | Real sBTC, real USDCx | Real STX |
Troubleshooting wallet connection
The wallet dialog opens but nothing happens after I select a wallet
The wallet dialog opens but nothing happens after I select a wallet
This usually means the wallet extension is not installed or is not active in the current browser. Check that the extension icon appears in your browser toolbar. If you recently installed it, try refreshing the page.
My address does not appear in the navbar after connecting
My address does not appear in the navbar after connecting
The app shows a different address than I expect
The app shows a different address than I expect
Stacks wallets can hold multiple accounts. Make sure you have the correct account selected in your wallet extension before connecting. Disconnect, switch accounts in the extension, then reconnect.
I connected on testnet before but now I see mainnet addresses
I connected on testnet before but now I see mainnet addresses
The
VITE_NETWORK environment variable controls which network the app targets. If you or another developer changed the .env file, the app may now point to a different network. Verify the value and restart the development server.The session does not restore after I close and reopen the tab
The session does not restore after I close and reopen the tab
Some browsers or privacy extensions clear
localStorage on tab close. Check your browser’s site data settings and ensure localStorage is not blocked for the app’s origin. Disable any extensions that clear storage automatically.