Skip to main content
Trading lets users swap assets on the same chain or across chains through one intent. Your application specifies the token needed on the destination chain, and Rhinestone coordinates the swap and any required bridging. Trades can draw from the user’s unified balance or use a selected input token and chain. This supports standalone swaps as well as payments and contract interactions that require an asset the user does not already hold.

Choose the trade outcome

Embedded wallets and custom signers support requesting a specific output token and amount. For example, your application can request USDC on Arbitrum using WETH held on Base. The custom signer SDK also supports exact-input trades: specify how much of an asset to spend and receive the quoted output. Embedded wallets currently require a fixed amount in each output token request.

Trade and call a contract

A trade can deliver tokens to the account or fund calls that execute on the destination chain. For example, your application can swap WETH into USDC, approve a vault, and deposit the USDC through one intent. The destination approval and deposit execute in order and revert together if either call fails. Your application does not need to coordinate them as separate user-initiated transactions.

Get started