Skip to content

Commit bcea058

Browse files
authored
docs: copy improvements across landing, overview, FAQ, and quickstart (#317)
1 parent c75960b commit bcea058

7 files changed

Lines changed: 40 additions & 44 deletions

File tree

src/components/LandingPage.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -528,12 +528,12 @@ function Hero() {
528528
}}
529529
onClick={() =>
530530
captureEvent(AnalyticsEvents.LANDING_CTA_CLICKED, {
531-
cta_label: "Monetize your API",
531+
cta_label: "Add payments to your API",
532532
href: "/quickstart/server",
533533
})
534534
}
535535
>
536-
Monetize your API
536+
Add payments to your API
537537
</Link>
538538
</div>
539539
</div>
@@ -552,8 +552,9 @@ function Tagline() {
552552
className="leading-relaxed max-w-xl font-normal max-[1080px]:max-w-lg"
553553
style={{ color: "var(--vocs-text-color-secondary)" }}
554554
>
555-
The open protocol for internet-native payments. Charge for API requests,
556-
tool calls, or content. Agents, apps, and humans securely pay per request.
555+
The open protocol for machine-to-machine payments. Charge for API
556+
requests, tool calls, or content—agents and apps pay per request in the
557+
same HTTP call.
557558
</div>
558559
);
559560
}

src/pages.gen.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ type Page =
9494
| { path: '/payment-methods/tempo/session'; render: 'static' }
9595
| { path: '/payment-methods/stripe/charge'; render: 'static' }
9696
| { path: '/payment-methods/stripe'; render: 'static' }
97+
| { path: '/payment-methods/lightning/charge'; render: 'static' }
98+
| { path: '/payment-methods/lightning'; render: 'static' }
99+
| { path: '/payment-methods/lightning/session'; render: 'static' }
97100
| { path: '/intents/charge'; render: 'static' }
98101
| { path: '/guides/building-with-an-llm'; render: 'static' }
99102
| { path: '/guides/one-time-payments'; render: 'static' }

src/pages/faq.mdx

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
# Frequently asked questions [Common questions about the Machine Payments Protocol]
22

3-
## What is MPP?
4-
5-
The Machine Payments Protocol (MPP) is an internet-native protocol that lets any client—agents, software, or humans—pay for services inline over HTTP. The protocol is payment-method agnostic, open by design, and engineered for extensibility, performance, and security.
6-
73
## Is MPP only for stablecoins?
84

95
No. MPP is payment-method agnostic—the protocol works with any payment rail.
@@ -12,7 +8,7 @@ Today, [Tempo](/payment-methods/tempo) stablecoin payments, [Stripe](/payment-me
128

139
## Do I need a stablecoin wallet?
1410

15-
No. Stripe supports cards and numerous fiat methods. Lightning supports Bitcoin. MPP is payment-method agnostic—any rail can be integrated.
11+
No. With Stripe, you can pay with cards without stablecoins. With Lightning, you can pay with Bitcoin.
1612

1713
For Tempo payments, you need a stablecoin wallet to sign transactions. The SDK and the `tempo wallet` CLI handle key management for you.
1814

@@ -32,9 +28,11 @@ Yes. The core x402 "exact" flows map directly onto MPP's charge intent. MPP clie
3228

3329
## Why build MPP on Tempo?
3430

35-
High-throughput, low-value transactions require specific properties from the settlement layer:
31+
MPP works with any payment rail—Stripe for cards, Lightning for Bitcoin, or any custom method. You don't have to use Tempo.
32+
33+
That said, high-throughput, low-value transactions benefit from specific properties that Tempo provides:
3634

37-
- **Fast, deterministic finality**Tempo consensus provides certainty that a payment has settled, not probabilistic confirmation.
35+
- **Fast, deterministic finality**Certainty that a payment has settled, not probabilistic confirmation.
3836
- **Low, predictable cost**—Transaction fees stay stable regardless of global network congestion.
3937
- **Payment lanes**—Dedicated transaction routing for payment traffic, ensuring reliability even under heavy load.
4038
- **Stablecoin-native**—TIP-20 stablecoins (USDC, USDT) are first-class citizens, so payments are denominated in familiar currency.
@@ -59,12 +57,6 @@ MPP requires TLS 1.2+ for all connections. Challenge IDs are cryptographically b
5957

6058
Payments use the same security model as the underlying payment method. For Tempo, that means cryptographic signatures over every transaction. For Stripe, it means Stripe's existing fraud and dispute infrastructure.
6159

62-
## Can any agent use MPP?
63-
64-
Yes. Any agent can interact with MPP services via a compatible CLI or SDK. The [quickstart guide](/quickstart/agent) has copy-paste setup instructions for Claude, Codex, and Amp.
65-
66-
For programmatic integration, the [TypeScript](/sdk/typescript), [Python](/sdk/python), and [Rust](/sdk/rust) SDKs provide native support.
67-
6860
## What happens if a payment fails?
6961

7062
The service returns an error with details following [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) (Problem Details for HTTP APIs). Your client can retry with a different payment method or surface the error. No money is deducted for failed requests.

src/pages/overview.mdx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ import { TerminalPing } from '../components/TerminalPing'
44
import { TypeScriptSdkCard, PythonSdkCard, RustSdkCard, QuickstartCard, ProtocolConceptsCard } from '../components/cards'
55
import { PaymentFlowDiagram } from '../components/PaymentFlowDiagram'
66

7-
# Machine Payments Protocol [The open protocol for internet-native payments]
7+
# Machine Payments Protocol [The open protocol for machine-to-machine payments]
88

9-
The Machine Payments Protocol (MPP) lets any client—agents, apps, or humans—pay for any service, inline, over HTTP. Developers use MPP to let their agents pay for services. Service operators use MPP to monetize their APIs.
9+
The Machine Payments Protocol (MPP) lets any client—agents, apps, or humans—pay for any service in the same HTTP request. Developers use MPP to let their agents pay for services. Service operators use MPP to accept payments for their APIs.
1010

11-
MPP is built around a simple extensible core and is neutral to the implementation of underlying payment flows and methods.
11+
MPP is built around a simple, extensible core and is neutral to the implementation of underlying payment flows and methods.
1212

1313
- **Open standard built for the internet**—Built on an [open specification proposed to the IETF](https://paymentauth.org), not a proprietary API
1414
- **Designed for payments**—Idempotency, security, and receipts are first-class primitives
15-
- **Multi rail**—Stablecoins, cards, bank transfers, and digital wallets. All payment methods can be supported through one protocol and flexible control flow
16-
- **Multi currency**The protocol is currency agnostic, allowing for transactions in USD, EUR, BRL, USDC, BTC, or any other asset
15+
- **Works with stablecoins, cards, and bank transfers**All payment methods can be supported through one protocol and flexible control flow
16+
- **Any currency**Transact in USD, EUR, BRL, USDC, BTC, or any other asset
1717
- **Composable and designed for extension**—A flexible core allows advanced flows like disputes or additional primitives like identity to be gradually introduced
1818

1919
## Who is MPP for?
@@ -22,7 +22,7 @@ MPP involves three parties:
2222

2323
- **Developers** build apps and agents that consume paid services. You integrate an MPP client so your agent can discover, pay for, and use third-party APIs without manual signup or API keys.
2424
- **Agents** are the entities that take action—calling APIs, generating images, querying data. They pay for services autonomously on behalf of your users.
25-
- **Services** operate APIs that charge for access—LLM inference, image generation, web search, and more. You integrate an MPP server to accept payments inline with zero onboarding friction.
25+
- **Services** operate APIs that charge for access—LLM inference, image generation, web search, and more. You integrate an MPP server to accept payments with zero onboarding friction.
2626

2727
## The problem with payments on the internet
2828

@@ -32,7 +32,7 @@ However, the very things that make these payment flows familiar and fast for hum
3232

3333
This is not the fault of any individual payment method or credential. This is a global problem which exists at the _interface_ level: how buyer and seller negotiate cost, supported payment methods, and ultimately transact.
3434

35-
The Machine Payments Protocol addresses this gap by providing an internet-native payment interface that strips away the complexity of rich checkout flows, while still providing robust security and reliability. By using MPP, you can accept payments from any clientagents, apps, or humansand across any payment method, without the need for a complex checkout flows and integrations.
35+
The Machine Payments Protocol addresses this gap by providing a payment interface built for programmatic access that strips away the complexity of rich checkout flows, while still providing robust security and reliability. By using MPP, you can accept payments from any clientagents, apps, or humansand across any payment method, without complex checkout flows and integrations.
3636

3737
## Try it out
3838

@@ -45,9 +45,9 @@ See the full payment flow in action. The terminal creates an ephemeral wallet, f
4545
## Use cases
4646

4747
* **Pay for LLM usage**—Your agent calls LLM providers through MPP, paying per token over a Tempo session. No API key management needed.
48-
* **Generate an image**—Request image generation from fal.ai or ElevenLabs audio, paying per request with a Tempo charge. The agent gets the result inline.
48+
* **Generate an image**—Request image generation from fal.ai or ElevenLabs audio, paying per request with a Tempo charge. The agent gets the result in the same response.
4949
* **Search the web**—Query Parallel for real-time search results, paying per query over a Tempo session. Results flow back in the same HTTP response.
50-
* **Monetize your API**—Accept payments from any client—agents, apps, or humans—without requiring signups, billing accounts, or API keys.
50+
* **Accept payments for your API**—Accept payments from any client—agents, apps, or humans—without requiring signups, billing accounts, or API keys.
5151

5252
## Payment flow
5353

src/pages/protocol/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { PaymentFlowDiagram } from "../../components/PaymentFlowDiagram";
33

44
# Protocol overview [Standardizing HTTP 402 for machine-to-machine payments]
55

6-
The Machine Payments Protocol (MPP) is an internet-native protocol for machine-to-machine payments. It standardizes HTTP `402` "Payment Required" with an extensible framework that works with any payment network.
6+
The Machine Payments Protocol (MPP) is a protocol for machine-to-machine payments. It standardizes HTTP `402` "Payment Required" with an extensible framework that works with any payment network.
77

88
These docs provide a developer-friendly overview. For the full specification, see the full [IETF Specification](https://paymentauth.org).
99

src/pages/quickstart/server.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import { Badge, Cards } from 'vocs'
22
import { ServerPrompt } from '../../components/QuickstartPrompt'
33
import { ClientQuickstartCard, TempoMethodCard, MppxCreateReferenceCard } from '../../components/cards'
44

5-
# Monetize your API [Charge for access to protected resources]
5+
# Add payments to your API [Charge for access to protected resources]
66

77
## Overview
88

99
This quickstart demonstrates how to plug MPP into any server framework to accept payments for protected resources. Pick the path that suits you:
1010

1111
- [**Prompt mode**](#prompt-mode): paste a prompt into your coding agent and build in one prompt
1212
- [**Framework mode**](#framework-mode): use `mppx` middleware for Next.js, Hono, Elysia, or Express
13-
- [**Manual mode**](#manual-mode): call `mppx/server` directly with the Fetch API
13+
- [**Manual mode**](#advanced-manual-mode): call `mppx/server` directly with the Fetch API
1414

1515
## Prompt mode
1616

@@ -30,7 +30,7 @@ import { Mppx, tempo } from 'mppx/nextjs'
3030
// [!code hl:start]
3131
const mppx = Mppx.create({
3232
methods: [tempo({
33-
currency: '0x20c0000000000000000000000000000000000000',
33+
currency: '0x20c0000000000000000000000000000000000000', // pathUSD on Tempo
3434
recipient: '0xa726a1CD723409074DF9108A2187cfA19899aCF8',
3535
})],
3636
})
@@ -119,10 +119,10 @@ mppx.charge({
119119
:::
120120

121121
:::note
122-
Don't see your framework? `mppx` is designed to be framework-agnostic. See [Manual mode](#manual-mode) below.
122+
Don't see your framework? `mppx` is designed to be framework-agnostic. See [Manual mode](#advanced-manual-mode) below.
123123
:::
124124

125-
## Manual mode
125+
## Advanced: manual mode
126126

127127
If you prefer full control over the payment flow, use `mppx/server` directly with the Fetch API.
128128

vocs.config.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export default defineConfig({
9595
text: "Quick Start",
9696
items: [
9797
{ text: "Overview", link: "/quickstart" },
98-
{ text: "Monetize your service", link: "/quickstart/server" },
98+
{ text: "Add payments to your API", link: "/quickstart/server" },
9999
{ text: "Use with agents", link: "/quickstart/agent" },
100100
{ text: "Use with your app", link: "/quickstart/client" },
101101
],
@@ -104,15 +104,15 @@ export default defineConfig({
104104
text: "Guides",
105105
items: [
106106
{
107-
text: "Accept One-Time Payments",
107+
text: "Accept one-time payments",
108108
link: "/guides/one-time-payments",
109109
},
110110
{
111-
text: "Accept Pay-As-You-Go Payments",
111+
text: "Accept pay-as-you-go payments",
112112
link: "/guides/pay-as-you-go",
113113
},
114114
{
115-
text: "Accept Streamed Payments",
115+
text: "Accept streamed payments",
116116
link: "/guides/streamed-payments",
117117
},
118118
],
@@ -182,9 +182,9 @@ export default defineConfig({
182182
text: "TypeScript",
183183
collapsed: true,
184184
items: [
185-
{ text: "Getting Started", link: "/sdk/typescript" },
185+
{ text: "Getting started", link: "/sdk/typescript" },
186186
{
187-
text: "Client Reference",
187+
text: "Client reference",
188188
items: [
189189
{
190190
text: "Methods",
@@ -247,7 +247,7 @@ export default defineConfig({
247247
],
248248
},
249249
{
250-
text: "Server Reference",
250+
text: "Server reference",
251251
items: [
252252
{
253253
text: "Methods",
@@ -318,7 +318,7 @@ export default defineConfig({
318318
],
319319
},
320320
{
321-
text: "Middleware Reference",
321+
text: "Middleware reference",
322322
items: [
323323
{
324324
text: "Elysia",
@@ -339,7 +339,7 @@ export default defineConfig({
339339
],
340340
},
341341
{
342-
text: "Core Reference",
342+
text: "Core reference",
343343
items: [
344344
{
345345
text: "BodyDigest",
@@ -476,15 +476,15 @@ export default defineConfig({
476476
},
477477
],
478478
},
479-
{ text: "CLI Reference", link: "/sdk/typescript/cli" },
479+
{ text: "CLI reference", link: "/sdk/typescript/cli" },
480480
],
481481
},
482482
{
483483
text: "Python",
484484
collapsed: true,
485485
items: [
486486
{ text: "Overview", link: "/sdk/python" },
487-
{ text: "Core Types", link: "/sdk/python/core" },
487+
{ text: "Core types", link: "/sdk/python/core" },
488488
{ text: "Client", link: "/sdk/python/client" },
489489
{ text: "Server", link: "/sdk/python/server" },
490490
],
@@ -494,7 +494,7 @@ export default defineConfig({
494494
collapsed: true,
495495
items: [
496496
{ text: "Overview", link: "/sdk/rust" },
497-
{ text: "Core Types", link: "/sdk/rust/core" },
497+
{ text: "Core types", link: "/sdk/rust/core" },
498498
{ text: "Client", link: "/sdk/rust/client" },
499499
{ text: "Server", link: "/sdk/rust/server" },
500500
],

0 commit comments

Comments
 (0)