Marketplaces and platforms

Stablecoin pay-ins and payouts for marketplaces

Accept buyers' stablecoin payments, keep seller balances in your ledger and pay sellers anywhere, with retry-safe payouts and approvals for large ones.

Marketplaces and platforms hold money for others: buyers pay in, sellers, creators or drivers get paid out, and the platform keeps a fee. Adding stablecoins lets you pay sellers anywhere and accept buyers who prefer to pay in crypto. It also adds wallets, fees and approvals to a payments stack that is already complicated.

What a marketplace needs

  • Pay-ins matched to orders, whether buyers pay per order or top up a balance.
  • Seller balances in your ledger, paid out on demand or on a schedule.
  • Payouts that can't double-pay, with approvals for large or unusual ones.
  • Clear money flow for finance: what came in, what's owed, what went out, what fees were paid.

How it runs on Valtu

Buyers pay in through hosted payment links per order, or a permanent deposit address for buyers who keep a balance. Either way, your server is told by signed webhook once the payment is final.

Funds are collected from buyer addresses into your treasury by sweeps, above a minimum worth moving. A gas wallet pays the fees, so buyers' addresses never need a network's own coin.

Sellers are paid out from an operational payouts wallet. Each payout carries your payout id as externalId, so retries are safe, and batches of up to 100 handle the weekly run.

Your ledger stays the source of truth. Valtu tells you about every deposit and payout; your ledger records who is owed what. Reconcile both every day with the deposits and transfers APIs.

Controls

  • Policies on the payouts wallet: for example, payouts up to a limit pass automatically, and larger ones or a spike in hourly outflow need a person. See approval policy.
  • Saved addresses for sellers you pay regularly, with a cooldown before a new address counts.
  • Screening of buyer deposits and seller payout addresses with your own KYT provider.
  • Scoped API keys, so the service that creates buyer wallets can't send payouts.

A typical payout week

  1. During the week, buyer payments arrive and are confirmed; your ledger credits each seller's share and your fee.
  2. Before the run, finance moves the week's total from treasury to the payouts wallet. That one transfer needs two approvers.
  3. On payout day, your system sends every seller's payout in batches, each with its own id. Payouts to new addresses or above your limit wait for a person.
  4. Afterwards, webhooks mark each payout paid with its transaction hash, failed ones go back to the seller's balance, and an export goes to finance.

Fees, honestly

Every payout pays a network fee, and it varies a lot by network: cents for USDC on Base or Polygon, more for USDT on Tron, and a wide range on Ethereum. If you pass fees to sellers, show the network fee before they confirm: the transfer preview returns it without creating anything.

Good to know

  • Networks and coins supported today: the networks page.
  • Holding funds for others may need a licence where you operate. Valtu provides the wallet infrastructure, not the licence.
  • The external security audit isn't done yet; see the security page.

Build the pieces with the Next.js checkout guide and the Node.js payouts guide.

Other use cases

Other ways teams use Valtu.

Tell us what you're building.

Start on testnets with free test coins, or talk to the team about your flows, networks and controls.