Choose a flow, run it against a test mint, and compare the request, response, wallet state, and cashu-ts code. Test shortcuts are labelled where they appear.
Primary mint: https://nofee.testnut.cashu.spaceFallback: https://testnut.cashu.spaceLive calls and test-only steps are labelled in the timeline.Open starter kit
How it works
Start here.
1. Choose a flowUse the recipe cards below. Create wallet is the clean first run.
2. Press runThe timeline shows each request and response.
3. Copy the codeThe code panel shows the cashu-ts calls and the state your app owns.
Choose a flow
Pick one to load its steps and code.
Inputs
Create wallet
Mint: https://nofee.testnut.cashu.space
Create a wallet object and load mint metadata. Storage is your app’s job.
Ready. Run this to fetch real mint info and keysets.
Code
cashu-ts code
create-wallet.ts
The same calls as the live run. Add your own storage where shown.
import { Wallet } from '@cashu/cashu-ts'
const mintUrl = "https://nofee.testnut.cashu.space"
const unit = "sat"
const wallet = new Wallet(mintUrl, { unit })
await wallet.loadMint()
// Your app decides how to store proofs and whether to cache mint metadata.
const keychainCache = wallet.keyChain.cache
const mintInfoCache = wallet.getMintInfo().cache
Deterministic example that matches the mint’s real response shape.
loadMint() reads /v1/keysets to find the active keyset id (the active flag lives here), then pulls that keyset’s public keys from /v1/keys before it can request blinded signatures.