paygate 4.0.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # paygate
2
2
 
3
- Gate your API with USDC micropayments in one line of code. AI agents pay per-request using the [x402 protocol](https://x402.org) **no accounts, no API keys, no subscriptions needed.**
3
+ Create agent-payable offers with HTTP 402 and USDC settlement. PayGate handles the x402 challenge, calls the ArisPay facilitator, and lets your handler run only after payment settles.
4
4
 
5
- Works with Express and Fastify. Settlement and gas sponsorship handled by ArisPay.
5
+ API endpoint offers are live today. Use the hosted proxy for zero-code acceptance, or install this package when you want the 402 flow on your own domain.
6
6
 
7
7
  ## Install
8
8
 
@@ -17,16 +17,19 @@ import express from 'express';
17
17
  import { paygate } from 'paygate/express';
18
18
 
19
19
  const app = express();
20
- const pw = paygate({ wallet: '0xYourUSDCWallet' });
20
+
21
+ const pw = paygate({
22
+ merchantId: process.env.PAYGATE_MERCHANT_ID,
23
+ });
21
24
 
22
25
  // $0.10 per request
23
- app.get('/api/data', pw({ price: 0.10 }), (req, res) => {
26
+ app.get('/api/data', pw({ priceCents: 10 }), (req, res) => {
24
27
  res.json({ data: 'premium content' });
25
28
  });
26
29
 
27
30
  // Dynamic pricing
28
31
  app.post('/api/analyze', pw({
29
- price: (req) => req.body.depth === 'deep' ? 0.50 : 0.10,
32
+ priceCents: (req) => req.body.depth === 'deep' ? 50 : 10,
30
33
  description: 'AI analysis',
31
34
  }), (req, res) => {
32
35
  res.json({ result: '...' });
@@ -43,18 +46,23 @@ import paygate from 'paygate/fastify';
43
46
 
44
47
  const app = Fastify();
45
48
 
46
- await app.register(paygate, { wallet: '0xYourUSDCWallet' });
49
+ await app.register(paygate, {
50
+ merchantId: process.env.PAYGATE_MERCHANT_ID,
51
+ });
47
52
 
48
- // Auto-paywall via route config
53
+ // Route-config-driven paywall
49
54
  app.get('/api/data', {
50
- config: { x402: { price: 0.10 } }
55
+ config: { paygate: { priceCents: 10 } },
51
56
  }, async (req, reply) => {
52
57
  reply.send({ data: 'premium content' });
53
58
  });
54
59
 
55
60
  // Or imperative API
56
61
  app.get('/api/research', async (req, reply) => {
57
- const { paid } = await req.x402Pay({ price: 0.05, description: 'Research query' });
62
+ const { paid } = await req.paygatePay({
63
+ priceCents: 5,
64
+ description: 'Research query',
65
+ });
58
66
  if (!paid) return; // 402 challenge already sent
59
67
  reply.send({ results: '...' });
60
68
  });
@@ -62,65 +70,73 @@ app.get('/api/research', async (req, reply) => {
62
70
  await app.listen({ port: 3000 });
63
71
  ```
64
72
 
73
+ ## Hosted proxy
74
+
75
+ For a no-code merchant integration:
76
+
77
+ 1. Register at `https://paygate.arispay.app/merchant-register`.
78
+ 2. Add a primary USDC payout wallet in the PayGate dashboard.
79
+ 3. Create an API endpoint offer with `method`, `path`, `targetUrl`, and `priceCents`.
80
+ 4. Agents call `https://paygate.arispay.app/{slug}{path}`.
81
+
82
+ Example agent test:
83
+
84
+ ```bash
85
+ npx payagent pay https://paygate.arispay.app/acme/forecast?city=London
86
+ ```
87
+
88
+ API equivalent for offer creation:
89
+
90
+ ```bash
91
+ curl -X POST https://api.arispay.app/v1/merchants/me/products \
92
+ -H 'authorization: Bearer mp_live_…' \
93
+ -H 'content-type: application/json' \
94
+ -d '{
95
+ "method": "GET",
96
+ "path": "/forecast",
97
+ "targetUrl": "https://api.acme.com/v1/forecast",
98
+ "priceCents": 2,
99
+ "description": "Weather forecast"
100
+ }'
101
+ ```
102
+
65
103
  ## How it works
66
104
 
67
105
  ```
68
- Agent Your API ArisPay Facilitator
106
+ Agent Your API / Proxy ArisPay Facilitator
69
107
  │ │ │
70
108
  ├─── GET /api/data ──────►│ │
71
- │ │ (no X-Payment header)
109
+ │ │ no X-Payment header
72
110
  │◄── 402 + requirements ──┤ │
73
111
  │ │ │
74
- (agent signs EIP-3009 USDC transfer)
112
+ │ agent signs USDC transfer authorization
75
113
  │ │ │
76
114
  ├─── GET /api/data ──────►│ │
77
115
  │ + X-Payment header ├── POST /settle ────────►│
78
116
  │ │ │ verify + settle
79
- │ │◄── { success, txHash } ─┤ sponsor gas
117
+ │ │◄── { success, txHash } ─┤
80
118
  │◄── 200 + data ──────────┤ │
81
119
  ```
82
120
 
83
- The agent SDKs ([payagent](https://npmjs.com/package/payagent)) handle the signing automatically agents don't need to understand the protocol.
121
+ The agent-side [`payagent`](https://www.npmjs.com/package/payagent) CLI and SDK handle the 402 loop automatically.
84
122
 
85
123
  ## Config
86
124
 
87
125
  | Option | Required | Default | Description |
88
126
  |---|---|---|---|
89
- | `wallet` | Yes | — | Your USDC wallet address |
90
- | `network` | No | `eip155:84532` | CAIP-2 network ID (Base Sepolia testnet) |
91
- | `asset` | No | Auto | USDC contract address |
92
- | `facilitatorUrl` | No | ArisPay production | Override the settlement facilitator |
93
- | `timeout` | No | `30000` | Facilitator call timeout (ms) |
94
-
95
- ## Networks
96
-
97
- | Network | ID | Status |
98
- |---|---|---|
99
- | Base Sepolia | `eip155:84532` | **Default (testnet)** |
100
- | Base Mainnet | `eip155:8453` | Production |
101
- | Ethereum | `eip155:1` | Production |
102
- | Polygon | `eip155:137` | Production |
103
-
104
- ## Agent-side
105
-
106
- Agents use [payagent](https://npmjs.com/package/payagent) — a drop-in fetch wrapper that handles 402 payments automatically:
127
+ | `merchantId` | Yes | — | PayGate merchant ID from the dashboard. The SDK fetches payout rail, wallet, asset, facilitator, and trust policy from ArisPay. |
128
+ | `apiUrl` | No | `https://api.arispay.app` | Override ArisPay API URL for staging/self-hosting. |
129
+ | `facilitatorUrl` | No | Manifest value | Compatibility override. In v3, merchant capabilities are authoritative. |
130
+ | `timeout` | No | `30000` | ArisPay/facilitator call timeout in ms. |
131
+ | `cacheTtlMs` | No | `300000` | Merchant capability cache TTL. |
107
132
 
108
- ```bash
109
- npm install payagent
110
- ```
133
+ ### Compatibility mode
111
134
 
112
- ```js
113
- import { createPayagentFetch } from 'payagent';
135
+ Older code that passes `wallet` and `network` still works through a v2 shim, but new integrations should use `merchantId` and configure payout wallets in the dashboard. The shim will be removed in a future major version.
114
136
 
115
- const fetch = createPayagentFetch({
116
- apiKey: 'ap_live_...', // ArisPay API key
117
- agentId: 'agent-123', // Your agent ID
118
- });
137
+ ## Networks
119
138
 
120
- // This call will automatically handle any 402 challenges
121
- const res = await fetch('https://your-api.com/api/data');
122
- const data = await res.json();
123
- ```
139
+ PayGate currently settles USDC on EVM networks advertised by your merchant capability manifest. Base mainnet (`eip155:8453`) is the recommended production network.
124
140
 
125
141
  ## License
126
142
 
package/dist/core.d.ts CHANGED
@@ -70,7 +70,7 @@ export interface DiscoveryRateLimitConfig {
70
70
  interface X402PaymentAccept {
71
71
  scheme: string;
72
72
  network: string;
73
- maxAmountRequired: string;
73
+ amount: string;
74
74
  resource: string;
75
75
  asset: string;
76
76
  payTo: string;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/core.js CHANGED
@@ -218,7 +218,7 @@ export async function handlePaywall(config, routePrice, resourceUrl, paymentHead
218
218
  {
219
219
  scheme: 'exact',
220
220
  network: resolved.network,
221
- maxAmountRequired: priceBaseUnits,
221
+ amount: priceBaseUnits,
222
222
  resource: resourceUrl,
223
223
  asset: resolved.asset,
224
224
  payTo: resolved.payTo,
@@ -261,7 +261,7 @@ export async function handlePaywall(config, routePrice, resourceUrl, paymentHead
261
261
  const accept = {
262
262
  scheme: 'exact',
263
263
  network: resolved.network,
264
- maxAmountRequired: priceBaseUnits,
264
+ amount: priceBaseUnits,
265
265
  resource: resourceUrl,
266
266
  asset: resolved.asset,
267
267
  payTo: resolved.payTo,
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=core.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.test.d.ts","sourceRoot":"","sources":["../src/core.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { buildChallengeHeaders } from './core.js';
3
+ const baseAccept = {
4
+ scheme: 'exact',
5
+ network: 'eip155:8453',
6
+ amount: '10000',
7
+ resource: 'https://example.com/api/protected',
8
+ asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
9
+ payTo: '0xabcdef1234567890abcdef1234567890abcdef12',
10
+ extra: { name: 'USD Coin', version: '2' },
11
+ };
12
+ const baseBody = {
13
+ error: 'Payment Required',
14
+ x402Version: 2,
15
+ accepts: [baseAccept],
16
+ facilitator: 'https://facilitator.arispay.app',
17
+ gasSponsored: true,
18
+ };
19
+ describe('buildChallengeHeaders', () => {
20
+ it('emits payment-required as base64-encoded JSON of the body', () => {
21
+ const headers = buildChallengeHeaders(baseBody, [baseAccept]);
22
+ const decoded = Buffer.from(headers['payment-required'], 'base64').toString('utf8');
23
+ expect(JSON.parse(decoded)).toEqual(baseBody);
24
+ });
25
+ it('keeps X-Payment-Requirements as raw JSON of {x402Version, accepts} only', () => {
26
+ const headers = buildChallengeHeaders(baseBody, [baseAccept]);
27
+ expect(JSON.parse(headers['X-Payment-Requirements'])).toEqual({
28
+ x402Version: 2,
29
+ accepts: [baseAccept],
30
+ });
31
+ });
32
+ it('declares x402 in WWW-Authenticate', () => {
33
+ const headers = buildChallengeHeaders(baseBody, [baseAccept]);
34
+ expect(headers['WWW-Authenticate']).toBe('x402');
35
+ });
36
+ it('exposes the canonical headers via CORS', () => {
37
+ const headers = buildChallengeHeaders(baseBody, [baseAccept]);
38
+ const expose = headers['Access-Control-Expose-Headers'];
39
+ expect(expose).toContain('payment-required');
40
+ expect(expose).toContain('x-payment-response');
41
+ });
42
+ it('strips non-printable-ASCII from the legacy header (Latin1 safety)', () => {
43
+ const acceptsWithEmDash = [
44
+ {
45
+ ...baseAccept,
46
+ extra: { ...baseAccept.extra, name: 'USD — Coin' },
47
+ },
48
+ ];
49
+ const bodyWithEmDash = { ...baseBody, accepts: acceptsWithEmDash };
50
+ const headers = buildChallengeHeaders(bodyWithEmDash, acceptsWithEmDash);
51
+ // Legacy header should have ? replacements — em dash (U+2014) is char 8212.
52
+ expect(headers['X-Payment-Requirements']).not.toMatch(/—/);
53
+ expect(/[^\x20-\x7E]/.test(headers['X-Payment-Requirements'])).toBe(false);
54
+ // Canonical header preserves the em dash via base64 round-trip.
55
+ const decoded = Buffer.from(headers['payment-required'], 'base64').toString('utf8');
56
+ expect(decoded).toContain('—');
57
+ });
58
+ it('canonical header is valid base64 (alphabet only, padding optional)', () => {
59
+ const headers = buildChallengeHeaders(baseBody, [baseAccept]);
60
+ expect(headers['payment-required']).toMatch(/^[A-Za-z0-9+/]+=*$/);
61
+ });
62
+ });
63
+ //# sourceMappingURL=core.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.test.js","sourceRoot":"","sources":["../src/core.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paygate",
3
- "version": "4.0.0",
3
+ "version": "5.0.0",
4
4
  "description": "Accept payment from AI agents in two lines of code. Gate any Express or Fastify route with an x402 paywall backed by ArisPay — merchants don't hold keys, agents pay per-request, USDC settles in seconds on Base mainnet.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",