Skip to main content
Request the output token and amount on the target chain. Rhinestone selects source assets, quotes the swap and any bridge, and delivers the requested output in one intent.

Choose the intent shape

For a plain swap, use an empty calls array. Do not add dummy calldata, a self-transfer, or { data: "0x" }. Placeholder calls change the request and can make the route unsupported. Use target-chain token addresses in tokenRequests. Omit source constraints to route from the user’s available unified balance, or add constraints when the user selected an input chain or asset.

Request a token-only swap

This example requests 100 USDC on Arbitrum and restricts funding to WETH on Base:
For a token-only request, the amount can be treated as the target’s final balance when existing destination funds are also in source scope. Both examples restrict the source to Base, so any USDC already on Arbitrum is outside that scope and the full 100 USDC is delivered.
Use the initialized oneAuth client and authenticated accountAddress from Accounts. These fields are available in @rhinestone/1auth@0.10.1:
Embedded wallets use numeric chain IDs and tokenRequests[].token. sourceChainId applies the sourceAssets address to Base. Omit both source constraints to let the orchestrator choose across available mainnet balances. sendIntent() manages quote preparation and does not expose the custom signer SDK’s ranked prepared.quotes object.Sponsorship is required by default. Reuse the funding, review, and completion options from Send a transaction, and keep any returned intentId before retrying an uncertain submission.
The embedded wallet SDK 0.10.1 requires an amount in each token request. It does not expose the custom signer SDK’s exact-input and max-output request shape. Use a fixed output amount or the custom signer SDK instead.

Trade and deposit

When the output feeds another action, include the actual calls and the matching token request in one intent. This example swaps WETH into 100 USDC on Base, approves the Steakhouse Prime USDC ERC-4626 vault, and deposits for shareRecipient:
Submit the shared calls with the embedded wallet’s field names:
The output delivery and calls belong to one intent. The approval and deposit execute in order and revert together if either call fails. This is not a queue of separate trades. See Sponsor fees for funding modes. Continue to the end-to-end transaction flow for status and recovery details.