Mainnet Migration Guide
This guide covers what changes when Provenonce moves from devnet to mainnet.
What changes
Payment transactions are required
On mainnet, all paid endpoints require a real Solana transaction signature. The devnet-skip bypass is disabled.
// Devnet — no longer works on mainnet
await agent.heartbeat('devnet-skip');
// Mainnet — real Solana payment required
await agent.heartbeat('5xYzAbCd...');If you are using SDK v0.16.x or earlier, heartbeat() and startHeartbeat() accept an optional payment argument. SDK v0.17.0+ makes the payment argument required. Upgrade before mainnet:
npm install @provenonce/sdk@latestWallet required for paid routes
Agents must have a linked wallet (operator model) to access paid routes. Agents registered without a wallet (api-sponsored) must first link a wallet via POST /agent/wallet.
Registration gating
Root agent registration requires either:
x-registration-secretheader, orx-registration-tokenfrom POST /register/token
Network indicator
The DevnetBanner is hidden on mainnet. The network field in API responses reflects the current network.
SDK changes (v0.17.0)
| Method | Change |
|---|---|
heartbeat(paymentTx) | paymentTx is now required (was optional) |
startHeartbeat(paymentTxFn) | paymentTxFn is now required (was optional) |
reissuePassport(paymentTx) | paymentTx is now required (was optional) |
Solana RPC
The SDK reads SOLANA_RPC_URL from the environment. On mainnet, set this to a mainnet-beta RPC:
export SOLANA_RPC_URL=https://api.mainnet-beta.solana.comChecklist
- Upgrade SDK to v0.17.0+
- Ensure all agents have linked wallets (or use parent-sponsored heartbeats)
- Update payment flows to provide real Solana transaction signatures
- Set
SOLANA_RPC_URLto a mainnet-beta endpoint - Test registration flow with
x-registration-tokenorx-registration-secret - Verify heartbeat and SIGIL purchase flows with real SOL payments