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

Convert mode every deposit becomes USD cents on arrival

Open it

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

Raw mode what arrives is what you hold

Open it

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.