返回博客

Non-custodial vs custodial crypto payment gateway: what actually changes

NextCryptoPay
Non-custodial vs custodial crypto payment gateway: what actually changes

"Custody" is a precise word, not a marketing one

A provider takes custody of your money when it controls the private key that can move it. Everything else — dashboards, balances, "your funds are safe with us" — is presentation. The question that separates the two models is mechanical: between your customer paying and you being able to spend, does the money sit at an address whose key belongs to somebody else?

In a custodial gateway the answer is yes. Your customer pays into an address the provider controls. The provider credits a number to your account, and you later ask to withdraw it. The number in the dashboard is a claim on the provider, not coins you hold.

In a non-custodial gateway the answer is no. Your customer pays into an address derived from a public key you supplied. The gateway can watch that address and tell you when money arrives, but it has no key and therefore no ability to move, freeze or reverse anything.

Both models can be run honestly. They fail differently, and that is what you are actually choosing between.

Side by side

CustodialNon-custodial
Who holds the private keyThe providerYou
When you can spend the moneyAfter a withdrawal is approved and processedImmediately, it is already in your wallet
Identity verificationUsually mandatory, often escalating with volumeDepends on the provider, but nothing about the payment flow requires it
Provider goes offline permanentlyYour balance is at riskPayments already received are unaffected; you lose the monitoring service
Account frozen or under reviewPayouts stopThere is no payout to stop
RefundsThe provider can usually issue themYou send a transaction yourself, manually
ChargebacksNone in either model — on-chain transfers are finalNone
Wallet securityThe provider's problemYour problem

Notice that the last row is not a footnote. Non-custodial does not mean safer in every direction. It means the failure mode moves from "the provider loses my money" to "I lose my money", and the second one is entirely under your control — which is an advantage only if you actually treat it as one.

Three ways custodial arrangements fail in practice

These are structural, not accusations against any specific company.

The balance becomes reviewable. Any business holding other people's funds is subject to rules that make a hold or a freeze the safe default when something looks unusual. A surge of orders after a successful campaign can look exactly like something unusual. Your revenue stops at the worst possible moment.

The balance becomes an unsecured claim. If a custodian becomes insolvent, customers are creditors. This is not hypothetical in the crypto industry; several well-documented failures have ended with users discovering that the balance shown in an app was a database row rather than coins that were theirs.

The withdrawal path becomes the bottleneck. Minimum withdrawal amounts, daily limits, extra verification for larger sums, manual review of new destination addresses. None of these are unreasonable individually. Together they mean the money is available on the provider's schedule, not yours.

What you give up going non-custodial

An honest comparison lists the trade-offs.

  • No refunds on your behalf. If a customer wants money back, you send it from your wallet yourself. The gateway cannot do it, and that is the same property that stops it taking your money.
  • No safety net for your own mistakes. A wrong address in your wallet configuration, a lost seed phrase, a compromised machine — there is no support team with the ability to undo any of it.
  • You must understand your own wallet. Where the keys live, who has access to the backup, what happens if the laptop dies. A custodial provider hides this question. Non-custodial makes you answer it.
  • Newer, smaller ecosystem. Fewer integrations, fewer plugins, fewer people who have already hit the bug you are about to hit.

If you do not want to own those problems, a custodial provider is a legitimate choice. Just make it knowingly.

Where NextCryptoPay draws the line, precisely

This is the part most providers leave vague, so here it is plainly.

Your customers' payments: never held. You supply a receiving address or an extended public key (xpub). Payments go from your customer's wallet to yours. They never pass through an address anyone else controls. We hold no private key for your wallet, so we have no technical mechanism to move, freeze or refund those payments.

Our fee: held, and we say so. Our revenue is a prepaid platform fee balance, charged at 1% per successful transaction and never more than 15 USD on any single one. You top it up, and that balance does sit with us. It is small, it is ours to earn, and it is the one place where the word "custody" applies. If this project shut down tomorrow, your customers' payments would be untouched because they were never with us — but an unspent prepaid fee balance would be at risk, and you should size your top-ups with that in mind.

Anyone who claims to hold nothing while also charging a percentage fee is either running the fee through a third party or being imprecise. We would rather be precise. The current fee schedule is on the pricing page.

Do not trust that. Verify it.

We publish no legal entity and no founder names, which means you have no reputational reason to believe anything above. So do not. The claim is mechanical, and mechanical claims can be checked:

  1. The system refuses private keys at the door. The wallet validation guard parses the key you submit and accepts it only if it carries no private key — an xprv is rejected before it reaches storage. It is one function, and it is short enough to read in a minute.
  2. The server refuses to start if its own configuration smells of keys. Startup validation aborts the process if any environment variable name matches PRIVATE_KEY, MNEMONIC or SEED_PHRASE, and if the platform's own fee wallet is not watch-only.
  3. There is an automated test asserting exactly this. tests/non-custodial.test.ts generates a real key pair, feeds the private half to both entry points, and fails the build if either accepts it. An invariant with a test is a promise that breaks loudly.
  4. The chain is the final arbiter. Every payment you receive is visible on Tronscan, Etherscan or any block explorer, sent to an address you control. No amount of marketing copy can contradict a block explorer.

The security page walks through each of these with the exact file and function names.

A checklist for evaluating any gateway

Whatever you choose, these are the questions worth asking before integration, not after:

  1. Where do customer payments land — an address whose key I hold, or one the provider holds?
  2. If I stop using this provider tomorrow, what do I have to move and what do I lose?
  3. What exactly triggers a hold, a freeze or extra verification, and who decides?
  4. Are webhooks signed, and how? An unsigned webhook is an order-for-free endpoint.
  5. Can I export my invoice history in a format I can actually use?
  6. What happens to open invoices during an outage on the provider's side?
  7. Is the fee a percentage, a fixed amount, or both, and are there withdrawal fees on top?

If you are coming from a custodial setup, the migration is usually less dramatic than expected: create invoices through the new API, run both systems in parallel for a week, compare the two ledgers, then switch the checkout link. The documentation covers the API surface, and the FAQ answers the questions merchants ask most often. If you are specifically interested in how public keys can generate addresses without private keys, that is covered in the guide to accepting USDT.