Creating a Bitcoin deposit address
UsePOST /deposit-addresses with "BITCOIN" in the depositChains array. A Bitcoin SDA is created the same way as an SDA on any other chain, but must be requested separately - Bitcoin, Tron and Solana each require their own call to generate an SDA (you can generate SDAs on all EVM chains with a single call).
Sample request - accepting BTC, settling to USDC on Base:
supportedTokens on a Bitcoin SDA will always only contain BTC.
Choosing a settlement asset
- If
tokenOutis not specified, the deposit settles into WBTC by default, provided WBTC is available on the destination chain. - If
tokenOutis specified, the deposit settles into that asset instead. If the requested route isn’t supported, address generation returns an error.
Settling into a wrapped BTC position via a Post Bridge Action
A Bitcoin deposit address can be configured with a Automated Onchain Action to deliver into a destination contract, such as a vault. SpecifytokenOut for the asset the destination actually expects, as a safety measure - even when a PBA is configured. For example, to accept BTC but deliver into a vault as USDT, set tokenOut: "USDT".
Limits
- Minimum deposit: 5,000 sats is the absolute minimum. A $10 minimum is surfaced in the API for consistency.
- Maximum deposit: $50,000 per transaction at launch, expected to rise over time. Higher limits can be requested via your account manager.
Speed
A Bitcoin deposit is processed after one network confirmation. Confirmation time depends on Bitcoin network conditions and typically falls between 5–20 minutes, though high network traffic can delay this further.Fees
A flat $1 fee applies per Bitcoin deposit.Swap details in the history response
Because settling a Bitcoin deposit involves a currency conversion, the transaction history response for a Bitcoin SDA includes swap details in thepreSwap / postSwap fields:
preSwap- always present. Represents BTC converting into the settlement asset: WBTC or USDC, used as a middle step in our liquidity provision.postSwap- present only when the requested destination asset differs from the settlement asset (e.g. USDT, EURC). Represents the settlement asset converting into the requestedtokenOut.
Checking status and history
Constraints
- Currently one-directional: native BTC deposits settle into other supported assets. Converting other assets back into native BTC is not yet supported.
- Available through the SDK, but only via the SDA route - not through the bridge & swap quote endpoint, so there are no committed quotes for Bitcoin.
- Native Bitcoin support is being rolled out client by client. Contact your account manager to enable it for your integration.