What it triggers
Run one or more onchain calls when the deposit settles.
- 1transfer(treasury, fee)
- 2approve(vault, rest)
- 3deposit(rest, user)
Stablecoin deposits for your app
Create a unique programmable address for every deposit. Control who can fund it and where it settles. Let your users pay from any source.
Any wallet or exchange
Any chain

Deposit
Expires in 59:52
250.00USDC
Paid on Solana, settling on Arbitrum
App balance
james@myapp.xyz
Settles on
+250.00
Only credit incoming deposits that satisfy your app's payment policy. Every single deposit is configurable.
Run one or more onchain calls when the deposit settles.
Control the time window in which the address accepts deposits.
59:52
Let users pay on any chain. Settle funds on the chain you want.

Accept deposits in the right currency for your app.
Every deposit request comes with a hosted payment page. Redirect users, embed it in your app, or build the full flow yourself with our API and webhooks.
Hostedgum.money/pay/…
AAcme
Deposit
250.00USDC
For Jordan Diaz · 59:52
Secured by Gum
Embeddedin your own app
Deposit✕
250.00USDC
Secured by Gum
Headlessyour own UI
const response = await fetch( "https://api.gum.money/v1/deposit", { method: "POST", headers: { Authorization: `Bearer ${process.env.GUM_API_KEY}`, "Content-Type": "application/json", "Idempotency-Key": "order_8841", }, body: JSON.stringify({ chain: "base", token: "USDC", amount: "2500000", // 2.50 USDC, in base units receiver: "0xYourTreasury…", expires_at: "2026-10-01T00:00:00Z", }), },);const deposit: Deposit = await response.json();deposit.payment_address; // "0x9a3F…A0c2"We’re in beta and completely free to use right now. No fees, no card, no plans. When we do introduce pricing, we’ll make sure it never disrupts a workflow you’ve already built.