Tristero Docs

Feather Overview

Permissionless cross-chain swap relay primarily for connecting non-EVM cryptocurrency chains

Overview

Feather is a permissionless cross-chain swap relay primarily for connecting non-EVM cryptocurrency chains. Its architecture can handle any and every chain from standard EVM chains to obscure UTXO privacycoins. Right now it trades between coins like Bitcoin, Ethereum, Solana, Litecoin, and Monero at market rates with great prices and no custody or wallet connections.

Feather uses a balance-sheet market making model where it holds a balance in each supported currency, adjusting prices to encourage rebalancing between supply and demand.

The trade process is simple: you supply your output address, create a trade, and send funds to the provided deposit address. Feather will detect the deposit, convert the funds, and send you back the corresponding amount to your address on the other chain.

Unlike bridging protocols or DEXes, there are no smart contracts, no cross-chain messaging, and no external liquidity providers. Feather simply watches for incoming deposits and sends the corresponding output from its own reserves. This may change in future as the system grows.

Supported Assets

AssetNetwork
BTCBitcoin
ETHEthereum
USDCEthereum
SOLSolana
LTCLitecoin
XMRMonero
TRXTron

Quick Start

There are four API calls you may need to make when setting up and executing a trade:

1. Get a list of supported assets

GET /assets

2. Get a price quote

GET /price?input_asset=BTC&output_asset=ETH

3. Create the trade — get a deposit address

POST /trade
{ "InputAsset": "BTC", "OutputAsset": "ETH", "OutputAddress": "0x..." }

4. Poll for status

GET /status?id=<trade_id>

Send funds to the InputAddress returned by /trade and Feather does the rest.

Important Considerations

Liquidity Limits: Feather uses its own balance sheet liquidity, so trade size is limited. The trade size limit is quoted out as MaxInput in the return from /trade or /status. DO NOT EXCEED THE QUOTED LIMIT.

Overage Handling: If you accidentally send more than Feather can process within its quoted trade size limit, Feather is in a tough position. If you have provided a return address, your trade will be aborted and your funds will be returned minus fees.

Rate locked on deposit: The quoted exchange rate is provisional. The true exchange rate will not be determined until the moment your input transaction is accepted on-chain. This prevents Feather trades from being treated as an options contract.

Returns: If a deposit arrives but Feather cannot complete the swap and a ReturnAddress was provided, Feather will return the deposit (minus input chain fees) to that address.

Fees: Feather charges fees roughly matching what it costs us to execute the trade, including any funds consolidation from deposit addresses to the main wallet. All fees are deducted from your deposit before the exchange calculation.

Scanning Latency: We continuously scan for incoming payments to active deposit addresses. When a deposit appears in the mempool, the connected trade advances to Awaiting Deposit Confirmation. Once the deposit reaches the required confirmation depth, execution begins.

Guaranteed exactly-once execution: Once a deposit is confirmed and liquidity is available, Feather constructs and broadcasts the output transaction. It monitors that transaction through to ExecutionState: "Finalized".

Trade Expiry: Trades expire (ExecutionState: "Expired") if no deposit arrives within 2 hours of creation. An expired trade is simply abandoned. If a deposit arrives after expiry but within a grace period, Feather will still honor it.

On this page