(undefined)
return (
{
console.log('Analytic Event', eventName, data)
}}
/>
)
}
```
# Theming
Source: https://docs.relay.link/references/relay-kit/ui/theming
Customize the ui theme to fit your app
## Creating a Theme
RelayKit UI can be fully themed using an intuitive set of theme tokens. You can choose to override all tokens or just a few to make the components match your application theme. You can view the full list of theme overrides [here](https://github.com/relayprotocol/relay-kit/blob/main/packages/ui/src/themes/RelayKitTheme.ts#L10).
```tsx theme={null}
import { RelayKitTheme } from '@relayprotocol/relay-kit-ui'
const theme: RelayKitTheme = {
font: "Inter",
primaryColor: "#09F9E9"
focusColor: "#08DECF"
text: {
default: "#000"
subtle: "#fff"
}
buttons: {
primary: {
color: "#000"
background: "#09F9E9",
hover: {
color: "#000"
background: "#0ad1c4",
}
}
}
}
```
### Fonts
If you are overriding any fonts with custom fonts you need to configure the custom font in your application. For example if you're using nextjs you can refer to this [doc](https://nextjs.org/docs/pages/building-your-application/optimizing/fonts) or if you're pulling the fonts in via css you can refer to this [doc](https://www.w3schools.com/css/css3_fonts.asp).
### Light/Dark Mode
RelayKit UI has built-in support for light and dark mode themes. The components will automatically adapt their appearance based on the theme mode you specify. To control the theme mode, simply add the `light` or `dark` class to your HTML container element:
```html theme={null}
...
...
```
## Usage
Now that your theme is configured you'll just need to pass it into the `RelayKitProvider`.
```tsx theme={null}
import { RelayKitProvider, RelayKitTheme } from '@relayprotocol/relay-kit-ui'
const theme: RelayKitTheme = { ... } //Previously created theme
...
{YOUR_APP}
```
# Troubleshooting
Source: https://docs.relay.link/references/relay-kit/ui/troubleshooting
Having trouble? Start here
### WagmiProviderNotFoundError: `useConfig` must be used within `WagmiProvider`
This issue is usually the result of multiple wagmi versions, make sure you only have 1 version of wagmi installed. You may also want to delete and reinstall your node modules and clear all caches.
### No QueryClient set, use QueryClientProvider to set one
If you've set the QueryClientProvider with a QueryClient it could be that you have multiple versions of tanstack/react-query installed. Make sure to double check and reduce this to just a single version of the package. You may also want to delete and reinstall your node modules and clear all caches.
### The UI looks unstyled
Make sure you've imported the ui package styles:
```typescript theme={null}
import '@relayprotocol/relay-kit-ui/styles.css'
```
If the issue persists make sure there's no reset css or other css file overriding the styles provided by the package.
### Incompatibility
If you see an error message that looks like this:
```
The types of 'utils.adaptViemWallet' are incompatible between these types
```
It could be that multiple versions of peer dependencies are installed. Review your package lock file for duplicate dependencies.
### No wallet found
If you see an error message that looks like this:
```
Missing a valid wallet
```
or
```
Missing a wallet
```
It could be that you're not providing a valid wallet to the SwapWidget or that you're app is not wrapped in a WagmiProvider. Make sure to provide a wallet to the SwapWidget or double check that your SwapWidget is wrapped by a WagmiProvider. It could also mean that you have two versions of wagmi/viem installed. Make sure that you only have 1 version of wagmi/viem installed as multiple versions can cause issues.
# Intent Status
Source: https://docs.relay.link/references/websockets/intent-status
Stream transaction statuses for Relay transactions.
# Brand Assets
Source: https://docs.relay.link/resources/brand-assets
Logos, guidelines, and assets for presenting the Relay brand clearly and consistently
Guidelines and downloadable assets for using the Relay brand across products, marketing, and communications.
[Download All Brand Assets](https://drive.google.com/drive/folders/1cI223F-K1IR6Vumy7xJymLOkEbyyD0r5?dmr=1\&ec=wgc-drive-hero-goto)
[Relay Brand Guidelines](https://www.figma.com/proto/6Qbgd0xJHFayzrQoeN15Mn/Design-System--New-?page-id=870%3A2723\&node-id=870-3013\&viewport=434%2C-70%2C0.18\&t=Vjai7d5ZFxenfwjG-1\&scaling=contain\&content-scaling=fixed)
# Integrating using AI
Source: https://docs.relay.link/resources/developing-with-ai
Use AI coding assistants to build with Relay faster
Relay documentation is optimized for AI coding assistants. Whether you're using Claude, ChatGPT, Cursor, GitHub Copilot, or other AI tools, you can reference our docs directly to get accurate, up-to-date information about the Relay API and SDK.
## LLM-Optimized Documentation
### llms.txt Files
Relay docs support the [llms.txt standard](https://llmstxt.org/), making our documentation easily accessible to AI tools:
| File | URL | Description |
| - | - | - |
| **llms.txt** | `https://docs.relay.link/llms.txt` | Navigation structure with page summaries |
| **llms-full.txt** | `https://docs.relay.link/llms-full.txt` | Complete documentation content in plain text |
These files are automatically kept in sync with our documentation and provide a clean, token-efficient format for LLMs.
### Copy a Single Page
Copy the content of any documentation page in a clean, AI-friendly format. Click the **Copy page** button at the top of any docs page to copy its contents, then paste it directly into your AI assistant's context window.
This is useful when you need focused context about a specific API endpoint or feature without providing the entire documentation.
## Using Cursor
Provide Relay documentation directly to your AI coding assistant for more accurate, context-aware code generation.
### MCP Server
Install the Relay docs MCP server for rich, queryable access to our documentation directly from Cursor, Claude Desktop, Windsurf, or any MCP-compatible client.
**One-click install for Cursor:**
**Manual install via CLI:**
```bash theme={null}
npx @mintlify/mcp add docs.relay.link
```
Start the server after installation:
```bash theme={null}
npm --prefix ~/.mcp/docs.relay.link start
```
The MCP server gives your AI assistant queryable access to the full Relay documentation, including API references and SDK guides.
### Cursor @Docs
Add Relay's documentation as a context source in Cursor:
1. Open Cursor Settings → Features → Docs
2. Add a new documentation source with the URL `https://docs.relay.link`
3. Reference Relay docs in any Cursor chat by typing `@Docs` and selecting Relay
This keeps your AI assistant up to date with the latest Relay APIs without manually copying documentation.
### Cursor Rules
Set up Relay-specific rules in your project to ensure consistent AI-generated code. Create a `.cursor/rules/relay.mdc` file in your project root:
```text theme={null}
---
description: Rules for building with Relay Protocol
globs:
---
- Use `@relayprotocol/relay-sdk` for server-side integrations
- Use `@relayprotocol/relay-kit-ui` for React UI components
- Always wrap components in `RelayKitProvider`, `WagmiProvider`, and `QueryClientProvider`
- Use `MAINNET_RELAY_API` or `TESTNET_RELAY_API` for the base API URL
- Only use API keys (`x-api-key` header) in server-side code, never expose them client-side
- Use TypeScript for all Relay integrations
- Refer to the Relay docs at https://docs.relay.link for the latest API reference
```
## Using Claude
Claude works well with Relay documentation out of the box. Here are a few ways to get the most out of it.
### Claude Projects
Create a dedicated Claude Project for Relay development. Add `https://docs.relay.link/llms-full.txt` as project knowledge so Claude has the full documentation available in every conversation.
1. Create a new project in [Claude](https://claude.ai)
2. Add the `llms-full.txt` URL as a knowledge source
3. Set custom instructions like "Use the Relay documentation to answer questions about the Relay SDK and API"
### Claude Code
Use Claude Code with the Relay MCP server for context-aware assistance directly in your terminal. Add the following to your `.mcp.json`:
```json theme={null}
{
"mcpServers": {
"relay-docs": {
"url": "https://docs.relay.link/mcp"
}
}
}
```
### Prompting Tips
When prompting Claude (or any LLM) about Relay, keep these tips in mind:
* **Specify the package** — Tell the model whether you're using the SDK (`@relayprotocol/relay-sdk`), UI Kit (`@relayprotocol/relay-kit-ui`), or Hooks (`@relayprotocol/relay-kit-hooks`) so it generates the right imports and patterns.
* **Include chain context** — Mention the origin and destination chains (e.g. "bridge from Ethereum to Base") to get accurate `chainId` values and currency addresses.
* **Reference the action** — Be explicit about whether you're getting a quote, executing a bridge, or checking status. Each uses a different SDK method and endpoint.
* **Paste the relevant doc page** — Use the **Copy page** button on the specific docs page you're working with and paste it into the conversation for the most accurate results.
# Support
Source: https://docs.relay.link/resources/support
# Supported Chains
Source: https://docs.relay.link/resources/supported-chains
# Bug Bounty Program
Source: https://docs.relay.link/security/bounties
How Relay classifies and rewards vulnerability reports.
Relay runs a bug bounty program to make responsible disclosure financially rational for security researchers. Rewards scale with how much damage a bug can cause and how feasible it is to exploit in practice. We run monitoring and circuit breakers across the stack, so the likelihood tiers and modifiers reflect real response capacity — not a hypothetical one.
This framework applies across Relay's protocol and services. Relay Vaults is a separate protocol and is not covered by this program (see [Out of scope](#out-of-scope)).
## How payouts are calculated
Every valid report goes through five steps:
1. Classify **severity** (S1–S4) — how bad is the damage if exploited?
2. Classify **likelihood** (L1–L3) — how feasible is exploitation in practice?
3. Read the **base payout** from the matrix.
4. Apply **modifiers** (×0.5 to ×1.5) from the fixed list.
5. Round to the nearest \$500 (ties round up). **Floor: \$500. Cap: \$100,000.**
### Severity
Severity captures what happens if the bug is exploited — damage magnitude and how fast it occurs.
| Tier | Rule of thumb | Definition |
| - | - | - |
| **S4 — Critical** | Can drain everything immediately | Total fund theft or protocol insolvency with no time to react. |
| **S3 — High** | Large or fast theft, or permanent freeze | Large-scale fund theft or permanent freeze. Requires some setup, but fast once triggered. |
| **S2 — Medium** | Partial or slow damage | Bounded drain (capped percentage, not total) or slow drain with a response window. Temporary freeze. |
| **S1 — Low** | Annoying but not financially dangerous | Griefing, minor economic damage, DoS with no fund loss, or an admin-only bug with no external exploit path. |
Four rules resolve the most common classification calls:
* **Theft outranks freeze.** Stealing funds is more severe than locking them, even at a larger nominal amount.
* **Instant outranks slow.** A slow drain gives us time to detect and pause; an instant drain does not.
* **If damage is capped**, severity is based on the cap — not total TVL.
* **Admin-only bugs are S1.** Functions behind `onlyOwner` or an equivalent role do not escalate above S1 regardless of the potential damage. They are only eligible for a bounty when there is an external path to reach the role (see below).
### Likelihood
Likelihood captures how probable exploitation is in practice.
| Tier | Rule of thumb | Criteria |
| - | - | - |
| **L3 — High** | Anyone can do it anytime | No prerequisites. Callable by any EOA with publicly available calldata. |
| **L2 — Medium** | Needs setup (flash loans, timing, conditions) | Requires specific conditions: flash loan infra, a particular chain state, MEV infrastructure, or another protocol being in a particular state. |
| **L1 — Low** | Needs a privileged role or rare situation | Requires privileged access (operator, solver, oracle), very specific market conditions, or a multi-step attack depending on several parties. |
We reduce likelihood by one tier (floored at L1) when the exploit freezes rather than steals (unless the freeze is a step toward theft).
## Base payout matrix
| | **L3 — High** | **L2 — Medium** | **L1 — Low** |
| - | - | - | - |
| **S4 — Critical** | \$100,000 | \$50,000 | \$20,000 |
| **S3 — High** | \$30,000 | \$15,000 | \$7,500 |
| **S2 — Medium** | \$10,000 | \$5,000 | \$2,000 |
| **S1 — Low** | \$2,000 | \$1,000 | \$500 |
The floor of \$500 applies only when a report demonstrates an external exploit path — an attacker without a privileged role can reach the bug.
A report is not eligible for a bounty when:
* The only exploit path requires a privileged role (owner, operator, solver, oracle).
* The reporter does not demonstrate that an unprivileged party can reach that role or induce the privileged party to act.
* The bug would not fire under normal operation.
These are real bugs and we still want them reported — they just do not qualify as vulnerabilities under this framework. Strong write-ups in this category are candidates for a discretionary bonus.
## Modifiers
After landing on a base payout, apply modifiers multiplicatively. Modifiers are drawn from the fixed list below.
**Quick checklist:**
* ×1.5 — permanently unrecoverable damage
* ×1.25 — hard to fix / hard to detect
* ×0.75 — expensive to exploit, or pausable with active monitoring
* ×0.5 — damage capped to a sub-pool
**Full trigger definitions:**
| Modifier | Trigger | Factor |
| - | - | - |
| Permanently unrecoverable | Damage cannot be reversed after exploit — freeze with no pause or upgrade, or theft with funds laundered/bridged before response is possible | ×1.5 |
| High remediation cost | Fix requires a full contract redeploy across multiple chains | ×1.25 |
| Silent / undetectable | No onchain event emitted, no alert surface, could run unnoticed for days | ×1.25 |
| High attacker cost | Exploit requires significant capital at risk or fees that materially reduce net gain | ×0.75 |
| Pausable + monitored | Contract can be paused. Active monitoring with sub-5-minute response is in place and would meaningfully reduce loss against this specific exploit | ×0.75 |
| Bounded damage pool | Damage capped to a sub-pool, not full TVL (e.g. fee buffer only) | ×0.5 |
The **permanently unrecoverable** modifier (×1.5) applies when damage from an
exploit cannot be reversed once it happens. This is different from how quickly
the damage occurs (which is captured by severity tiers). This modifier is used
if the funds or system state cannot be restored after the exploit, such as
when funds are stolen and removed before any response is possible (e.g.,
laundered or bridged out), or when a freeze is permanent with no way to pause
or upgrade the contract.
Modifiers stack. The final amount is floored at \$500, capped at \$100,000, and rounded to the nearest \$500.
**Worked example.** S3/L2 base = \$15,000. Pausable (×0.75) and bounded to the fee buffer (×0.5) → \$15,000 × 0.75 × 0.5 = \$5,625 → **\$5,500**.
## Worked examples
### Flash loan reentrancy on withdrawal
An attacker uses a flash loan to reenter the withdrawal function and drain depository contract funds in a single transaction. No special permissions required.
* **Severity: S4** — instant, total fund theft.
* **Likelihood: L2** — requires flash loan infrastructure and a specific reentrancy window.
* **Base: \$50,000.** Permanently unrecoverable (×1.5) — funds laundered in the same tx before any response is possible. **Final: \$75,000.**
### Fee parameter drift
A rounding error lets any filler extract \~2 bps above their entitled fee per fill. Callable by any EOA, damage accumulates slowly, bounded to the fee buffer.
* **Severity: S2** — slow drain, bounded to the fee pool.
* **Likelihood: L3** — any EOA, any time.
* **Base: \$10,000.** Bounded damage pool (×0.5) and pausable + monitored (×0.75) → \$3,750 → **\$4,000**.
### Permanent pool freeze via griefing
A crafted cross-chain message bricks a specific pool's accounting, locking all funds in it. The attacker has no way to extract — it is a pure grief and costs gas.
* **Severity: S3** — permanent freeze of a pool.
* **Likelihood: L2** — downgraded one tier from L3 because the exploit freezes rather than steals.
* **Base: \$15,000.** Permanently unrecoverable (×1.5) → **\$22,500**.
## Edge cases
* **"The fix is already deployed."** Payouts are assessed as of report submission, not review. A valid report does not lose value because we moved fast.
* **"The bug only exists under specific token configurations."** If the configuration is live in production, the report is treated as real. If only theoretical, likelihood drops to L1.
* **"The reporter also proposed the fix."** Does not change the tier, but is strong grounds for a discretionary bonus.
* **Duplicate reports.** The first submission gets the full payout. A duplicate submitted within 7 days receives 10% of the first report's payout as a courtesy payment. Duplicates submitted after 7 days are not eligible for payment.
* **Previously known issues.** We treat a finding as already known only when, before your submission, the same root cause was recorded in a dated internal record showing we were already tracking it for remediation, such as an internal ticket or a triaged finding. Raw automated scanner output or an untriaged internal note does not count. When a qualifying record predates your report, the duplicate schedule above applies (10% within 7 days of that record, not eligible after). We will not reduce a payout based on internal discovery we cannot date to before your submission, and, as above, a report never loses value because we detected, triaged, or fixed the issue after you submitted it.
## Discretionary bonuses
Separate from the matrix, we may award bonuses for:
* Exceptional write-ups with clear root cause and a suggested fix.
* Novel attack vectors that reveal a systemic pattern.
* Proactive disclosure during an active incident.
Bonuses are recognition, not entitlement, and are not pre-committed.
## PoC requirements
| Severity | Requirement |
| - | - |
| **S4, S3** | Runnable PoC required. Explanations without code are not accepted. |
| **S2** | PoC strongly preferred. A detailed technical explanation is accepted when a PoC is not feasible. |
| **S1** | Description sufficient with clear reproduction steps. |
## Out of scope
The following are not eligible for a reward:
* Attacks the reporter has already exploited.
* Issues requiring phishing, social engineering, or a compromised private key.
* Findings in third-party protocols we compose with, unless the root cause is in Relay's code.
* DoS with no fund loss and no path to fund loss.
* Theoretical issues with no viable PoC against in-scope assets.
* Relay Vaults. The Vaults contracts (RelayPool, RelayBridge, RelayPoolFactory, RelayBridgeFactory, RelayPoolNativeGateway), the vaults API and the vaults user interface are not in-scope assets. Reports against Relay Vaults are not eligible for a reward.
## Reward process and requirements
* **KYC and background check.** Required before any reward can be issued.
* **Payment.** Rewards are paid in cryptocurrency.
* **Tax documentation.** W-8BEN, W-9, or the equivalent for your jurisdiction is handled as part of KYC.
## Reporting a vulnerability
Email [support@relay.link](mailto:support@relay.link) with a description, reproduction steps, and a runnable PoC where applicable. Most responses are provided within 24 hours, and we will get back to you with next steps within 1 to 4 business days.
# Community Support
Source: https://docs.relay.link/security/community-support
# Transaction Screening
Source: https://docs.relay.link/security/compliance
Understand address screening and blocked transactions on the Relay platform
The [Relay platform](/what-is-relay) screens transaction addresses using third-party risk data and an internal blocklist. Screening can prevent a quote or fill from proceeding.
## How It Works
Screening uses:
* **Third-party data** — Risk and sanctions databases, including HackBounty and Chainalysis, identify flagged addresses.
* **Internal blocklist** — The platform maintains additional address restrictions based on threat reports and investigations.
## Blocked Transactions
A flagged address can produce a “Detected sanctioned address” notification or a blocked-wallet error. See [Unsupported Exchanges](/security/unsupported-exchanges) before sending from an exchange.
A fill-time screening failure does not trigger an automatic refund. See [Execution Errors](/references/api/api_core_concepts/execution-errors) and contact [Support](/resources/support) for review.
# Contract Audits
Source: https://docs.relay.link/security/contract-audits
# MEV protection
Source: https://docs.relay.link/security/mev-protection
Learn how Relay handles MEV protection.
On Relay, all relayers submit destination chain transactions through MEV protection software, like MEV-blocker and merkle. This is important to protect Relay users from MEV. These protections are provided on all major networks with MEV, including Ethereum, BNB, Polygon, and Solana.
If you are interested in learning more, feel free to [reach out](https://forms.gle/XNeELYavjwoJwPEf7) .
# Unsupported Exchanges
Source: https://docs.relay.link/security/unsupported-exchanges
Exchanges that are not supported by Relay
The Relay platform does not support transfers involving the exchanges below. This list is not exhaustive and can change as screening data and the platform blocklist are updated.
* @CryptoBot
* @wallet
* Bit Pin
* BitcoinVN
* Bitnest
* ChangeHero
* ChangeNOW
* CoinEx
* Crypto HK
* Cryptomus
* FixedFloat
* Heleket
* HTX (Huobi Global)
* Kraken Market
* N.Exchange
* Sideshift.ai
* Tornado.cash
* Wallex.ir
* Exmo.me
### What this means for you
* **Withdrawals from a blocked exchange:** Do not withdraw funds from a blocked exchange directly to a Relay deposit address. The deposit will be blocked and the transaction cannot be completed.
* **Sending to a blocked exchange:** Quotes where the recipient address is associated with a blocked exchange will be rejected with a `BLOCKED_WALLET_ADDRESS` error.
### Our policy
Blocking decisions use risk and sanctions databases together with the platform's internal blocklist. The platform does not make case-by-case exceptions for sanctioned entities. See [Transaction Screening](/security/compliance) for details.
For additional information, contact us via [Support](/resources/support).
# Chains
Source: https://docs.relay.link/solutions/chains
Connect your chain to users and balances across the onchain economy
Let users reach your chain with the assets they already hold elsewhere. Once your chain is supported, developers can add swaps, payments, and cross-chain actions through the Relay APIs:
**[Instant Onboarding](/use-cases/bridging)** - Let users fund accounts on your chain from supported assets and networks. Build your own onboarding experience with the API or embed [RelayKit UI components](/references/relay-kit/overview).
**[Same and Cross-chain Swaps](/use-cases/cross-chain-swaps)** - Relay's [Any-to-Any Swaps](/use-cases/cross-chain-swaps) means that once your chain is supported, users across the Relay ecosystem will be able to do any-to-any swaps on your network.
## Relay Benefits
**Chain Support** - Relay supports [85+ chains](/references/api/api_resources/supported-chains), offering coverage across all major EVM networks, alt L1s, SVMs and many appchains. We are designed to add chains on Day 1, and work closely with leading networks to make sure we are. If there is a network you are hoping we'll support, please reach out!
**Industry Leading Quote & Fill Times** - For bridging, swaps, and cross-chain executions, we are industry leading in quote and fill times. Our product is optimized to reduce latency across the user experience, meaning fast quotes and fast fills. Our p50 fill time across chain is less than 3 seconds across all networks.
**SLAs & Customer Support** - Relay is your partner in delivering a world-class multichain experience. We are happy to offer SLAs on quote and fill speed, network uptime, and more.
**App Fees** - Our comprehensive approach to [App Fees](/features/app-fees) lets you easily earn when using Relay. Additionally, we have designed our fee system for you to automatically collect fees in stables.
## Getting Relay on your Chain
If you want Relay on your chain, please [Reach Out](https://forms.gle/XNeELYavjwoJwPEf7)!
# Commerce & Payments
Source: https://docs.relay.link/solutions/commerce-and-payments
Let customers pay from their onchain balance and receive the asset your business uses
Let customers pay from their existing onchain balance, while your business receives the asset it uses. Relay's APIs connect checkout to supported assets and chains through one integration, so customers don't need to bridge or swap separately before paying.
Connect users on every major network
P50 fill time across all routes
Volume enabled to date
Processed across the network
## Watch a Live Demo
## Who Builds with Relay
**Payment processors** — Add crosschain acceptance to your payment stack through a single integration. Rather than building 85+ chain connections, use Relay as the crosschain layer to connect your merchants with users on any network.
**Wallets and neobanks** — Let your users pay merchants directly from their existing holdings on any chain. No bridging, no chain-switching. One tap to pay, regardless of what chain the user or merchant is on.
**Commerce platforms** — Give your merchants onchain payment acceptance without requiring buyers to hold specific assets on specific chains. Connect any buyer to any merchant across the entire onchain ecosystem.
## Integration Paths
### Connected Wallet Checkout
For applications where users connect a wallet directly — web apps, mobile apps, or embedded wallets. Use the standard Relay [execute flow](/references/api/api_core_concepts/step-execution) with `tradeType: EXACT_OUTPUT` to guarantee merchants receive the exact amount requested.
Users connect their wallet, review the transaction, and confirm. Relay handles crosschain routing in the background. Compatible with all major wallet providers.
### Deposit Addresses
For flows where no wallet connection is needed. Generate a unique [deposit address](/features/deposit-addresses) per transaction and present it as a QR code, payment link, or in an invoice. Users send funds from any wallet on any chain, and Relay routes settlement to the merchant.
## Commerce Features
**[Exact Output Settlement](/references/api/api_core_concepts/trade-types)** — Use `tradeType: EXACT_OUTPUT` to guarantee merchants receive precisely the configured amount. No slippage, no shortfalls. If the exact amount cannot be filled, the transaction reverts and the user is refunded on the origin chain. This eliminates partial payment edge cases and removes the need for reconciliation logic.
**[Fee Sponsorship](/features/fee-sponsorship)** — Cover destination chain fees for users to create a frictionless checkout experience. Set a `maxSubsidizationAmount` to cap your exposure.
**[Sponsored Execution](/features/sponsored-execution)** — Submit transactions on behalf of users and cover gas costs entirely. Users sign a payload — your platform handles submission. Works with Permit2, ERC-4337 smart accounts, and EIP-7702, making payments completely gasless for end users.
**[App Fees](/features/app-fees)** — Collect a fee on every transaction that flows through your platform. Fees are automatically settled in USDC on Base.
**[Transaction Tracking](/references/api/get-requests)** — Monitor all transactions through the Relay [Request API](/references/api/get-requests). Track status, amounts, routes, and settlement in real time via API or [WebSockets](/references/api/api_guides/websockets).
## What You Build on Top
Relay provides crosschain routing, settlement guarantees, deposit addresses, real-time status tracking, and exact output fills. Relay does not include a merchant management system, order management, or invoicing — it empowers you to build these solutions on top.
* Merchant onboarding and management
* Order IDs and payment lifecycle management
* Checkout UI and product catalog
* Payment confirmation and receipts
* Invoicing and subscription logic
## Trusted by Leading Teams
Relay powers cross-chain transactions for MetaMask, OpenSea, Coinbase, and other leading platforms. Developers use the Relay APIs for quotes, execution, and tracking; [Relay Protocol](/references/protocol/overview) documents the separate settlement mechanics.
## Get Started
Add crosschain payments to your platform through a single integration. Whether you are building a wallet checkout, a scan-to-pay flow, or a full payment processing layer, the [Quote API](/references/api/get-quote-v2) is the primary interface. Check out the [Quickstart Guide](/references/api/quickstart) to get started, or [reach out](https://forms.gle/XNeELYavjwoJwPEf7) to discuss your use case.
# Multichain Apps
Source: https://docs.relay.link/solutions/multichain-apps
Add onboarding, swaps, and cross-chain checkout to your app
Let users fund accounts, swap assets, and check out with funds they hold on another supported chain. Build these flows into your app with one Relay integration.
## How to Use Relay
**[Onboarding](/use-cases/bridging)** - If your app uses an embedded wallet, you can use Relay to instantly onboard crypto from any currency on any chain. This means you can source users from all major networks, and get them into your wallet in two seconds.
**[In App Swaps & Bridging](/use-cases/cross-chain-swaps)** - Let users swap assets on the same chain or bridge to another supported chain without leaving your app. Add both through the [Quote API](/references/api/get-quote-v2).
**[Cross-chain Checkout](/use-cases/calling)** - Let users check out with assets they already hold on another supported chain. Combine the payment and destination action into one flow, so users don't need to bridge separately before purchasing.
**[Chain Abstraction](/use-cases/calling)** - Relay is designed to enable full chain abstraction. This allows teams to build full centralized exchange trading experiences with onchain rails.
## Relay Benefits
**Chain Support** - Relay supports [85+ chains](/references/api/api_resources/supported-chains), offering coverage across all major EVM networks, alt L1s, SVMs and many appchains. We are designed to add chains on Day 1, and work closely with leading networks to make sure we are. If there is a network you are hoping we'll support, please reach out!
**Industry Leading Quote & Fill Times** - For bridging, swaps, and cross-chain executions, we are industry leading in quote and fill times. Our product is optimized to reduce latency across the user experience, meaning fast quotes and fast fills. Our p50 fill time across chain is less than 3 seconds across all networks.
**SLAs & Customer Support** - Relay is your partner in delivering a world-class multichain experience. We are happy to offer SLAs on quote and fill speed, network uptime, and more.
**App Fees** - Our comprehensive approach to [App Fees](/features/app-fees) lets you easily earn when using Relay. Additionally, we have designed our fee system for you to automatically collect fees in stables (USDC).
## Integrating Relay
Integrating Relay is as simple as calling our [Quote API](/references/api/get-quote-v2). Whether you are integrating Relay for Bridging, Swaps, or Call Execution, this unified interface is the primary way to access the service. Please feel free to reach out with any questions, or start with our [Quickstart Guide](/references/api/quickstart).
# Payment Service Providers
Source: https://docs.relay.link/solutions/payment-service-providers
Accept and disburse any asset, on any supported chain, settled in the currency you run on
Let customers pay from the chains they use and receive funds in the asset your business runs on. Add onchain acceptance and payouts across supported assets and networks with one [Relay](/what-is-relay) integration.
## Use Cases
### Pay-ins or Commerce
Accept funds in any asset on any [supported chain](/references/api/api_resources/supported-chains) and receive your settlement asset through two integration paths:
[Connected or embedded wallets](/references/api/get-quote-v2) — Use the standard quote and deposit flow when your user connects a wallet. Deposits are optionally [gasless](/features/gasless-execution), with [fixed or market rates](/features/price-stabilization).
[Deposit addresses](/features/deposit-addresses) — Generate an address for each order or reusable route so users can pay without connecting a wallet, including from surfaces that don't support wallet connections, such as centralized exchanges. Funds sent to the address are routed and converted to your settlement asset automatically.
### Disbursements
Run pay-ins in reverse to send funds out — marketplace seller payouts, creator and worker disbursements, and cross-border payouts — to any supported chain and asset from your settlement balance, through the same integration.
## Transaction Screening
The platform screens transaction addresses using blockchain-analytics providers and an internal blocklist. Screening covers sender, recipient, and fee recipient addresses, plus the depositing wallet on deposit-address flows. A match can block a quote or fill; see [Transaction Screening](/security/compliance) for details and review paths.
## Features
**[Exact-output settlement](/references/api/api_core_concepts/trade-types)** — Specify the exact amount you need to receive; Relay sizes the input. No slippage, no shortfalls.
**[Price stabilization](/features/price-stabilization)** — Lock a fixed rate (e.g. 1:1) on stablecoin pairs, or sponsor fees so the user receives the full market-rate output. Removes exchange rate surprises from settlement.
**[Gasless execution](/features/gasless-execution)** — Your users transact without spending gas directly. This can be used for Relay deposits or more generally for any onchain gasless execution.
**[Fee sponsorship](/features/fee-sponsorship)** — Pay or subsidize gas or spreads on your users' behalf, and let them pay in the asset they already hold.
**[App fees](/features/app-fees)** — Attach your own fee to any flow and collect it at settlement, automatically settled in USDC on Base.
**[MEV protection](/security/mev-protection)** — Swaps are routed for best execution.
**[Webhooks and tracking](/references/api/api_guides/webhooks)** — Lifecycle events are pushed to your backend (HMAC-signed), and every payment carries a `requestId` for reconciliation.
**Reliability** — 99.9%+ fill success with sub-3-second settlement on supported routes.
## Pricing
Relay's cost is transparent in every quote. The `expandedPriceImpact` object breaks each payment into its execution, swap, and Relay fee components, plus any app fee you add — so your finance team can model unit economics exactly. Integrators above a volume threshold qualify for a revenue share on the Relay fee. See [Cost & Fee Structure](/references/api/api_core_concepts/fees).
## Security
Relay's contracts are independently audited, and the protocol runs an ongoing bug bounty. Review the [Contract Audits](/security/contract-audits) and [Bug Bounty](/security/bounties) before you integrate.
## Get Started
Add cross-chain pay-ins and disbursements to your platform through a single integration. The [Quote API](/references/api/get-quote-v2) is the core endpoint behind both flows.
* **[Quickstart Guide](/references/api/quickstart)** — make your first cross-chain transaction.
* **[Quote API reference](/references/api/get-quote-v2)** — the core endpoint behind pay-ins and disbursements.
* **[Deposit Addresses](/features/deposit-addresses)** — wallet-less acceptance.
* **[Contact us](https://forms.gle/XNeELYavjwoJwPEf7)** — discuss your corridors, volumes, and settlement requirements.
# Wallets & Wallet Providers
Source: https://docs.relay.link/solutions/wallets-and-wallet-providers
Let users fund, swap, and transact across chains from your wallet
Let users fund their wallet, swap assets, and transact across supported chains without leaving your product. Add these flows to self-custodial wallets and wallet infrastructure with one Relay integration.
## How To Use Relay
**[Onboarding](/use-cases/bridging)** - Using Relay, wallets and wallet providers can allow users to instantly onboard crypto from any currency on any chain. This means you can source users from all major networks, and get them into your wallet in two seconds.
**[In Wallet Swaps & Bridging](/use-cases/cross-chain-swaps)** - Let users swap assets on the same chain or bridge to another supported chain without leaving your wallet. Add both through the [Quote API](/references/api/get-quote-v2).
**[Chain Abstraction](/use-cases/calling)** - Let users take an action on one supported chain and pay with assets they hold on another. Combine Relay with [smart accounts](/references/api/api_guides/smart-accounts), including ERC-4337 and EIP-7702, to preserve user identity, batch actions, and manage gas.
## Relay Benefits
**Chain Support** - Relay supports [85+ chains](/references/api/api_resources/supported-chains), offering coverage across all major EVM networks, alt L1s, SVMs and many appchains. We are designed to add chains on Day 1, and work closely with leading networks to make sure we are. If there is a network you are hoping we'll support, please reach out!
**Industry Leading Quote & Fill Times** - For bridging, swaps, and cross-chain executions, we are industry leading in quote and fill times. Our product is optimized to reduce latency across the user experience, meaning fast quotes and fast fills. Our p50 fill time across chain is less than 3 seconds across all networks.
**SLAs & Customer Support** - Relay is your partner in delivering a world-class multichain experience. We are happy to offer SLAs on quote and fill speed, network uptime, and more.
**App Fees** - Our comprehensive approach to [App Fees](/features/app-fees) lets you easily earn when using Relay. Additionally, we have designed our fee system for you to automatically collect fees in stables (USDC).
## Integrating Relay
Integrating Relay is as simple as calling our [Quote API](/references/api/get-quote-v2). Whether you are integrating Relay for Bridging, Swaps, or Call Execution, this unified interface is the primary way to access the service. Please feel free to reach out with any questions, or start with our [Quickstart Guide](/references/api/quickstart).
# Bridging & Onboarding
Source: https://docs.relay.link/use-cases/bridging
Instant Bridging and Onboarding via Relay
Let users fund your app with assets they already hold on another chain. With [Relay](/what-is-relay), you can offer deposits, withdrawals, and bridging across supported chains through one integration.
**Instant Cross-chain Onboarding** - Relay's median bridge time is 2.7 seconds across chains.
**Multi-VM Support** - Relay Supports major EVM chains, as well as Bitcoin, Solana, Tron, Eclipse, and more.
**Deposit Addresses** - [Deposit Addresses](/features/deposit-addresses) allow users to onboard onto any chain via a transfer on any network. This makes it seamless for users to onboard from centralized exchanges or without connecting a wallet.
**App Fees** - Our comprehensive approach to [App Fees](/features/app-fees) lets you easily earn when using Relay. Additionally, we have designed our fee system for you to automatically collect fees in stables (USDC).
## How it Works
Your application requests a quote from the platform, and the user executes the returned deposit steps. A solver fills the order on the destination chain using its own capital. The platform tracks completion; [Relay Protocol](/references/protocol/overview) describes the separate settlement flow for orders that use its Depository contracts.
Both Bridging and Onboarding can be integrated using Relay's Quote API:
**Bridging** - Bridging across all supported networks and tokens can be integrated into wallets, apps, or any place a user may need to get funds onto a new network.
**Onboarding** - Onboarding users into a new wallet (or a new chain) can be done similarly to any bridging action, where the user specifies their destination account.
To learn how to integrate Relay into your application, check out our [Quickstart Guide](/references/api/quickstart).
# Call Execution
Source: https://docs.relay.link/use-cases/calling
Execute transactions across any chain, pay with any token
Let users take an action in your app and pay with assets on another supported chain. [Relay](/what-is-relay) combines bridging and the destination call into one flow, so users don't need to bridge separately before checking out or interacting with a contract.
**Gas requirement** — With standard EOA wallets, the user needs native gas on the origin chain to broadcast the deposit. Solvers pay destination-chain gas, with costs included in the quote. For users without native gas, see [Gasless Swaps](/features/gasless-swaps) or [Smart Accounts](/references/api/api_guides/smart-accounts).
## How it Works
Your application includes destination calldata in its quote request. The user executes the returned deposit steps, and a solver uses its own capital to execute the destination call. The platform tracks completion; [Relay Protocol](/references/protocol/overview) describes the separate settlement flow for orders that use its Depository contracts.
Learn how to integrate cross-chain call execution with our [Call Execution Integration Guide](/references/api/api_guides/calling-integration-guide).
# Swaps
Source: https://docs.relay.link/use-cases/cross-chain-swaps
Instant Same-chain and Cross-chain Swaps at the Best Possible Price
Let users swap assets without leaving your app, whether they're on the same chain or different chains. One [Relay](/what-is-relay) integration gives you quotes, execution, and tracking across supported assets and networks.
**Swap Meta-Aggregation** - We aggregate the best swap providers across crypto to deliver the best routes for onchain swaps
**Instant Cross-chain Swaps** - Relay's median bridge time is 2.7 seconds across chains.
**Multi-VM Support** - Relay Supports major EVM chains, as well as Bitcoin, Solana, Tron, Eclipse, and more.
**Gasless Support** - Relay supports gasless swaps via native support of 4337 account abstraction, 7702 support, and gasless permit execution (3009 and 2612)
**App Fees** - Our comprehensive approach to [App Fees](/features/app-fees) lets you easily earn when using Relay. Additionally, we have designed our fee system for you to automatically collect fees in stables (USDC).
## How it Works
Your application requests a quote from the platform, and the user executes the returned steps. Same-chain swaps execute on the source chain; cross-chain orders use a solver's capital to fill on the destination chain. The platform tracks completion; [Relay Protocol](/references/protocol/overview) describes the separate settlement flow for orders that use its Depository contracts.
To learn how to integrate Relay into your application, check out our [Quickstart Guide](/references/api/quickstart).
# What is Relay?
Source: https://docs.relay.link/what-is-relay
Swap, pay, and transact across every chain, instantly.
Relay is a developer platform that gives you instant global access to the onchain economy. Swap, pay, and transact across every blockchain from a single onchain balance using a simple set of enterprise-grade APIs.
## Major Use Cases
Let customers pay from supported chains and settle in the asset your application uses.
Bridge assets between supported chains through one transaction flow.
Exchange assets on the same chain or across different chains.
Let users take an action on one chain and pay with assets from another.
## Start Integrating
Get a quote and execute your first transaction.
Explore our complete API reference.
Create an account in the Relay Dashboard.