# Rhinestone - [Welcome to Rhinestone](https://docs.rhinestone.dev/home/introduction/welcome-to-rhinestone.md): Get familiar with Rhinestone's tech and figure out where to start - [What is Rhinestone?](https://docs.rhinestone.dev/home/introduction/what-is-rhinestone.md): Learn more about Rhinestone - [Smart accounts](https://docs.rhinestone.dev/home/concepts/smart-accounts.md): How modular smart accounts work and what they enable. - [How Warp works](https://docs.rhinestone.dev/home/introduction/rhinestone-intents.md): A technical overview of Warp, Rhinestone's intent routing and execution engine. - [Intents and ERC-4337](https://docs.rhinestone.dev/home/concepts/intents-and-erc4337.md): How Rhinestone intents compare to ERC-4337 userops, and what makes intent-based execution different. - [Session keys](https://docs.rhinestone.dev/home/concepts/session-keys.md): How session keys work in Rhinestone and what they enable. - [Changelog](https://docs.rhinestone.dev/home/resources/changelog.md): Major releases and updates to the Rhinestone SDK and API. - [Quick reference](https://docs.rhinestone.dev/home/resources/quick-reference.md): Key addresses, endpoints, chain IDs, and common error codes for quick lookup. - [Address book](https://docs.rhinestone.dev/home/resources/address-book.md) - [Supported chains](https://docs.rhinestone.dev/home/resources/supported-chains.md): Learn what chains our services are deployed on - [Audit reports](https://docs.rhinestone.dev/home/resources/audit-reports.md) - [Fees](https://docs.rhinestone.dev/home/resources/fees.md): An overview of the fees in Rhinestone’s system - [ERC-7579](https://docs.rhinestone.dev/home/resources/erc-7579.md) - [Modules explained](https://docs.rhinestone.dev/home/resources/modules.md) - [Getting started](https://docs.rhinestone.dev/dashboard/overview.md): Sign in, and find your way around the dashboard - [Billing](https://docs.rhinestone.dev/dashboard/billing.md): Pay for sponsorship with a saved card, and cap your monthly spend - [App fees](https://docs.rhinestone.dev/dashboard/app-fees.md): Set a payout address and withdraw the app fees your project has collected - [Team management](https://docs.rhinestone.dev/dashboard/team.md): Invite teammates and manage roles - [API keys](https://docs.rhinestone.dev/dashboard/api-keys.md): Create, scope, rotate, and revoke API keys - [JWT keys](https://docs.rhinestone.dev/dashboard/jwt-keys.md): Register a signing key so your backend can issue JWTs - [Overview](https://docs.rhinestone.dev/smart-wallet/overview.md): Build self-custodial smart wallets with customizable or managed integration paths - [Quickstart](https://docs.rhinestone.dev/smart-wallet/quickstart.md): Create a smart wallet and send your first transaction with 1auth or the Rhinestone SDK - [Sponsor fees for your users](https://docs.rhinestone.dev/smart-wallet/tutorials/sponsor-fees.md): Cover gas, bridging, and swap fees for your users. - [Add session keys](https://docs.rhinestone.dev/smart-wallet/tutorials/session-keys.md): Enable one-click UX by letting users grant scoped permissions to your app. - [Create a smart account](https://docs.rhinestone.dev/smart-wallet/core/create-account.md): Create a Rhinestone smart account and configure its owners. - [Signer types](https://docs.rhinestone.dev/smart-wallet/core/setup-signer.md): Choose how users authenticate and sign transactions in your Rhinestone smart account. - [ECDSA signer](https://docs.rhinestone.dev/smart-wallet/core/ecdsa-signer.md): Use an EOA as the owner of a smart account. Supports single key or n/m multisig. - [Passkey](https://docs.rhinestone.dev/smart-wallet/core/passkeys.md): Use device biometrics as the owner of a smart account. Supports single key or n/m multisig. - [Multisig](https://docs.rhinestone.dev/smart-wallet/core/multisig.md): Set up and use m-of-n ECDSA or passkey multisig accounts. - [Multi-factor authentication](https://docs.rhinestone.dev/smart-wallet/advanced/multi-factor-authentication.md): Using multiple validators in tandem - [Privy](https://docs.rhinestone.dev/smart-wallet/core/signers/privy.md): Integrate Privy signers with Rhinestone smart accounts. - [Dynamic](https://docs.rhinestone.dev/smart-wallet/core/signers/dynamic.md): Integrate Dynamic signers with Rhinestone smart accounts. - [Para](https://docs.rhinestone.dev/smart-wallet/core/signers/para.md): Integrate Para MPC wallets with Rhinestone smart accounts. - [Magic](https://docs.rhinestone.dev/smart-wallet/core/signers/magic.md): Integrate Magic signers with Rhinestone smart accounts. - [Turnkey](https://docs.rhinestone.dev/smart-wallet/core/signers/turnkey.md): Integrate Turnkey signers with Rhinestone smart accounts. - [Openfort](https://docs.rhinestone.dev/smart-wallet/core/signers/openfort.md): Integrate Openfort signers with Rhinestone smart accounts. - [External wallets](https://docs.rhinestone.dev/smart-wallet/core/signers/external-wallet-signer.md): Integrate external wallets (MetaMask, Coinbase, etc.) with Rhinestone smart accounts. - [Send a transaction](https://docs.rhinestone.dev/smart-wallet/core/create-first-transaction.md): Send single-chain and cross-chain transactions from a Rhinestone smart account. - [Batch transactions](https://docs.rhinestone.dev/smart-wallet/advanced/batch-transactions.md) - [Overview](https://docs.rhinestone.dev/smart-wallet/gas-sponsorship/overview.md): Sponsor gas, bridging, and swap costs for your users - [Overview](https://docs.rhinestone.dev/smart-wallet/smart-sessions/overview.md): Rhinestone’s framework for creating and managing session keys. It is a powerful system for creating onchain permissions. - [Create a session](https://docs.rhinestone.dev/smart-wallet/smart-sessions/guides/create-a-session.md): Install the Smart Sessions validator and define a scoped session key. - [Use a session](https://docs.rhinestone.dev/smart-wallet/smart-sessions/guides/use-a-session.md): Enable a session on-chain, transact with it, and disable it. - [Restrict a session](https://docs.rhinestone.dev/smart-wallet/smart-sessions/guides/restrict-a-session.md): Drop the intent-execution fallback so a session runs only the calls it lists. - [Session signing](https://docs.rhinestone.dev/smart-wallet/smart-sessions/guides/session-signing.md): Control what a session key may sign off-chain over ERC-1271. - [Swap sessions](https://docs.rhinestone.dev/smart-wallet/smart-sessions/guides/swap-sessions.md): Scope a session to a single swap: two tokens, a fixed recipient, a spend cap, and the venues it may route through. - [Multi-chain session](https://docs.rhinestone.dev/smart-wallet/smart-sessions/guides/multi-chain-session.md): Reuse the session signature across multiple chains - [ECDSA](https://docs.rhinestone.dev/smart-wallet/smart-sessions/signature-validators/ecdsa.md) - [Passkey](https://docs.rhinestone.dev/smart-wallet/smart-sessions/signature-validators/passkey.md) - [Multi-sig](https://docs.rhinestone.dev/smart-wallet/smart-sessions/signature-validators/multisig.md) - [Sudo](https://docs.rhinestone.dev/smart-wallet/smart-sessions/policies/sudo.md) - [Call](https://docs.rhinestone.dev/smart-wallet/smart-sessions/policies/call.md) - [Spending limit](https://docs.rhinestone.dev/smart-wallet/smart-sessions/policies/spending-limit.md) - [Gas limit](https://docs.rhinestone.dev/smart-wallet/smart-sessions/policies/gas-limit.md): Limit the total gas a session key can consume. - [Timeframe](https://docs.rhinestone.dev/smart-wallet/smart-sessions/policies/timeframe.md) - [Usage limit](https://docs.rhinestone.dev/smart-wallet/smart-sessions/policies/usage-limit.md) - [Cross-chain permits](https://docs.rhinestone.dev/smart-wallet/smart-sessions/policies/cross-chain.md) - [Recovery](https://docs.rhinestone.dev/smart-wallet/advanced/recovery.md): Recover an account using guardians - [Custom modules](https://docs.rhinestone.dev/smart-wallet/advanced/custom-modules.md): Extend account's capabilities with bespoke modules - [Message signing](https://docs.rhinestone.dev/smart-wallet/advanced/message-signing.md) - [Custom signing](https://docs.rhinestone.dev/smart-wallet/advanced/custom-signing.md): Inspect and manually sign intent messages - [Error handling](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/error-handling.md) - [EOA](https://docs.rhinestone.dev/smart-wallet/core/eoa.md): Use a plain EOA with the Rhinestone SDK to send intents without deploying a smart account - [EIP-7702](https://docs.rhinestone.dev/smart-wallet/core/eip-7702.md): Add smart account capabilities to an existing EOA without changing its address - [Bring your own account](https://docs.rhinestone.dev/smart-wallet/customize/bring-your-own-account.md): Use Rhinestone with an existing account - [Smart account providers](https://docs.rhinestone.dev/smart-wallet/customize/smart-account-providers.md): Choose which smart account implementation to use with the Rhinestone SDK. - [JSON-RPC providers](https://docs.rhinestone.dev/smart-wallet/customize/json-rpc-providers.md) - [Migration guide](https://docs.rhinestone.dev/smart-wallet/advanced/migration-guide.md) - [ERC-4337](https://docs.rhinestone.dev/smart-wallet/advanced/erc4337.md): Configure and use ERC-4337 with the Rhinestone SDK. - [Security](https://docs.rhinestone.dev/smart-wallet/advanced/security.md): Protect your API key and safely sponsor transactions via a backend proxy - [Module SDK](https://docs.rhinestone.dev/smart-wallet/module-sdk.md): TypeScript library for using smart account modules - [ModuleKit](https://docs.rhinestone.dev/smart-wallet/modulekit.md): Development kit for building smart account modules - [RhinestoneSDK](https://docs.rhinestone.dev/sdk-reference/rhinestone-sdk/rhinestone-sdk.md): Stateful entry point that holds shared configuration (auth, provider, bundler, paymaster) and creates accounts from it, delegating all work to the SDK-core composition. - [createAccount](https://docs.rhinestone.dev/sdk-reference/rhinestone-sdk/create-account.md): Create an account using this instance's shared configuration. - [getIntentStatus](https://docs.rhinestone.dev/sdk-reference/rhinestone-sdk/get-intent-status.md): Get the current status of a submitted intent. - [splitIntents](https://docs.rhinestone.dev/sdk-reference/rhinestone-sdk/split-intents.md): Split a transaction into multiple intents across chains. - [getAppFeeBalances](https://docs.rhinestone.dev/sdk-reference/rhinestone-sdk/get-app-fee-balances.md): Get the integrator's accrued app-fee balance, as USD totals. - [createSession](https://docs.rhinestone.dev/sdk-reference/rhinestone-sdk/create-session.md): Create a smart session, resolving the chain's wrapped-native token from the orchestrator's chain catalog (GET /chains) so native-token wrapping is permitted automatically. Project-scoped — needs the API key but no account. For a fully offline build, use the standalone toSession and pass wrappedNativ… - [deploy](https://docs.rhinestone.dev/sdk-reference/account/deployment/deploy.md): Deploy the account on a given chain. - [isDeployed](https://docs.rhinestone.dev/sdk-reference/account/deployment/is-deployed.md): Check whether the account is deployed on a given chain. - [setup](https://docs.rhinestone.dev/sdk-reference/account/deployment/setup.md): Set up an existing account on a given chain by installing any missing modules. - [getInitData](https://docs.rhinestone.dev/sdk-reference/account/deployment/get-init-data.md): Get the account initialization data, used to deploy the account onchain. - [signEip7702InitData](https://docs.rhinestone.dev/sdk-reference/account/deployment/sign-eip7702-init-data.md): Prepare and sign the EIP-7702 account initialization data. - [prepareTransaction](https://docs.rhinestone.dev/sdk-reference/account/transactions/prepare-transaction.md): Prepare a transaction for signing. - [getTransactionMessages](https://docs.rhinestone.dev/sdk-reference/account/transactions/get-transaction-messages.md): Get the typed-data messages to sign for a prepared transaction. - [signTransaction](https://docs.rhinestone.dev/sdk-reference/account/transactions/sign-transaction.md): Sign a prepared transaction as one configured owner. The returned signature can be serialized and shared with the party coordinating submission. - [assembleTransaction](https://docs.rhinestone.dev/sdk-reference/account/transactions/assemble-transaction.md): Assemble independently collected owner signatures into a signed transaction. Signatures are deduplicated and ordered according to the configured owner set. Account thresholds are read from the local configuration; an explicit transaction signer set determines active MFA IDs and contributing owners.… - [signAuthorizations](https://docs.rhinestone.dev/sdk-reference/account/transactions/sign-authorizations.md): Sign the EIP-7702 authorizations required for a transaction. - [signIntent](https://docs.rhinestone.dev/sdk-reference/account/transactions/sign-intent.md): Sign an orchestrator intent operation. Used by headless flows that prepare the intent outside the SDK but still need the SDK-owned smart-session signature packing and target-execution signature routing. - [submitTransaction](https://docs.rhinestone.dev/sdk-reference/account/transactions/submit-transaction.md): Submit a signed transaction. - [prepareUserOperation](https://docs.rhinestone.dev/sdk-reference/account/user-operations/prepare-user-operation.md): Prepare a user operation for signing. - [signUserOperation](https://docs.rhinestone.dev/sdk-reference/account/user-operations/sign-user-operation.md): Sign a prepared user operation. - [submitUserOperation](https://docs.rhinestone.dev/sdk-reference/account/user-operations/submit-user-operation.md): Submit a signed user operation. - [sendUserOperation](https://docs.rhinestone.dev/sdk-reference/account/user-operations/send-user-operation.md): Prepare, sign, and submit a user operation in a single call. - [signMessage](https://docs.rhinestone.dev/sdk-reference/account/signing/sign-message.md): Sign a message (EIP-191). - [signTypedData](https://docs.rhinestone.dev/sdk-reference/account/signing/sign-typed-data.md): Sign typed data (EIP-712). - [waitForExecution](https://docs.rhinestone.dev/sdk-reference/account/execution/wait-for-execution.md): Wait for a submitted transaction or user operation to execute onchain. Polls the orchestrator until the intent reaches a terminal state; on failure an IntentFailedError is thrown. - [getAddress](https://docs.rhinestone.dev/sdk-reference/account/reads/get-address.md): Get the account address. - [getPortfolio](https://docs.rhinestone.dev/sdk-reference/account/reads/get-portfolio.md): Get the account portfolio (token balances across chains). - [getOwners](https://docs.rhinestone.dev/sdk-reference/account/reads/get-owners.md): Get the account owners. - [getValidators](https://docs.rhinestone.dev/sdk-reference/account/reads/get-validators.md): Get the account validator modules. - [getExecutors](https://docs.rhinestone.dev/sdk-reference/account/reads/get-executors.md): Get the account executor modules. - [getSessionDetails](https://docs.rhinestone.dev/sdk-reference/account/smart-sessions/get-session-details.md): Resolve the smart-session details for a set of sessions. - [isSessionEnabled](https://docs.rhinestone.dev/sdk-reference/account/smart-sessions/is-session-enabled.md): Check whether a smart session is enabled on the account. - [signEnableSession](https://docs.rhinestone.dev/sdk-reference/account/smart-sessions/sign-enable-session.md): Sign the data required to enable a smart session. - [enable](https://docs.rhinestone.dev/sdk-reference/actions/ecdsa/enable.md): Enable ECDSA authentication - [disable](https://docs.rhinestone.dev/sdk-reference/actions/ecdsa/disable.md): Disable ECDSA authentication - [addOwner](https://docs.rhinestone.dev/sdk-reference/actions/ecdsa/add-owner.md): Add an ECDSA owner - [removeOwner](https://docs.rhinestone.dev/sdk-reference/actions/ecdsa/remove-owner.md): Remove an ECDSA owner - [changeThreshold](https://docs.rhinestone.dev/sdk-reference/actions/ecdsa/change-threshold.md): Change an account's signer threshold (ECDSA) - [enable](https://docs.rhinestone.dev/sdk-reference/actions/passkeys/enable.md): Enable passkeys authentication - [disable](https://docs.rhinestone.dev/sdk-reference/actions/passkeys/disable.md): Disable passkeys (WebAuthn) authentication - [addOwner](https://docs.rhinestone.dev/sdk-reference/actions/passkeys/add-owner.md): Add a passkey owner - [removeOwner](https://docs.rhinestone.dev/sdk-reference/actions/passkeys/remove-owner.md): Remove a passkey owner - [changeThreshold](https://docs.rhinestone.dev/sdk-reference/actions/passkeys/change-threshold.md): Change an account's signer threshold (passkey) - [enable](https://docs.rhinestone.dev/sdk-reference/actions/recovery/enable.md): Set up social recovery. - [recoverEcdsaOwnership](https://docs.rhinestone.dev/sdk-reference/actions/recovery/recover-ecdsa-ownership.md): Build the calls that rotate an account's ECDSA ownership. - [recoverPasskeyOwnership](https://docs.rhinestone.dev/sdk-reference/actions/recovery/recover-passkey-ownership.md): Build the calls that rotate an account's passkey ownership. - [enable](https://docs.rhinestone.dev/sdk-reference/actions/mfa/enable.md): Enable multi-factor authentication - [disable](https://docs.rhinestone.dev/sdk-reference/actions/mfa/disable.md): Disable multi-factor authentication - [changeThreshold](https://docs.rhinestone.dev/sdk-reference/actions/mfa/change-threshold.md): Change the multi-factor threshold - [setSubValidator](https://docs.rhinestone.dev/sdk-reference/actions/mfa/set-sub-validator.md): Set a sub-validator (multi-factor) - [removeSubValidator](https://docs.rhinestone.dev/sdk-reference/actions/mfa/remove-sub-validator.md): Remove a sub-validator (multi-factor) - [installModule](https://docs.rhinestone.dev/sdk-reference/actions/modules/install-module.md) - [uninstallModule](https://docs.rhinestone.dev/sdk-reference/actions/modules/uninstall-module.md) - [deploy](https://docs.rhinestone.dev/sdk-reference/actions/modules/deploy.md) - [enable](https://docs.rhinestone.dev/sdk-reference/actions/smart-sessions/enable.md): Enable smart sessions - [disable](https://docs.rhinestone.dev/sdk-reference/actions/smart-sessions/disable.md): Disable smart sessions - [enableSession](https://docs.rhinestone.dev/sdk-reference/actions/smart-sessions/enable-session.md): Enable a smart session - [disableSession](https://docs.rhinestone.dev/sdk-reference/actions/smart-sessions/disable-session.md): Disable a smart session - [experimental_getV0InitData](https://docs.rhinestone.dev/sdk-reference/utils/experimental-get-v0-init-data.md): Compute the v0 (legacy) initialization data for an account configuration. - [experimental_getRhinestoneInitData](https://docs.rhinestone.dev/sdk-reference/utils/experimental-get-rhinestone-init-data.md): Compute the Rhinestone initialization data for an account configuration. - [toViewOnlyAccount](https://docs.rhinestone.dev/sdk-reference/utils/to-view-only-account.md): Create a view-only viem Account for an address. Any signing operation throws. - [Overview](https://docs.rhinestone.dev/intents/overview.md): Warp is Rhinestone's intent routing and execution engine for crosschain transactions. - [Quickstart](https://docs.rhinestone.dev/intents/quickstart.md): Send your first crosschain intent via the Rhinestone REST API. - [Execute a crosschain swap](https://docs.rhinestone.dev/intents/tutorial/end-to-end-intent-flow.md): Bridge and swap tokens across chains in a single intent using the Rhinestone API. - [Single-chain](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/single-chain-intent.md): Send same-chain transactions via Warp intents - [Crosschain](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/multi-chain-intent.md): Make cross-chain transactions with intents - [Unified balance](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/unified-balance.md) - [Swaps](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/swaps.md): Bridge and swap in a single transaction using Warp's built-in solver liquidity. - [Execute crosschain calls](https://docs.rhinestone.dev/intents/features/execute-crosschain-calls.md): Execute any onchain action on a destination chain, with or without bridging tokens. - [Non-EVM destinations](https://docs.rhinestone.dev/intents/features/non-evm-destinations.md): Send intents to Solana and Tron destination chains. - [Spend max tokens](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/source-token-amount.md) - [Custom recipient](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/custom-recipient.md): Send funds to a different address than the sender - [Account deployment](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/account-deployment.md) - [Automated zaps](https://docs.rhinestone.dev/intents/use-cases/automated-zaps.md): Streamline crosschain deposits, withdrawals, and automated vault actions for EOA users. - [Multi-input bridge](https://docs.rhinestone.dev/intents/use-cases/multi-input-bridge.md): Bridge tokens from multiple source chains or tokens into a single destination transaction. - [Crosschain vault deposit](https://docs.rhinestone.dev/intents/use-cases/vault-deposit.md): Deposit into an ERC-4626 vault on any chain using tokens from any supported chain. - [Using the API](https://docs.rhinestone.dev/intents/guides/using-the-api.md): How the Rhinestone Orchestrator API works and what to keep in mind when integrating. - [API versioning](https://docs.rhinestone.dev/intents/guides/api-versioning.md): How the Rhinestone API evolves, how to pin a version, and how to migrate between them. - [Getting a quote](https://docs.rhinestone.dev/intents/guides/getting-a-quote.md): Request a Quote for an Intent - [Setting up approvals](https://docs.rhinestone.dev/intents/guides/token-requirements.md): Handle token approvals and ETH wrapping before signing an intent. - [Signing the intent](https://docs.rhinestone.dev/intents/guides/signing.md): Sign each entry in signData using EIP-712. - [Submitting the intent](https://docs.rhinestone.dev/intents/guides/submitting-the-intent.md): Submit the signed intent to the Orchestrator - [Tracking intents](https://docs.rhinestone.dev/intents/guides/tracking-intents.md): Poll for intent status and understand the intent lifecycle. - [Installing the intent executor](https://docs.rhinestone.dev/intents/guides/installing-intent-executor.md): Install the Intent Executor module on your ERC-7579 smart account to use Rhinestone Warp. - [Portfolio endpoint](https://docs.rhinestone.dev/intents/guides/portfolio-endpoint.md): Fetch a user's aggregated token balances across all supported chains. - [Error handling](https://docs.rhinestone.dev/intents/guides/error-handling.md): Common Orchestrator errors and how to resolve them - [JWT authentication](https://docs.rhinestone.dev/intents/configuration/jwt-authentication.md): Authenticate the SDK with JWTs instead of API keys - [Local testing (Docker)](https://docs.rhinestone.dev/smart-wallet/chain-abstraction/local-orchestrator-docker.md): Run the Rhinestone Orchestrator locally with Docker and connect the SDK to forked chains. - [Overview](https://docs.rhinestone.dev/deposits/overview.md): Accept deposits from any chain into your app with Rhinestone's cross-chain deposit infrastructure. - [Widget quickstart](https://docs.rhinestone.dev/deposits/widget/quickstart.md): Add the deposit widget to your React app and accept cross-chain deposits in minutes. - [Backend](https://docs.rhinestone.dev/deposits/widget/backend.md): The widget needs a proxy holding your Rhinestone API key. Write one, or deploy Rhinestone's. - [Deposit modal](https://docs.rhinestone.dev/deposits/widget/deposit-modal.md): Configure the deposit modal for different wallet connection modes and deposit flows. - [Asset migrations](https://docs.rhinestone.dev/deposits/widget/asset-migrations.md): Fund a deposit from balances the user already holds in another app. - [Withdraw modal](https://docs.rhinestone.dev/deposits/widget/withdraw-modal.md): Let users withdraw tokens from any account to any supported chain. Your app executes the transfer. - [History and recovery](https://docs.rhinestone.dev/deposits/widget/history-and-recovery.md): Let users review deposits and recover eligible failures from the deposit or withdraw modal. - [Mobile apps](https://docs.rhinestone.dev/deposits/widget/mobile.md): Run the deposit flow in a native app: our hosted page in a native sheet, with your app's wallet signing. - [Customization](https://docs.rhinestone.dev/deposits/widget/customization.md): Theme, brand, and configure the deposit widget to match your app. - [Status tracking](https://docs.rhinestone.dev/deposits/widget/status-tracking.md): Track deposit progress via the onLifecycle callback, and read the arrival estimates the modal shows while a deposit is in flight. - [Migration guide](https://docs.rhinestone.dev/deposits/widget/migration.md): Upgrade @rhinestone/deposit-modal through the v0.17.0 arrival estimates, the v0.16.0 claim modal removal, and earlier modal contract changes. - [Demo](https://docs.rhinestone.dev/deposits/demo.md) - [API quickstart](https://docs.rhinestone.dev/deposits/api/quickstart.md): Set up the Deposit API and process your first cross-chain deposit. - [Initial setup](https://docs.rhinestone.dev/deposits/api/initial-setup.md): Configure webhooks, fee sponsorship, and deposit whitelists for your Deposit API client. - [Account registration](https://docs.rhinestone.dev/deposits/api/account-registration.md): Register managed or user-owned smart accounts for cross-chain deposit processing. - [Deposit processing](https://docs.rhinestone.dev/deposits/api/deposit-processing.md): How deposits are detected, bridged, and settled, including status tracking, retries, and error handling. - [Fiat and CEX on-ramp](https://docs.rhinestone.dev/deposits/api/onramp.md): Let users fund their account with a card, Apple Pay, a bank transfer, or a centralized exchange balance — powered by Swapped. - [Fees](https://docs.rhinestone.dev/deposits/api/fees.md): Understand the fee structure for deposits. - [Sponsorship](https://docs.rhinestone.dev/deposits/api/sponsorship.md): Sponsor deposit fees on behalf of your users. - [Status tracking](https://docs.rhinestone.dev/deposits/api/status-tracking.md): Track deposit status via polling or webhooks — two approaches for monitoring the deposit lifecycle. - [Troubleshooting](https://docs.rhinestone.dev/deposits/troubleshooting.md): Retry or refund failed deposits from the dashboard - [Introduction](https://docs.rhinestone.dev/api-reference/introduction.md): Reference for the Rhinestone REST APIs. - [Supported chains and tokens](https://docs.rhinestone.dev/api-reference/orchestrator/utilities/supported-chains-and-tokens.md): Get supported chains and tokens with additional metadata - [Route liquidity limit](https://docs.rhinestone.dev/api-reference/orchestrator/utilities/route-liquidity-limit.md): Returns the largest known fillable amount for a single deposit on the given source→destination route. Relayer-market layers return exact capacity; bridge-backed layers return a conservative probed lower bound. - [Get Account Portfolio](https://docs.rhinestone.dev/api-reference/orchestrator/utilities/get-account-portfolio.md): Retrieves the token balances across all supported chains for a user's abstracted account - [Get Intent](https://docs.rhinestone.dev/api-reference/orchestrator/intents/get-intent.md): Retrieves the status of an intent along with per-claim progress across chains. - [List Intents](https://docs.rhinestone.dev/api-reference/orchestrator/intents/list-intents.md): Retrieves a paginated list of the authenticated client's intents, newest first. - [Create Intent](https://docs.rhinestone.dev/api-reference/orchestrator/intents/create-intent.md): Submits a quoted intent for execution. Takes the `intentId` from `POST /quotes` (`routes[].intentId`) plus signatures (origin, destination, optionally target-execution) and optional EIP-7702 authorizations. - [Split Intent by Liquidity](https://docs.rhinestone.dev/api-reference/orchestrator/intents/split-intent-by-liquidity.md): Splits token amounts into multiple intents based on available relayer liquidity. Each returned intent can be filled by a single relayer. - [Create Quote](https://docs.rhinestone.dev/api-reference/orchestrator/quotes/create-quote.md): Computes a quote for an intent: token transfers, target executions, and cost breakdown. Returns a pre-ranked `routes[]` with per-route `intentId` to pass to `POST /intents` for execution. - [Create Indicative Quote](https://docs.rhinestone.dev/api-reference/orchestrator/quotes/create-indicative-quote.md): Computes an indicative (non-binding) quote: ranked route estimates with per-route cost breakdown and fill time. Unlike `POST /quotes`, it returns no `intentId`, `signData`, or `expiresAt` — it cannot be submitted to `POST /intents`. Use it for pre-quote UX (price previews, route discovery) without p… - [Get App-Fee Balances](https://docs.rhinestone.dev/api-reference/orchestrator/app-fees/get-app-fee-balances.md): The authenticated project's app-fee balance as USD totals valued at collection time. `pendingUsd` is the payout value permanently reserved by signed withdrawals whose target-chain FILL has not completed, including failed or expired payouts. - [Get App-Fee Withdrawal Targets](https://docs.rhinestone.dev/api-reference/orchestrator/app-fees/get-app-fee-withdrawal-targets.md): Get the enabled EVM chains and whitelisted stablecoins currently accepted for app-fee withdrawals. - [List App-Fee Withdrawals](https://docs.rhinestone.dev/api-reference/orchestrator/app-fees/list-app-fee-withdrawals.md): The authenticated project's app-fee withdrawals (newest first) with each withdrawal's status and USD value paid out. - [Create App-Fee Withdrawal](https://docs.rhinestone.dev/api-reference/orchestrator/app-fees/create-app-fee-withdrawal.md): Withdraw the authenticated project's full app-fee balance to a whitelisted stablecoin on the chosen chain, paid to the project's registered payout address. - [Get App-Fee Withdrawal](https://docs.rhinestone.dev/api-reference/orchestrator/app-fees/get-app-fee-withdrawal.md): A single app-fee withdrawal owned by the authenticated project, with its status and USD value paid out. - [Record analytics events](https://docs.rhinestone.dev/api-reference/deposit-service/analytics/record-analytics-events.md): Stores a batch of browser analytics events. - [Create an analytics token](https://docs.rhinestone.dev/api-reference/deposit-service/analytics/create-an-analytics-token.md): Creates a token for submitting analytics events, valid for five minutes. - [List supported chains and tokens](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/list-supported-chains-and-tokens.md): Returns supported chains and tokens with their deposit and destination availability. - [List deposits](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/list-deposits.md): Returns deposits for the authenticated project, newest first. - [Get a deposit](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/get-a-deposit.md): Returns a deposit for the authenticated project. - [List deposit quotes](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/list-deposit-quotes.md): Returns quotes considered for a deposit and their outcomes. - [Get deposit statistics](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/get-deposit-statistics.md): Returns completed deposit counts, unique depositors, and USD volume for the requested period. - [Get a wallet portfolio](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/get-a-wallet-portfolio.md): Returns token balances and values for a wallet. - [List withdrawable positions](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/list-withdrawable-positions.md): Returns DeFi positions and the amounts currently available to withdraw. - [Prepare an Aave withdrawal](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/prepare-an-aave-withdrawal.md): Prepares an unsigned transaction to withdraw an Aave position to a deposit address. - [Get a Solana wallet portfolio](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/get-a-solana-wallet-portfolio.md): Returns token balances and values for a Solana wallet. - [Check route liquidity](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/check-route-liquidity.md): Checks whether a route can fulfil the requested amount. - [Get token prices](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/get-token-prices.md): Returns token prices in USD by symbol. - [List suggested deposit tokens](https://docs.rhinestone.dev/api-reference/deposit-service/utilities/list-suggested-deposit-tokens.md): Returns suggested tokens for QR and manual-transfer deposits. - [Check account registration](https://docs.rhinestone.dev/api-reference/deposit-service/accounts/check-account-registration.md): Returns whether an account is registered and its target chain and token. - [Register an account](https://docs.rhinestone.dev/api-reference/deposit-service/accounts/register-an-account.md): Registers a smart account for deposits. - [Provision deposit addresses](https://docs.rhinestone.dev/api-reference/deposit-service/accounts/provision-deposit-addresses.md): Returns deposit addresses for a registered account, creating missing addresses as needed. - [Add session details to account](https://docs.rhinestone.dev/api-reference/deposit-service/accounts/add-session-details-to-account.md): Add session details (chain IDs, session digests, and signature) to an existing account - [Provision a Solana token account](https://docs.rhinestone.dev/api-reference/deposit-service/accounts/provision-a-solana-token-account.md): Creates a token account for a registered account’s Solana deposit address, or returns the existing one. - [Register a managed account](https://docs.rhinestone.dev/api-reference/deposit-service/accounts/register-a-managed-account.md): Registers a smart account controlled by the server. - [Prepare account registration](https://docs.rhinestone.dev/api-reference/deposit-service/accounts/prepare-account-registration.md): Returns a deposit address or the details needed to register the account. - [Get client settings](https://docs.rhinestone.dev/api-reference/deposit-service/clients/get-client-settings.md): Returns the stored client configuration for the authenticated project. - [Update client settings](https://docs.rhinestone.dev/api-reference/deposit-service/clients/update-client-settings.md): Updates client configuration for the authenticated project. - [Retry a deposit](https://docs.rhinestone.dev/api-reference/deposit-service/processing/retry-a-deposit.md): Retries a failed or rejected deposit. - [Refund a deposit](https://docs.rhinestone.dev/api-reference/deposit-service/processing/refund-a-deposit.md): Returns deposit funds to a specified address on the source chain. - [Recover a deposit](https://docs.rhinestone.dev/api-reference/deposit-service/processing/recover-a-deposit.md): Returns funds from a failed or rejected deposit. - [Get a deposit quote](https://docs.rhinestone.dev/api-reference/deposit-service/processing/get-a-deposit-quote.md): Estimates fees, output, and completion time for a deposit. - [Prepare a gasless deposit](https://docs.rhinestone.dev/api-reference/deposit-service/processing/prepare-a-gasless-deposit.md): Prepares a token authorization for the user to sign. Experimental. - [Submit a gasless deposit](https://docs.rhinestone.dev/api-reference/deposit-service/processing/submit-a-gasless-deposit.md): Starts a deposit using a signed token authorization. Experimental. - [Relay a Safe withdrawal](https://docs.rhinestone.dev/api-reference/deposit-service/processing/relay-a-safe-withdrawal.md): Submits a signed Safe withdrawal with sponsored gas. - [Relay a Polymarket withdrawal](https://docs.rhinestone.dev/api-reference/deposit-service/processing/relay-a-polymarket-withdrawal.md): Submits a signed withdrawal from a Polymarket deposit wallet. - [List webhook events](https://docs.rhinestone.dev/api-reference/deposit-service/webhooks/list-webhook-events.md): Returns webhook events for the authenticated project, newest first. - [Resend a webhook](https://docs.rhinestone.dev/api-reference/deposit-service/webhooks/resend-a-webhook.md): Resends a webhook event to the configured URL. - [Send a test webhook](https://docs.rhinestone.dev/api-reference/deposit-service/webhooks/send-a-test-webhook.md): Sends a webhook with test data to the configured URL. - [Create a fiat funding URL](https://docs.rhinestone.dev/api-reference/deposit-service/onramp/create-a-fiat-funding-url.md): Creates a signed Swapped URL for buying crypto with fiat. - [Create an exchange funding URL](https://docs.rhinestone.dev/api-reference/deposit-service/onramp/create-an-exchange-funding-url.md): Creates a signed Swapped Connect URL for funding from a centralized exchange. - [List payment methods](https://docs.rhinestone.dev/api-reference/deposit-service/onramp/list-payment-methods.md): Returns available Swapped payment methods for the user’s country. - [Get funding status](https://docs.rhinestone.dev/api-reference/deposit-service/onramp/get-funding-status.md): Returns the latest Swapped order for a smart account. - [List supported exchanges](https://docs.rhinestone.dev/api-reference/deposit-service/onramp/list-supported-exchanges.md): Returns centralized exchanges available for funding through Swapped Connect. ## OpenAPI Specs - [deposit-service](https://raw.githubusercontent.com/rhinestonewtf/openapi/refs/heads/main/deposit-service.json) - [blanc](https://raw.githubusercontent.com/rhinestonewtf/openapi/refs/heads/main/orchestrator/blanc.json) ## Optional - [Create API Key](https://tally.so/r/wg22x4) - [Examples](https://github.com/rhinestonewtf/e2e-examples/)