Nimbus SDK
Add private balances and payments to your Solana app.
Nimbus lets you add private balances and payments to a Solana web app. Users deposit from their wallet, pay other users and withdraw to a Solana address.
The SDK builds proofs, stores and syncs private balances, and submits payments in the browser. Spending keys stay on the user's device. Your app connects the wallet and shows each payment's progress and result.
New to Nimbus? Start with private balances and Umbra 101.
Choose your path
Quickstart
Follow Alice and Bob through setup, a deposit, Private Send and a withdrawal.
API reference
Find the functions, types, options and results your integration needs.
Use cases
Private balances and payments are building blocks for financial products. Private Send settles between registered Nimbus users.
Fintech & neobanks
Offer private balances and payments in consumer finance apps, without publishing individual account balances or the amounts customers send.
Cross-border payments
Build stablecoin remittance flows that keep senders, recipients and payment amounts off the public transaction record.
Payroll & payouts
Pay employees and contractors individually with Private Send, keeping recipients and payment amounts out of the public transaction record.
Merchant payments
Accept customer payments without publishing the buyer, merchant or payment amount on the public transaction record.
B2B payments
Settle supplier invoices and partner payments while keeping counterparties and individual payment amounts private on the public chain.
Corporate treasury
Manage private operating balances and move funds between registered accounts without publishing each account's holdings or internal payment amounts.
Your app provides business workflows and any fiat or payment-service integrations.
Add payment history and progress feedback as you build out the experience.
How it works
Open an account. Signing the wallet's unlock message opens the private account on this device. It moves no money and costs nothing.
Deposit. Deposits increase the private balance by the deposited amount, less the protocol fee.
Pay or withdraw. A relayer submits Private Sends and withdrawals. The connected wallet does not sign those transactions or pay their Solana network fee.
Keep control. The pool program controls deposited tokens; spending a private balance requires its owner's keys.
What your app needs
- A web app. Next.js, Vite or any bundler works. The SDK runs in the browser, not on a server.
- Two response headers. The proofs use shared memory, which browsers allow only on cross-origin isolated pages.
- The SDK's files. It ships WebAssembly and a worker script that your app serves from its own site.
- A gateway token for mainnet. It lets your app use Nimbus's services. To get one, email dev@umbraprivacy.com or reach out to any Umbra team member. The mainnet gateway token shows how to pass it.
Check browser support before choosing the browsers your app supports. The quickstart uses mainnet and moves real USDC. Its code examples are checked against the SDK when the site builds.
Before you launch
Deposits publish the funding wallet, token and amount, but not whose private balance receives them. Withdrawals publish the destination, token and amount, but not which private balance paid.
Private Send does not publish the sender, recipient, payment token or amount. The relayer transaction and any paid tip remain public. A tip paid in the payment token makes that token visible. Matching amounts and nearby transaction times can still narrow privacy.
Review privacy boundaries, privacy risks and the production checklist.
Use troubleshooting when an integration fails, and check the changelog before upgrading.
Last updated