Skip to main content
Call POST /setup to configure how the deposit service handles your deposits. All fields are optional — configure what you need. Each call performs a partial update; omitted fields keep their current value. All examples below use these shared constants:

Configure a webhook

Register a URL to receive notifications about deposit events. Optionally provide a secret for HMAC-SHA256 signature verification.
When a webhookSecret is set, every webhook request includes an X-Webhook-Signature header you can verify. See status tracking for event types, payload format, and verification examples. Once your endpoint is live, fire a single fixture event with POST /webhooks/test to confirm signature handling and parsing before real deposits arrive. The envelope carries "test": true so receivers can filter it. Cover gas, bridging, and swap fees on behalf of your users so they receive the full deposit amount. Sponsorship is configured per source chain using CAIP-2 identifiers. Chains without explicit config default to no sponsorship.
See sponsorship for the full list of fee types, available values, and how sponsorship is resolved at processing time.

Restrict accepted deposits

Define a whitelist of accepted tokens per source chain. Deposits of unlisted tokens are silently ignored. You can also set minimum and maximum deposit amounts per token.
Take token from a chain’s depositTokens in GET /chains, not from supportedTokens. The two answer different questions — what you can deposit from a chain, and what can be delivered to it — and on HyperCore they are different identifiers for the same asset. Everywhere else they match.A whitelist keyed on an identifier deposits are not matched on rejects every deposit with TOKEN-3, and /setup still returns 200, so the only symptom is that nothing arrives. minAmount / maxAmount are in the units of the identifier you used — for HyperCore USDC that is 8 decimals, not 6.
If no whitelist is set, all supported tokens are accepted with no amount restrictions. Rejected deposits trigger a deposit-rejected webhook — not bridge-failed — with error code TOKEN-3 (token not allowed), BALANCE-3 (amount above the configured maximum), or BALANCE-4 (amount below the configured minimum).

Set price deviation tolerance

For stablecoin-to-stablecoin bridges, set the maximum allowed price deviation in basis points. Deposits that exceed this threshold are rejected with error code BRIDGE-5.
The default is 200 (2%) if not set. Tighten this for high-value stablecoin corridors; loosen it if you see rejections during volatile periods.

Set a minimum deposit value

Set a per-client minimum deposit value in USD, applied across all tokens and source chains. Deposits priced below it are rejected — a deposit-rejected webhook is sent with error code BALANCE-4 and no bridging is attempted.
minDepositUsd is a non-negative number (USD). This is a per-client override; a platform-wide minimum floor also applies and is not client-configurable.

Clear a configuration field

Each /setup call is a partial update. To explicitly clear a field, pass null for string fields or {} for object fields:

Put it all together

A single /setup call configuring everything at once: