From 6337d7cef0c1a9708b64c704fafe1b7cc16b42ae Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Sun, 12 Oct 2025 20:53:41 -0400
Subject: [PATCH 01/21] feat: add interactive payment matching demo to landing
page
Adds interactive demo showing Request Network vs traditional payments,
includes comparison table and sticky dialogs that account for Mintlify nav (135px offset).
---
index.mdx | 188 ++++----
logo/icons/dai.png | Bin 0 -> 2671 bytes
logo/icons/usdc.png | Bin 0 -> 892 bytes
logo/icons/usdt.png | Bin 0 -> 674 bytes
snippets/comparison-table.jsx | 242 +++++++++++
snippets/integrated-demo.jsx | 794 ++++++++++++++++++++++++++++++++++
6 files changed, 1140 insertions(+), 84 deletions(-)
create mode 100644 logo/icons/dai.png
create mode 100644 logo/icons/usdc.png
create mode 100644 logo/icons/usdt.png
create mode 100644 snippets/comparison-table.jsx
create mode 100644 snippets/integrated-demo.jsx
diff --git a/index.mdx b/index.mdx
index 986a08d..520143b 100644
--- a/index.mdx
+++ b/index.mdx
@@ -1,84 +1,104 @@
----
-title: "Request Network Docs"
-description: "A protocol for requests, payments, and **100% automated reconciliation**. Requests add business context to payments, **eliminating manual accounting** with cryptographic certainty."
-sidebarTitle: "Welcome"
-mode: "center"
----
-
-## Interactive Demo
-
-
- Experience how creating an invoice and getting paid is better than asking someone to send you money and hoping they remember to tell you they sent it.
-
- *Interactive demo will be embedded here*
-
-
-## Get Started
-
-Choose your path based on what you want to build:
-
-
-
- Explore specific business scenarios: invoicing, payouts, payroll, checkout, and subscriptions
-
-
-
- The easiest way to integrate. Payment types, webhooks, and developer tools.
-
-
-
- Supported chains, currencies, smart contracts, and community resources
-
-
-
-
-
- Legacy SDK and protocol documentation for advanced users
-
-
-
- Stay updated with the latest features and improvements
-
-
-
-## Popular
-
-
-
- 1. [Get API Keys](/api-setup/getting-started) (2 minutes)
- 2. [Create your first request](/use-cases/invoicing) (1 minute)
- 3. [Test payment flow](/api-features/payment-types) (2 minutes)
-
-
-
- 1. [Try EasyInvoice Demo](/use-cases/invoicing) - See full invoicing workflow
- 2. [Explore Use Cases](/use-cases/payouts) - Discover business applications
- 3. [Fork & Customize](/use-cases/invoicing) - Make it your own
-
-
-
- 1. [Check Supported Chains](/resources/supported-chains-and-currencies)
- 2. [Review Payment Types](/api-features/payment-types)
- 3. [Explore Use Cases](/use-cases/invoicing) that match your needs
-
-
\ No newline at end of file
+---
+title: "Request Network Docs"
+description: "A protocol for requests, payments, and **100% automated reconciliation**. Requests add business context to payments, **eliminating manual accounting** with cryptographic certainty."
+sidebarTitle: "Welcome"
+mode: "custom"
+---
+
+import { IntegratedDemo } from '/snippets/integrated-demo.jsx'
+import { ComparisonTable } from '/snippets/comparison-table.jsx'
+
+
+
+
Request Network Docs
+
+ A protocol for requests, payments, and 100% automated reconciliation. Requests add business context to payments, eliminating manual accounting with cryptographic certainty.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get Started
+
+
+ Choose your path based on what you want to build:
+
+
+
+
+
+ Explore specific business scenarios: invoicing, payouts, payroll, checkout, and subscriptions
+
+
+
+ The easiest way to integrate. Payment types, webhooks, and developer tools.
+
+
+
+ Supported chains, currencies, smart contracts, and community resources
+
+
+
+
+
+
+
+ Legacy SDK and protocol documentation for advanced users
+
+
+
+ Stay updated with the latest features and improvements
+
+
+
+
+
Popular
+
+
+
+ 1. [Get API Keys](/api-setup/getting-started) (2 minutes)
+ 2. [Create your first request](/use-cases/invoicing) (1 minute)
+ 3. [Test payment flow](/api-features/payment-types) (2 minutes)
+
+
+
+ 1. [Try EasyInvoice Demo](/use-cases/invoicing) - See full invoicing workflow
+ 2. [Explore Use Cases](/use-cases/payouts) - Discover business applications
+ 3. [Fork & Customize](/use-cases/invoicing) - Make it your own
+
+
+
+ 1. [Check Supported Chains](/resources/supported-chains-and-currencies)
+ 2. [Review Payment Types](/api-features/payment-types)
+ 3. [Explore Use Cases](/use-cases/invoicing) that match your needs
+
+
+
- Other methods either sacrifice automated reconciliation (requiring manual review) or burden users with
- poor UX and complex implementations.
+ Other methods sacrifice automated reconciliation (requiring manual review), burden users with poor UX, or require complex implementations.
Two payments have the same amount and currency. Which payment belongs to which customer?
Manual review required.
@@ -649,7 +654,7 @@ export const IntegratedDemo = () => {
-
Request Network Solution:
+
Request Network Solution:
Each payment is automatically matched to its correct request using onchain identifiers. No
ambiguity, no manual work.
@@ -744,13 +749,13 @@ export const IntegratedDemo = () => {
);
From 9981cac98f1dadab1ca7a07658c18cf7a8fca42f Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Wed, 22 Oct 2025 04:16:39 -0400
Subject: [PATCH 09/21] fix(demo): improve responsive layout for Request
Network payments
- Hide Request ID on mobile/tablet to prevent collisions and improve readability
- Change TX ID alignment from right to left for consistency with label
- Use flexible column widths (flex-1) instead of fixed percentages
- Add responsive gap sizing (gap-1 on mobile, gap-2 on tablet, gap-4 on desktop)
- TX ID remains visible on all screen sizes when payment is received
- Request ID visible only on desktop (md breakpoint and above)
---
snippets/integrated-demo.jsx | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/snippets/integrated-demo.jsx b/snippets/integrated-demo.jsx
index 0690091..46a671a 100644
--- a/snippets/integrated-demo.jsx
+++ b/snippets/integrated-demo.jsx
@@ -1052,8 +1052,8 @@ export const IntegratedDemo = () => {
)}
From 3292eb3203192d78d447ab014c1e85f45f86b435 Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Wed, 22 Oct 2025 05:15:33 -0400
Subject: [PATCH 12/21] fix(demo): prevent layout shift when TX ID appears
- Add ExternalLinkIcon to hidden TX ID placeholder
- Update label from "Tx" to "Tx ID" to match visible state
- Add flex layout to placeholder to match visible TX ID link
- Ensures Request ID column stays perfectly aligned when payment occurs
---
snippets/integrated-demo.jsx | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/snippets/integrated-demo.jsx b/snippets/integrated-demo.jsx
index 56a34fc..f2eb4c1 100644
--- a/snippets/integrated-demo.jsx
+++ b/snippets/integrated-demo.jsx
@@ -1127,10 +1127,11 @@ export const IntegratedDemo = () => {
<>
- Tx
+ Tx ID
-
+
0x000000...000000
+
>
)}
From ebaf8a2b937d525cc721017b88b64339d489c917 Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Wed, 22 Oct 2025 21:07:44 -0400
Subject: [PATCH 13/21] Improve dialog visual consistency and add warning
badges for payment collisions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Updated both 'Identify Every Payment' and 'Payment Collision' dialogs to match the polished styling of advantage/tradeoff boxes from comparison table
- Changed dialog structure to use semantic HTML (
/
headings instead of
with inline bold)
- Added hover effects (hover:shadow-lg, hover:scale-[1.02]) to dialog boxes for visual consistency
- Improved spacing with p-4 md:p-6 padding and proper title/body separation (mb-2)
- Updated icon sizes to h-5 w-5 md:h-6 md:w-6 and text sizing to text-xs md:text-sm (body) and text-sm md:text-base (titles)
- Centered dialog titles while keeping box content left-aligned
- Added getLeftSideMatchCount() helper function to identify potential payment collisions
- Display '⚠️ X matches' warning badges on left-side payments when 2+ payments have same amount and currency
- Warning badges help users visually identify potential reconciliation problems before they occur
- Reduced transition duration from 500ms to 200ms for snappier UI feedback
---
snippets/integrated-demo.jsx | 77 +++++++++++++++++++++---------------
1 file changed, 46 insertions(+), 31 deletions(-)
diff --git a/snippets/integrated-demo.jsx b/snippets/integrated-demo.jsx
index f2eb4c1..98004ce 100644
--- a/snippets/integrated-demo.jsx
+++ b/snippets/integrated-demo.jsx
@@ -548,6 +548,15 @@ export const IntegratedDemo = () => {
return `${percentage}%`;
};
+ // Helper function to count left-side payment matches (excluding placeholders)
+ const getLeftSideMatchCount = (amount, currency) => {
+ return leftPayments.filter(p =>
+ !p.isPlaceholder &&
+ p.amount === amount &&
+ p.currency === currency
+ ).length;
+ };
+
const handleSimulatePayment = async () => {
setIsProcessing(true);
@@ -708,28 +717,28 @@ export const IntegratedDemo = () => {
top: '150px'
}}
>
-
-
+
+
Identify Every Payment
-
-
+
+
-
+
-
Anonymous Transactions:
-
+
Anonymous Transactions
+
Traditional blockchain payments lack business context or payment identifiers.
-
+
-
+
-
Unique Identifiers:
-
+
Unique Identifiers
+
Request Network adds unique identifiers to every payment, enabling instant, automatic, and 100% automated reconciliation.
Date: Thu, 23 Oct 2025 14:37:56 -0400
Subject: [PATCH 14/21] Add narrative bridges to landing page demo
- Add bridge sentence to intro: "See how unique Request IDs prevent payment collisions"
- Add transition heading between demo and comparison table
- Improves visual cohesiveness and narrative flow per evaluation feedback
---
index.mdx | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/index.mdx b/index.mdx
index a9773a0..45fdab6 100644
--- a/index.mdx
+++ b/index.mdx
@@ -12,7 +12,7 @@ import { ComparisonTable } from '/snippets/comparison-table.jsx'
Request Network Docs
- A protocol for requests, payments, and 100% automated reconciliation. Requests add business context to payments, eliminating manual accounting with cryptographic certainty.
+ A protocol for requests, payments, and 100% automated reconciliation. Requests add business context to payments, eliminating manual accounting with cryptographic certainty. See how unique Request IDs prevent payment collisions:
@@ -20,6 +20,10 @@ import { ComparisonTable } from '/snippets/comparison-table.jsx'
+
+ How does Request Network compare to other approaches?
+
+
From 582ca6fdfb9fbb11a9c24fb873dc9e15b997f0e7 Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Thu, 23 Oct 2025 15:37:35 -0400
Subject: [PATCH 15/21] Fix heading colors for light/dark mode compatibility
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Changed headings from CSS variables to Tailwind classes (text-zinc-950 dark:text-white)
- Updated strong tags in description to also use Tailwind color classes
- Ensures proper contrast in both light mode (dark text) and dark mode (white text)
- Theme changed to 'aspen' for better frame mode rendering
- Moved landing page from Welcome tab to Use Cases tab under "🚀 Get Started"
---
docs.json | 14 +++---
use-cases/welcome.mdx | 106 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 114 insertions(+), 6 deletions(-)
create mode 100644 use-cases/welcome.mdx
diff --git a/docs.json b/docs.json
index f39b279..ec5a61f 100644
--- a/docs.json
+++ b/docs.json
@@ -1,6 +1,6 @@
{
"$schema": "https://mintlify.com/docs.json",
- "theme": "mint",
+ "theme": "aspen",
"name": "Request Network Docs",
"colors": {
"primary": "#01B089",
@@ -36,15 +36,17 @@
},
"navigation": {
"tabs": [
- {
- "tab": "Welcome",
- "pages": ["index"]
- },
{
"tab": "Use Cases",
"groups": [
{
- "group": "📄 Primary Use Cases",
+ "group": "🚀 Get Started",
+ "pages": [
+ "use-cases/welcome"
+ ]
+ },
+ {
+ "group": "🎯 Use Cases",
"pages": [
"use-cases/invoicing",
"use-cases/payouts",
diff --git a/use-cases/welcome.mdx b/use-cases/welcome.mdx
new file mode 100644
index 0000000..fa71e1c
--- /dev/null
+++ b/use-cases/welcome.mdx
@@ -0,0 +1,106 @@
+---
+title: "Request Network Docs"
+description: "A protocol for requests, payments, and **100% automated reconciliation**. Requests add business context to payments, eliminating manual accounting with cryptographic certainty."
+sidebarTitle: "Welcome"
+mode: "frame"
+---
+
+import { IntegratedDemo } from '/snippets/integrated-demo.jsx'
+import { ComparisonTable } from '/snippets/comparison-table.jsx'
+
+
+
+
Request Network Docs
+
+ A protocol for requests, payments, and 100% automated reconciliation. Requests add business context to payments, eliminating manual accounting with cryptographic certainty. See how unique Request IDs prevent payment collisions:
+
+
+
+
+
+
+
+
+ How does Request Network compare to other approaches?
+
+
+
+
+
+
+
+
+
Get Started
+
+
+ Choose your path based on what you want to build:
+
+
+
+ Explore specific business scenarios: invoicing, payouts, payroll, checkout, and subscriptions
+
+
+
+ The easiest way to integrate. Payment types, webhooks, and developer tools.
+
+
+
+ Supported chains, currencies, smart contracts, and community resources
+
+
+
+
+
+
+
+ Legacy SDK and protocol documentation for advanced users
+
+
+
+ Stay updated with the latest features and improvements
+
+
+
+
+
Popular
+
+
+
+ 1. [Get API Keys](/api-setup/getting-started) (2 minutes)
+ 2. [Create your first request](/use-cases/invoicing) (1 minute)
+ 3. [Test payment flow](/api-features/payment-types) (2 minutes)
+
+
+
+ 1. [Try EasyInvoice Demo](/use-cases/invoicing) - See full invoicing workflow
+ 2. [Explore Use Cases](/use-cases/payouts) - Discover business applications
+ 3. [Fork & Customize](/use-cases/invoicing) - Make it your own
+
+
+
+ 1. [Check Supported Chains](/resources/supported-chains-and-currencies)
+ 2. [Review Payment Types](/api-features/payment-types)
+ 3. [Explore Use Cases](/use-cases/invoicing) that match your needs
+
+
+
From 080b34b3e6a5b4b7a683779cdc8b9a2e10d4b17a Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Thu, 23 Oct 2025 15:59:10 -0400
Subject: [PATCH 16/21] Refactor to docs-style layout with external headings
and improved spacing
- Moved component titles external to welcome.mdx as left-aligned h2 headings
- Removed internal centered titles from IntegratedDemo and ComparisonTable components
- Added "Identify Every Payment" h2 heading before demo component
- Improved heading spacing: marginTop 3rem, marginBottom 2rem (matches standard docs)
- Increased content spacing: demo and table sections now use 4rem bottom margin
- Removed "Popular" accordion section for cleaner page structure
- Standardized h2 font size to 1.75rem across all headings
- Components now function as pure display widgets without embedded titles
---
snippets/comparison-table.jsx | 9 ---------
snippets/integrated-demo.jsx | 7 -------
use-cases/welcome.mdx | 32 +++++++-------------------------
3 files changed, 7 insertions(+), 41 deletions(-)
diff --git a/snippets/comparison-table.jsx b/snippets/comparison-table.jsx
index b08809e..07c9591 100644
--- a/snippets/comparison-table.jsx
+++ b/snippets/comparison-table.jsx
@@ -119,15 +119,6 @@ export const ComparisonTable = () => {
return (
-
-
- Blockchain Payment Detection Methods Compared
-
-
- Other methods require manual reconciliation or sacrifice implementation simplicity or user experience
-
From 6806e8a59714ae5f4b1a06ae3010fcedfcb4dad6 Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Thu, 23 Oct 2025 17:02:01 -0400
Subject: [PATCH 18/21] Remove index.mdx to use use-cases/welcome.mdx as home
page
- Deleted root index.mdx file
- Preview URL will now load use-cases/welcome.mdx by default
- Eliminates duplicate landing page content
---
index.mdx | 108 ------------------------------------------------------
1 file changed, 108 deletions(-)
delete mode 100644 index.mdx
diff --git a/index.mdx b/index.mdx
deleted file mode 100644
index 45fdab6..0000000
--- a/index.mdx
+++ /dev/null
@@ -1,108 +0,0 @@
----
-title: "Request Network Docs"
-description: "A protocol for requests, payments, and **100% automated reconciliation**. Requests add business context to payments, **eliminating manual accounting** with cryptographic certainty."
-sidebarTitle: "Welcome"
-mode: "custom"
----
-
-import { IntegratedDemo } from '/snippets/integrated-demo.jsx'
-import { ComparisonTable } from '/snippets/comparison-table.jsx'
-
-
-
-
Request Network Docs
-
- A protocol for requests, payments, and 100% automated reconciliation. Requests add business context to payments, eliminating manual accounting with cryptographic certainty. See how unique Request IDs prevent payment collisions:
-
-
-
-
-
-
-
-
- How does Request Network compare to other approaches?
-
-
-
-
-
-
-
-
-
Get Started
-
-
- Choose your path based on what you want to build:
-
-
-
-
-
- Explore specific business scenarios: invoicing, payouts, payroll, checkout, and subscriptions
-
-
-
- The easiest way to integrate. Payment types, webhooks, and developer tools.
-
-
-
- Supported chains, currencies, smart contracts, and community resources
-
-
-
-
-
-
-
- Legacy SDK and protocol documentation for advanced users
-
-
-
- Stay updated with the latest features and improvements
-
-
-
-
-
Popular
-
-
-
- 1. [Get API Keys](/api-setup/getting-started) (2 minutes)
- 2. [Create your first request](/use-cases/invoicing) (1 minute)
- 3. [Test payment flow](/api-features/payment-types) (2 minutes)
-
-
-
- 1. [Try EasyInvoice Demo](/use-cases/invoicing) - See full invoicing workflow
- 2. [Explore Use Cases](/use-cases/payouts) - Discover business applications
- 3. [Fork & Customize](/use-cases/invoicing) - Make it your own
-
-
-
- 1. [Check Supported Chains](/resources/supported-chains-and-currencies)
- 2. [Review Payment Types](/api-features/payment-types)
- 3. [Explore Use Cases](/use-cases/invoicing) that match your needs
-
-
-
From 76d873ca8392afa7515ad36e0e07b8fe69cdb727 Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Thu, 23 Oct 2025 18:58:53 -0400
Subject: [PATCH 19/21] Improve landing page content structure and text clarity
Welcome page improvements:
- Restructured intro: shortened main tagline, moved detailed explanation under "Identify Every Payment"
- Updated comparison section: better title "Blockchain Payment Detection Comparison" with contextual subtext
- Removed redundant "Get Started" intro text
Demo visual refinements:
- Applied dark green theme to dialogs for consistency
- Balanced column prominence (reduced red, enhanced green)
---
snippets/integrated-demo.jsx | 12 ++++++------
use-cases/welcome.mdx | 16 +++++++++++-----
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/snippets/integrated-demo.jsx b/snippets/integrated-demo.jsx
index 236e7a9..b65fb0a 100644
--- a/snippets/integrated-demo.jsx
+++ b/snippets/integrated-demo.jsx
@@ -703,14 +703,14 @@ export const IntegratedDemo = () => {
return (
- A protocol for requests, payments, and 100% automated reconciliation. Requests add business context to payments, eliminating manual accounting with cryptographic certainty. See how unique Request IDs prevent payment collisions:
+ A protocol for requests, payments, and 100% automated reconciliation.
@@ -20,14 +20,22 @@ import { ComparisonTable } from '/snippets/comparison-table.jsx'
Identify Every Payment
+
+ Requests add business context to payments, eliminating manual accounting with cryptographic certainty. See how unique Request IDs prevent payment collisions:
+
+
- How does Request Network compare to other approaches?
+ Blockchain Payment Detection Comparison
+
+ How does Request Network compare to other approaches?
+
+
@@ -36,9 +44,7 @@ import { ComparisonTable } from '/snippets/comparison-table.jsx'
Get Started
-
- Choose your path based on what you want to build:
-
+
Date: Thu, 23 Oct 2025 19:03:07 -0400
Subject: [PATCH 20/21] Swap summary boxes for consistent left-right visual
pattern
- Moved "Alternative Trade-offs" (red) to left side
- Moved "Request Network Advantage" (green) to right side
- Now matches demo columns: problems left, solution right
---
snippets/comparison-table.jsx | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/snippets/comparison-table.jsx b/snippets/comparison-table.jsx
index df0f017..b87c24f 100644
--- a/snippets/comparison-table.jsx
+++ b/snippets/comparison-table.jsx
@@ -266,30 +266,30 @@ export const ComparisonTable = () => {
{/* Summary Section */}
-
+
-
+
-
- Request Network Advantage
+
+ Alternative Trade-offs
-
- The only solution that combines 100% automated reconciliation with easy implementation and great user
- experience. Built-in payment metadata eliminates guesswork entirely.
+
+ Other methods sacrifice automated reconciliation (requiring manual review), burden users with poor UX, or require complex implementations.
-
+
-
+
-
- Alternative Trade-offs
+
+ Request Network Advantage
-
- Other methods sacrifice automated reconciliation (requiring manual review), burden users with poor UX, or require complex implementations.
+
+ The only solution that combines 100% automated reconciliation with easy implementation and great user
+ experience. Built-in payment metadata eliminates guesswork entirely.
From 0584eac183a3cd5e0ade78ee8a710028424e5047 Mon Sep 17 00:00:00 2001
From: MantisClone
Date: Sat, 25 Oct 2025 22:41:26 -0400
Subject: [PATCH 21/21] Fix tooltip bug: Generate full-length addresses and tx
hashes for new payments
- Fixed handleSimulatePayment to generate proper 40-char wallet addresses (instead of short truncated values)
- Fixed handleSimulatePayment to generate proper 64-char transaction hashes (instead of short truncated values)
- Now matches the generation logic used in simulatePaymentForRequest for initial payments
- Tooltips now show complete addresses and hashes for all payments, not just the first 3
---
snippets/integrated-demo.jsx | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/snippets/integrated-demo.jsx b/snippets/integrated-demo.jsx
index b65fb0a..9a25f3e 100644
--- a/snippets/integrated-demo.jsx
+++ b/snippets/integrated-demo.jsx
@@ -575,8 +575,10 @@ export const IntegratedDemo = () => {
const paymentAmount = selectedRequest.amount;
const paymentCurrency = selectedRequest.currency;
- const randomAddress = `0x${Math.random().toString(16).substr(2, 40)}`;
- const txHash = `0x${Math.random().toString(16).substr(2, 16)}`;
+ // Generate valid 40-character wallet address (20 bytes in hex)
+ const randomAddress = `0x${Array.from({length: 40}, () => Math.floor(Math.random() * 16).toString(16)).join('')}`;
+ // Generate valid 64-character tx hash (32 bytes in hex)
+ const txHash = `0x${Array.from({length: 64}, () => Math.floor(Math.random() * 16).toString(16)).join('')}`;
const matchingPayments = leftPayments.filter(
(p) => !p.isPlaceholder && p.amount === paymentAmount && p.currency === paymentCurrency,