Deposits

Generate per-customer deposit addresses.

Deposits are on-chain: you generate a deposit address for a customer, they send funds to it, and Cheddar credits the deposit and fires a CUSTOMER_DEPOSIT webhook. There is no deposit action in the dashboard — deposits are API-driven.

Your customer holds a token Cheddar doesn’t custody? Deposit swaps accept almost any token on almost any chain and credit the balance in USDC — the same CUSTOMER_DEPOSIT webhook fires.

Get a deposit address

POST /deposit returns a stable address for a (customer, chain) pair. Calling it again for the same customer and token returns the same address.

curl -X POST https://api.cheddar.biz/v1/deposit \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{ "mintId": 1, "customerId": "your-customer-id" }'
{ "customerId": "your-customer-id", "chain": "ETHEREUM", "address": "0x…" }
  • mintId selects the token (and therefore the chain) — list options with GET /mints.
  • customerId is your identifier for the end user. Cheddar creates the customer on first use.
  • customerEmail is optional.

Show the returned address to your customer. When their transfer confirms, you receive a CUSTOMER_DEPOSIT webhook.

Flagged deposits

Cheddar screens incoming deposits against the reputation of the sending wallet. A deposit that looks risky is held rather than credited, and someone on your team decides what happens to it.

When a deposit is screened

Screening runs only when all of the following hold:

  • Your organization has both a risk severity threshold and a USD threshold configured, under Organization → Risk Score Thresholds. If either is unset, deposits are never screened.
  • The deposit’s USD value is above your USD threshold. Smaller deposits pass through untouched.
  • The deposit has not already been flagged.

Cheddar then analyses the sending address and compares the returned severity against your threshold. Anything at or below it is credited normally.

What a flag does

A flagged deposit is held, not credited. Specifically:

  • The customer’s balance does not move. The funds stay in the deposit wallet and are excluded from sweeps.
  • You still receive a CUSTOMER_DEPOSIT webhook, with isFlagged: true and riskOfFunds set to the severity. Nothing else is sent until the deposit is resolved.
  • The reason — score, severity, and the entity behind the sending wallet, where the provider identifies one — is recorded and shown alongside the deposit.

If you credit players from CUSTOMER_DEPOSIT, check isFlagged before crediting. A flagged deposit may be returned to the sender or sent elsewhere, and the funds will not be yours.

Resolving a flagged deposit

Flagged deposits appear under Transactions to Approve → Flagged deposits, with the flag reason attached. There are three outcomes:

OutcomeWhat happensWho can do it
ApproveThe deposit is credited and swept as normal.You or Cheddar
RejectThe funds are returned to the address that sent them.You or Cheddar
RedirectThe funds are sent to a different address. Used when returning them is not the right answer — a compliance hold, or a destination named by law enforcement.Cheddar only

Each outcome fires its own webhook — CUSTOMER_DEPOSIT_APPROVED, CUSTOMER_DEPOSIT_REJECTED, or CUSTOMER_DEPOSIT_REDIRECTED. See Webhook events for payloads and timing; reject and redirect move funds on-chain, so their events arrive only once the transfer confirms.

There is no deadline. A flagged deposit stays in the queue until someone acts on it.

When an action fails

If an action fails before anything reaches the chain — the transfer could not be funded or broadcast — the deposit returns to the flagged queue and you simply try again with the same buttons. Every failed attempt is kept and shown on the deposit with its timestamp and reason, so a deposit that has failed repeatedly is visible as such.

Once a transfer has been broadcast, the deposit does not return to the queue, because the funds may already have left the wallet. Those cases are completed by Cheddar rather than retried by you.

Reviewing past decisions

Transactions to Approve → Resolution history lists resolved deposits: what was decided, when, by whom, where the funds went, and the resulting transaction hash. Redirects are included, so a decision Cheddar made on your deposits is visible to you.