-
Notifications
You must be signed in to change notification settings - Fork 2
docs(content): add use-case pages, Dashboard + Secure Payment tools pages #90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,124 @@ | ||
| --- | ||
| title: "Dashboard" | ||
| description: "dashboard.request.network — sign in with your wallet to manage payment destinations, Client IDs, incoming payment requests, and outgoing payouts." | ||
| --- | ||
|
|
||
| The **Request Network Dashboard** ([dashboard.request.network](https://dashboard.request.network)) is the no-code home for everything you do with Request Network as a receiver: setting up where you want to be paid, generating API credentials, sending and receiving payment links. Sign in with an EVM or Tron wallet — no email, no password. | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/home-with-destination.webp" alt="Dashboard home with active payment destination" /> | ||
| </Frame> | ||
|
|
||
| ## Sign-in | ||
|
|
||
| EVM and Tron are co-equal sign-in methods. The login screen offers parallel tabs: | ||
|
|
||
| <Tabs> | ||
| <Tab title="EVM"> | ||
| Connect MetaMask, Coinbase Wallet, WalletConnect, or any injected EIP-1193 provider. The Dashboard issues a SIWE challenge; you sign with `personal_sign`. | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/login-evm.webp" alt="Dashboard sign-in (EVM)" /> | ||
| </Frame> | ||
| </Tab> | ||
| <Tab title="Tron"> | ||
| Connect TronLink, Guarda, Trust, or WalletConnect-Tron. The auth-api detects your `T...` address and issues a Tron-formatted challenge; you sign with `tronWeb.trx.signMessageV2`. | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/login-tron.webp" alt="Dashboard sign-in (Tron)" /> | ||
| </Frame> | ||
| </Tab> | ||
| </Tabs> | ||
|
|
||
| The session is a 15-minute idle-timeout cookie shared across `dashboard.request.network`, `auth.request.network`, and `api.request.network`. | ||
|
|
||
| ## Payment destinations | ||
|
|
||
| A **payment destination** registers where you want to receive payments. It's a single chain × token × wallet combo, encoded as an [ERC-7828 humanReadableInteropAddress](/api-features/payee-destinations). | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/create-destination.webp" alt="Create payment destination dialog" /> | ||
| </Frame> | ||
|
|
||
| Supported chain × token combinations (8 networks): | ||
|
|
||
| | Chain | Tokens | | ||
| | --- | --- | | ||
| | Ethereum, Arbitrum One, Optimism, Base, Polygon, BSC | USDC, USDT | | ||
|
Check warning on line 47 in tools/dashboard.mdx
|
||
| | **Tron** | USDC, USDT (TRC-20) | | ||
| | Sepolia (testnet) | FAU, USDC, USDT | | ||
|
Check warning on line 49 in tools/dashboard.mdx
|
||
|
|
||
| You can switch your active destination at any time via **Manage Destination → Update Receiving Route**. | ||
|
|
||
| ## Client ID management | ||
|
|
||
| Client IDs are the credential the Dashboard (and your own apps) use to call the API on your behalf. Each Client ID can be: | ||
|
|
||
| - **Domain-restricted** (frontend use) — set `allowedDomains` to one or more HTTPS origins | ||
| - **Backend-only** — leave `allowedDomains` empty for server-side use | ||
| - **Fee-aware** — set a default `feePercentage` and `feeAddress` | ||
| - **Operator-aware** — bind `operatorWalletAddress` for commerce payment flows | ||
| - **Destination-bound** — bind `payeeDestinationId` for orchestrator patterns | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/manage-destination.webp" alt="Manage destination and Client IDs" /> | ||
| </Frame> | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/generate-client-id.webp" alt="Generate Client ID dialog" /> | ||
| </Frame> | ||
|
|
||
| For full field reference, see [Client ID Management](/api-features/client-id-management). | ||
|
|
||
| ## Get Paid | ||
|
|
||
| The **Get Paid** tab is your incoming-payments view. Create a request — amount, currency, optional reference and payer identifier — and the Dashboard generates a `pay.request.network` link to share. | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/get-paid-list.webp" alt="Get Paid list" /> | ||
| </Frame> | ||
|
|
||
| Each request shows status (Pending / Paid), the on-chain transaction hash once paid, and a copyable payment URL. Works identically for EVM and Tron destinations (single recipient on Tron). | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/get-paid-detail.webp" alt="Request detail with payment link" /> | ||
| </Frame> | ||
|
|
||
| ## Pay (outgoing) | ||
|
|
||
| The **Pay** tab is your outgoing-payments view. Create a payment to one or more recipients on the same chain, sign the resulting transaction, and the Dashboard tracks settlement. | ||
|
|
||
| <Frame> | ||
| <img src="/images/dashboard/pay-list.webp" alt="Pay list (outgoing payouts)" /> | ||
| </Frame> | ||
|
|
||
| | Outgoing flow | EVM | Tron | | ||
| | --- | --- | --- | | ||
| | Single payout | ✓ | ✓ | | ||
| | Batch payout (one signature, many recipients) | ✓ | ✗ | | ||
|
|
||
| For Tron payouts, send single payments per recipient. EVM batch payouts are documented at [Batch payouts](/use-cases/batch-payouts). | ||
|
|
||
| ## What the Dashboard does *not* do | ||
|
|
||
| - It is not an admin / merchant control panel for downstream platforms — it's a user dashboard for your own wallet. | ||
| - It does not manage webhooks today — webhooks are managed via the [auth-api](https://auth.request.network/open-api). | ||
| - It does not host the payer-side checkout — that's [Secure Payment](/tools/secure-payments) at `pay.request.network`. | ||
|
|
||
| ## Open the Dashboard | ||
|
|
||
| <Card title="Open dashboard.request.network" href="https://dashboard.request.network" icon="arrow-up-right-from-square"> | ||
| Sign in with your EVM or Tron wallet to start. | ||
| </Card> | ||
|
|
||
| ## Related | ||
|
|
||
| <CardGroup cols={2}> | ||
| <Card title="Quickstart" href="/use-cases/quickstart" icon="rocket"> | ||
| End-to-end walkthrough using the Dashboard. | ||
| </Card> | ||
|
|
||
| <Card title="Secure Payment" href="/tools/secure-payments" icon="lock"> | ||
| The payer-facing companion at pay.request.network. | ||
| </Card> | ||
| </CardGroup> | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,146 @@ | ||
| --- | ||
| title: "Secure Payment" | ||
| description: "pay.request.network — the hosted payment link app payers open to settle a Request Network payment. Defense-in-depth, multi-chain, EVM + Tron." | ||
| --- | ||
|
|
||
| **Secure Payment** ([pay.request.network](https://pay.request.network)) is the hosted page your payers land on when they click a payment link. It's a defense-in-depth checkout: trusted contract addresses are hardcoded, every transaction is decoded and verified client-side, and the payer can pay from any of 8 supported chains in any supported wallet. | ||
|
|
||
| <Frame> | ||
| <img src="/images/secure-payments/payment-options.webp" alt="Secure Payment options view" /> | ||
| </Frame> | ||
|
|
||
| ## Why it exists | ||
|
|
||
| The Secure Payment page is intentionally separated from the merchant frontend so a compromised merchant site or API endpoint can't trick a payer into signing the wrong transaction. The page: | ||
|
|
||
| - Loads payment metadata from the Request API using a one-time token | ||
| - Validates every contract address against a hardcoded trusted set | ||
| - Decodes the transaction calldata and shows the payer what they're about to sign | ||
| - Resolves payee addresses to ENS where available | ||
| - Refuses to broadcast if anything looks off | ||
|
|
||
| ## What the payer sees | ||
|
|
||
| <Steps> | ||
| <Step title="Open the link"> | ||
| The payer clicks a `pay.request.network/?token=...` URL you generated via [`POST /v2/secure-payments`](/api-reference/secure-payments). The page loads payment details (amount, recipient, reference). | ||
| </Step> | ||
|
|
||
| <Step title="Connect a wallet"> | ||
| The connect modal lists EVM and Tron wallets side by side. | ||
|
|
||
| <Frame> | ||
| <img src="/images/secure-payments/connect-wallet.webp" alt="Connect wallet modal — EVM" /> | ||
| </Frame> | ||
|
|
||
| <Frame> | ||
| <img src="/images/secure-payments/connect-wallet-tron.webp" alt="Connect wallet modal — Tron" /> | ||
| </Frame> | ||
| </Step> | ||
|
|
||
| <Step title="Choose a chain and token"> | ||
| The page reads the connected wallet's balances across supported chains and surfaces every chain × token combo with a sufficient balance. Same-chain payments show no swap; cross-chain shows a Li.Fi banner. | ||
|
|
||
| <Frame> | ||
| <img src="/images/secure-payments/payment-options-crosschain.webp" alt="Cross-chain payment options" /> | ||
| </Frame> | ||
| </Step> | ||
|
|
||
| <Step title="Approve and sign"> | ||
| For ERC-20s, an approval transaction precedes the payment. The page shows a stepper (connect → confirm → setup → pay) and an optional **Advanced** view that decodes the calldata for inspection. | ||
|
|
||
| <Frame> | ||
| <img src="/images/secure-payments/advanced-view.webp" alt="Advanced view with decoded calldata" /> | ||
| </Frame> | ||
| </Step> | ||
|
|
||
| <Step title="Confirm"> | ||
| The success screen shows the source and destination transaction hashes, with explorer links per chain. For cross-chain payments, a Li.Fi badge is displayed. | ||
|
|
||
| <Frame> | ||
| <img src="/images/secure-payments/payment-success.webp" alt="Payment success screen" /> | ||
| </Frame> | ||
| </Step> | ||
| </Steps> | ||
|
|
||
| ## Wallet support | ||
|
|
||
| | EVM wallets | Tron wallets | | ||
| | --- | --- | | ||
| | MetaMask | TronLink | | ||
| | Coinbase Wallet | Guarda | | ||
|
Check warning on line 71 in tools/secure-payments.mdx
|
||
| | WalletConnect (any wallet that supports it) | Trust Wallet | | ||
| | Any injected EIP-1193 provider (Rabby, Phantom-EVM, Bitget, OKX, Ledger, …) | WalletConnect-Tron | | ||
|
Check warning on line 73 in tools/secure-payments.mdx
|
||
|
|
||
| EVM and Tron are presented as co-equal columns — neither is hidden behind a more-options click. | ||
|
|
||
| <Note> | ||
| TronLink also injects an EVM provider that converts Tron addresses to EVM-style. Secure Payment **filters this out** of the EVM wallet list because it would mis-route Tron payments — Tron is handled exclusively via the TronWeb integration. | ||
| </Note> | ||
|
|
||
| ## Cross-chain via Li.Fi | ||
|
|
||
| When the payer's selected source chain differs from the destination chain, Secure Payment routes through Li.Fi. The UI displays: | ||
|
|
||
| - "You'll be paying across chain via [Li.Fi](https://li.fi/)" on the options view | ||
| - The bridge fee in the cost breakdown | ||
| - A Li.Fi badge on the success screen | ||
|
|
||
| Supported source chains for Li.Fi swap-to-pay: Ethereum, Arbitrum One, Optimism, Base, Polygon, BSC, Tron. | ||
|
Check warning on line 89 in tools/secure-payments.mdx
|
||
|
|
||
| ## Tron support | ||
|
|
||
| Tron is fully supported as both a **source** and a **destination** for single-recipient payments: | ||
|
|
||
| | Direction | Same-chain | Cross-chain (Li.Fi) | | ||
| | --- | --- | --- | | ||
| | Tron → Tron (USDT/USDC) | ✓ | — | | ||
| | EVM → Tron | — | ✓ | | ||
| | Tron → EVM | — | ✓ | | ||
|
|
||
| <Warning> | ||
| **Multi-recipient Tron Secure Payments are not supported.** A Secure Payment link with multiple `requests[]` entries pointing at Tron destinations is rejected at creation time with a 400. EVM batches up to 200 payees per link work as expected. | ||
| </Warning> | ||
|
|
||
| ## Error states | ||
|
|
||
| The Secure Payment app handles a few well-defined error states with clear copy: | ||
|
|
||
| | State | Message | | ||
| | --- | --- | | ||
| | Link expired (>7 days, or already paid expired) | "You are coming too late. Please contact the recipient to send you a new payment link." | | ||
| | Token not found / invalid URL | "This URL is invalid. Please check the link and try again, or contact the recipient of this payment." | | ||
| | Already paid | "If that is not the case, please check the link and try again, or contact the recipient of this payment." | | ||
| | Calldata validation fails | "There is an issue with this payment call data. Please contact the recipient to send you a new payment link." | | ||
|
|
||
| ## What Secure Payment does *not* do | ||
|
|
||
| - It does **not** persist transaction history beyond the immediate confirmation screen — explorers and webhook events are the source of truth. | ||
| - It does **not** provide a payee-side dashboard — that's [Dashboard](/tools/dashboard) at `dashboard.request.network`. | ||
| - It does **not** accept payments without a backing Request — the link must originate from `POST /v2/secure-payments`. | ||
|
|
||
| ## Open Secure Payment | ||
|
|
||
| <Card title="Open pay.request.network" href="https://pay.request.network" icon="arrow-up-right-from-square"> | ||
| Try a payment link in the live app. | ||
| </Card> | ||
|
|
||
| ## Related | ||
|
|
||
| <CardGroup cols={2}> | ||
| <Card title="Multi-chain checkout" href="/use-cases/multi-chain-checkout" icon="shuffle"> | ||
| The payer experience and how it routes across chains. | ||
| </Card> | ||
|
|
||
| <Card title="Programmatic payment links" href="/use-cases/programmatic-payment-links" icon="code"> | ||
| The API call that mints these links. | ||
| </Card> | ||
|
|
||
| <Card title="Secure Payments reference" href="/api-reference/secure-payments" icon="lock"> | ||
| Full request/response schemas. | ||
| </Card> | ||
|
|
||
| <Card title="Dashboard" href="/tools/dashboard" icon="gauge"> | ||
| The payee-side companion. | ||
| </Card> | ||
| </CardGroup> | ||
Uh oh!
There was an error while loading. Please reload this page.