1
Activate Base
Open Dashboard → Wallets and activate Base. This only needs to happen once per chain — every address you create afterward on that chain is issued under it.
2
Generate a key
On the same page, create a new API key. It’s shown once, in a copy-once banner:Store it as a backend environment variable.
3
Create an address
Call the create-wallet endpoint with a reference for your user, any string you’ll recognize later (your own user ID works well).Store
address against your user. It’s the address they can send to or hold funds at.4
Reuse the same reference safely
Calling the same request again, with the same
walletRef, returns the same wallet instead of creating a second one — safe to call from a signup flow without checking first whether the user already has an address.Issuing on another chain
Once a chain is activated, pass it explicitly:walletRef can have one address per chain — creating it on Base and then on Arbitrum gives your user two independent addresses, not one shared across chains.
Attaching
metadata (any JSON object) to a wallet at creation is useful for storing your own context — an order ID, a plan tier, anything you’ll want back later when you fetch the wallet.
