What we built on it
We run two products on this API. One is our shop, which takes real money for real orders, and one is a consumer wallet. They exist so that "what does the integration actually look like" has an answer you can open in a tab, and so that our own uptime is the same uptime you would be buying.
Our merch store
You sell something and you want dollars, not a portfolio.
This is our own shop. We print and ship real products, and every order is paid in crypto through this API. We built it because a payment provider that will not take its own payments is telling you something, and because running it is how we find the awkward parts before you do.
Four calls, one webhook handler
about eighty lines of payments code in an otherwise ordinary store
- POST /v1/addresses
- POST /v1/invoices
- GET /v1/deposits
- deposit.confirmed
- invoice.paid
- Your customers can pay twice as easily
- Checkout offers a prepaid store balance, which is your own ledger debit and settles instantly without touching us, or a hosted invoice: you create it, send the buyer to the checkout page, and the order flips when the payment confirms.
- You never think about chains
- The shop wallet is in convert mode, so a customer can top up with USDC, USDT, DAI, ETH, BNB or SOL and the balance you read is USD cents either way. One unit, one number on the account page, no exchange position to manage.
- A dropped webhook does not cost a customer their money
- Deliveries fail: you redeploy, a host goes down, or you are on localhost where nothing can reach you. The account page has a button that reconciles by pulling the deposit list and crediting anything missed. Each credit is claimed by deposit id first, so a webhook and a reconcile seeing the same deposit still credit it once.
- What the store knows about a customer is a number
- Signup gives sixteen digits, shown once and kept only as a hash, the way Mullvad does it. That is our choice rather than something the API requires, and it is on the page because it shows how little a shop built this way has to hold.
Bux Wallet
Your users hold crypto and expect to see the coins they were sent.
A working consumer wallet in the Exodus mould: pick an asset, pick a network, receive or send. We built it as the smallest complete product that still has to solve the parts people get wrong, so the answer to "can this back a real wallet" is a page you can open rather than a paragraph.
Five endpoints, no webhooks
balances, addresses, two fee quotes and a send
- GET /v1/wallet
- POST /v1/addresses
- GET /v1/network-fees
- GET /v1/send-fee
- POST /v1/send
- Nothing is converted behind your users
- Balances are the raw per-chain token balances. A USDT deposit stays USDT on the chain it landed on, which is what a wallet user expects to see and the opposite of what the store above does.
- The fee is on screen before the money moves
- Receiving shows the live network fee for the pair being used. Sending quotes the fee first, so the number your user agreed to is the number they are charged.
- Emptying a balance cannot lose a race
- The Max button sends amount "max" and we resolve it to the balance minus the fee at the moment of the debit. A client that subtracted the fee itself would be wrong every time gas moved between the quote and the send, and the failure lands on your user.
- Money appears without a refresh
- The app watches for new deposits server-side and pushes them to the page, so the secret key stays on the server and nobody has to reload to watch a payment land.
Which of the two is you
Every wallet you create is in one of these two settlement modes, and the choice sticks once money has moved through it, so it is worth making deliberately. The two apps are one of each because that is the decision we can help you make before you write anything.
Pick convert if you price in dollars and want to keep pricing in dollars. Shops, subscriptions, anything with a balance a customer spends down. Your exchange exposure ends when the deposit lands instead of lasting until somebody remembers to sell.
Pick raw if the token itself is the point. Wallets, exchanges, anywhere a user expects to withdraw the same asset they deposited. You hold what was sent and you decide when, or whether, to convert it.
Building one of these
The patterns behind both, with the call sequences written out, are on use cases. Every endpoint and webhook payload is in the API reference, and you can start against a real wallet in under a minute: create one, no account and no approval step. Already selling on WooCommerce, PrestaShop or OpenCart? The plugins do the integration for you. If you would rather talk it through first, tell us what you are building.