Chainflip Treasury Swaps Explained

For a treasury converting BTC, ETH or SOL, Chainflip swaps native assets through validator controlled vaults and a JIT AMM. For a Chainflip BTC-to-ETH swap, use Chainflip to convert a Bitcoin deposit into native ETH at the designated treasury address, without handling a wrapped token.
What Does Chainflip Mean for a Treasury?
It means a cross-chain conversion whose input and payout are native assets, while pricing and accounting happen on the protocol’s State Chain. Five points determine how that fits a treasury workflow:
- Vaults hold assets on their home chains.
- A swap intent specifies the destination and refund addresses.
- Source-chain confirmation comes before execution.
- Liquidity determines the rate when the trade executes.
- Price protection can delay a trade or return its input.
Native assets. Bitcoin remains BTC on Bitcoin while it is held by the protocol, and the recipient receives ETH on Ethereum in a BTC-to-ETH trade. Think of the vaults as separate currency accounts and the State Chain as the ledger that coordinates an exchange between them. Validators jointly control payouts through threshold signing, so “no wrapped token” does not mean the trade has no vault or validator risk.
Swap intent. Before funds arrive, the protocol needs to know the input asset, desired output, destination address and source-chain refund address. A broker can register that intent and provide a deposit channel; supported vault calls can carry the instructions with the transaction instead. A treasury should create a fresh intent for each scheduled transfer because deposit channels expire.
Confirmation. Validators witness the source transaction after its chain-specific confirmation threshold. Bitcoin deposits commonly require around three blocks, often roughly 30 minutes; Ethereum deposits typically take several blocks, around one to two minutes. These are planning estimates, not payout deadlines, because block production and destination-chain broadcasting also take time.
Execution price. Market makers can adjust limit and range orders while an incoming deposit awaits confirmation. The JIT AMM then consumes available liquidity at execution, so an estimate obtained before sending BTC is not a locked BTC-to-ETH rate. Trade size and the depth available across both pools decide the price impact.
Protection. A minimum accepted price can prevent execution below a specified rate, while live price protection can bound deviation from an oracle price where that feature is available. If the condition remains unmet through the retry window, the protocol refunds the unswapped input to its source-chain refund address, less applicable costs.
How Does a Swap Settle End to End?
A swap moves through deposit, witnessing, State Chain execution and destination-chain egress. The team first establishes the asset pair and addresses, then sends the source asset using the registered swap intent. Sending funds to a vault without valid swap instructions gives the network no destination for the trade.
Once validators witness the deposit, Chainflip executes the trade in its JIT AMM. A BTC-to-ETH route generally sells BTC for the USDC pool asset and uses that value to buy ETH; both legs can execute in the same State Chain block. The USDC leg is accounting and liquidity routing within the protocol, rather than a wrapped token delivered to the treasury.
Swaps in the same direction and pool are grouped for execution, and market makers compete with limit and range orders. The resulting ETH is queued for egress; validators jointly sign a transaction that sends it from the Ethereum vault to the specified address. The treasury should reconcile the source transaction, swap execution and destination transaction as three distinct events.
What Determines the Received Amount and Timing?
The received amount reflects the execution rate, liquidity fees for each pool, the protocol network fee, any broker commission and the destination broadcast cost. Source-chain transaction fees are paid when funding the swap. Protocol documentation puts liquidity fees typically around 0.10%–0.15% per pool and the network fee around 0.10%; the other amounts depend on the route, provider and chain conditions.
For an illustrative calculation, suppose 0.2 BTC is worth $20,000 and ETH is $4,000, giving 5 ETH before costs. Assume two pool fees of 0.10% each, a 0.10% network fee, a $5 destination broadcast charge, no broker commission and no price impact. The payout would be about 4.984 ETH; the BTC transaction fee is additional. Actual market-maker spread and price movement during confirmation can matter more than that fee arithmetic.
Timing is often dominated by source-chain confirmation, especially for Bitcoin, followed by egress signing and destination confirmation. Paying for an optional boosted deposit may shorten the wait before execution when boost liquidity is available, but it adds a fee. A desk with a fixed payout time should budget for the ordinary route and treat faster execution as a conditional outcome.
For larger trades, splitting the input into DCA chunks can reduce the price impact of consuming one pool’s liquidity at once. It extends execution across State Chain blocks and increases exposure to market movement. If a later chunk fails its price condition, earlier chunks can still pay out while the remaining source asset is refunded; operations should be prepared to reconcile both flows.
How Should a Team Set Up Repeat Transfers?
A repeat-transfer process should define the asset pair, amount, destination wallet, refund wallet, acceptable net output and latest useful arrival time for each run. When a team plans to swap Bitcoin with Chainflip regularly, it should compare the estimated output with its internal reference rate and decide the maximum tolerable deviation before funding a deposit. That limit should include the expected fee burden, since AMM price protection does not cover every external transaction cost.
Use a minimum accepted price when the business has a fixed payout floor, such as ETH required for a scheduled obligation. An oracle-relative limit is more useful when the trade may wait or run in chunks and the team wants protection against a poor execution relative to the market at that later time. The choice is between certainty about the minimum output and a limit that moves with market prices.
Keep the operational check short: verify both addresses on their respective chains, confirm the swap intent is current, and ensure the refund wallet can receive the original asset. A wrong destination cannot be corrected by a price limit, and an expired deposit channel can leave a late payment unrecognised. For a new route, a small transfer can validate the team’s address and reconciliation process before treasury-sized volume.
Record the amount sent, the price condition, the source transaction and the final payout or refund transaction. Those fields make a delayed trade distinguishable from a failed price check or an egress still awaiting destination confirmation. They also let the team compare realised rates and arrival times across recurring transfers.
FAQ
The two common follow-up questions concern the asset received and the result of an unmet price limit.
Does the recipient receive wrapped BTC or ETH?
No. A completed BTC-to-ETH swap pays native ETH to an Ethereum address; a completed trade into BTC pays BTC on Bitcoin. The State Chain records the exchange, while vaults hold and release assets on their respective networks. The recipient still needs an address that can receive the specified asset on the specified chain.
What happens if the minimum price is never met?
The protocol retries within the configured window, then returns the unswapped input to the source-chain refund address, subject to refund and broadcast costs. If a chunked trade has already executed in part, the completed output is paid out and only the remaining input is returned. Treasury reconciliation must therefore allow one request to produce both a payout and a refund.
Use the route when its expected native-asset payout clears the team’s price floor after costs and its confirmation time fits the transfer deadline.