diff --git a/package.json b/package.json
index d3988ba..14c1996 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "tailwind-plus-icpay",
- "version": "1.2.23",
+ "version": "1.2.24",
"private": true,
"packageManager": "pnpm@9.12.3",
"scripts": {
diff --git a/src/app/relay-payments/page.mdx b/src/app/relay-payments/page.mdx
new file mode 100644
index 0000000..9b88030
--- /dev/null
+++ b/src/app/relay-payments/page.mdx
@@ -0,0 +1,106 @@
+export const metadata = {
+ title: 'Relay Payments',
+ description: 'Accept payments and relay funds to per-chain recipient addresses, optionally charging a relay fee.',
+}
+
+export const sections = [
+ { title: 'What are Relay Payments?', id: 'what-are-relay-payments' },
+ { title: 'Configuring Recipient Addresses', id: 'configuring-recipient-addresses' },
+ { title: 'Relay Fee (bps)', id: 'relay-fee' },
+ { title: 'Examples', id: 'examples' },
+]
+
+# Relay Payments
+
+Relay payments allow your account to accept a user’s payment and forward it directly to a recipient that you specify per chain (Ethereum/EVM, Internet Computer, Solana). {{ className: 'lead' }}
+
+With relay payments:
+- You configure `recipientAddresses` (per-chain) in the Widget/SDK.
+- ICPay’s contracts/process route the payment to that recipient.
+- You can optionally charge a per-transaction relay fee in your Account settings. If the relay fee is 0 bps (the default), no extra fee is taken by your account — the feature behaves like a pure pass-through to your specified recipient.
+
+## What are Relay Payments?
+
+- **Goal**: Let site owners accept payments while sending funds to an external address they control per chain (e.g., EVM contract, IC principal/canister, Solana address).
+- **How it works**: The SDK always sends a `recipientAddress` to the backend/contract layer. When you do not set any address, a zero-address is used and no relay occurs. When you set a valid recipient per chain, the payment is relayed to that address.
+- **Wallet filtering**: If you provide `recipientAddresses`, the Widget will only show wallets/chains that match the networks you configured.
+
+## Configuring Recipient Addresses
+
+You can define per-chain recipients with the `recipientAddresses` object:
+
+- `evm` — Ethereum/EVM address (`0x...40 hex chars`)
+- `ic` — Internet Computer principal/canister id
+- `sol` — Solana base58 address
+
+If a chain’s address is omitted, that chain is not eligible for relay for this payment.
+
+## Relay Fee (bps)
+
+The relay fee is configured per account in the ICPay dashboard (Settings → ICPay Fees → “Relay Fee (bps)”).
+
+- Unit: basis points (bps). For example, `150 bps = 1.50%`.
+- Default: `0 bps` (no fee). In this case, your account does not charge anything extra for relays — payments act like a straight pass-through to the recipient.
+- Permissions: Editable by account Owner and Admin roles. Viewers cannot modify fees.
+- Chain sync: Changes to the relay fee are propagated to supported chains automatically by the platform.
+
+Note: In the web dashboard the relay fee is entered as a percentage for ease of use (e.g., “1.50”), and ICPay converts it to basis points internally (e.g., `150`). This mirrors the same percentage input behavior used for Split Rules.
+
+## Examples
+
+### Widget (HTML)
+
+```html
+
+
+
+```
+
+- Only EVM and Internet Computer wallets will be shown in this example as sol address was not set.
+- Funds are relayed to the provided addresses. If you later set your account’s relay fee to a non-zero value, that fee will apply to the future payments.
+
+### SDK (JavaScript/TypeScript)
+
+```ts
+import Icpay from '@ic-pay/icpay-sdk';
+
+const client = new Icpay({
+ publishableKey: 'pk_live_xxx',
+});
+
+// USD-denominated payment (ERC20/native depends on user wallet selection)
+await client.createPaymentUsd({
+ usdAmount: 42,
+ tokenShortcode: 'base_usdc', // user can also choose via widget modal
+ metadata: { context: 'checkout:order-123' },
+ // Per-chain destination(s) for relay
+ recipientAddresses: {
+ evm: '0xD8B586138213726910101b17a7DB14F58A16EDc8',
+ },
+});
+```
+
+### Choosing to charge a Relay Fee
+
+1. Go to ICPay Web → Settings → ICPay Fees.
+2. Set “Relay Fee (bps)” to your desired value, e.g., `150` for 1.50%.
+3. Save. Owner/Admin can adjust; Viewer cannot.
+
+If you keep it at `0`, no additional fee is charged on relay payments made through your account. This is the default.
+
+---
+
+For a full list of SDK fields and widget configuration options, see:
+- [SDK Overview](/sdk-overview)
+- [Widget Overview](/widget-overview)
+
diff --git a/src/components/Navigation.tsx b/src/components/Navigation.tsx
index 75feead..a2e5e2f 100644
--- a/src/components/Navigation.tsx
+++ b/src/components/Navigation.tsx
@@ -271,6 +271,12 @@ export const navigation: Array = [
{ title: 'X402 payments', href: '/x402' },
],
},
+ {
+ title: 'Relay payments',
+ links: [
+ { title: 'Relay payments', href: '/relay-payments' },
+ ],
+ },
{
title: 'Tokens',
links: [