@aifinpay/agent 1.8.4 → 2.0.0-rc.8

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.
Files changed (50) hide show
  1. package/README.md +7 -9
  2. package/dist/agentPassport.d.ts +35 -0
  3. package/dist/agentPassport.d.ts.map +1 -0
  4. package/dist/agentPassport.js +87 -0
  5. package/dist/agentPassport.js.map +1 -0
  6. package/dist/aifp1.d.ts +52 -9
  7. package/dist/aifp1.d.ts.map +1 -1
  8. package/dist/aifp1.js +94 -2
  9. package/dist/aifp1.js.map +1 -1
  10. package/dist/chains.d.ts +4 -0
  11. package/dist/chains.d.ts.map +1 -0
  12. package/dist/chains.js +24 -0
  13. package/dist/chains.js.map +1 -0
  14. package/dist/facilitators/detect.d.ts +3 -3
  15. package/dist/facilitators/detect.d.ts.map +1 -1
  16. package/dist/facilitators/detect.js +3 -22
  17. package/dist/facilitators/detect.js.map +1 -1
  18. package/dist/facilitators/standard-x402.d.ts +4 -8
  19. package/dist/facilitators/standard-x402.d.ts.map +1 -1
  20. package/dist/facilitators/standard-x402.js +202 -92
  21. package/dist/facilitators/standard-x402.js.map +1 -1
  22. package/dist/index.d.ts +14 -18
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +15 -34
  25. package/dist/index.js.map +1 -1
  26. package/dist/settlement.d.ts +172 -0
  27. package/dist/settlement.d.ts.map +1 -0
  28. package/dist/settlement.js +355 -0
  29. package/dist/settlement.js.map +1 -0
  30. package/dist/settlementV14.d.ts +135 -0
  31. package/dist/settlementV14.d.ts.map +1 -0
  32. package/dist/settlementV14.js +203 -0
  33. package/dist/settlementV14.js.map +1 -0
  34. package/dist/splitterRoutes.d.ts +116 -0
  35. package/dist/splitterRoutes.d.ts.map +1 -0
  36. package/dist/splitterRoutes.generated.d.ts +22 -0
  37. package/dist/splitterRoutes.generated.d.ts.map +1 -0
  38. package/dist/splitterRoutes.generated.js +399 -0
  39. package/dist/splitterRoutes.generated.js.map +1 -0
  40. package/dist/splitterRoutes.js +70 -0
  41. package/dist/splitterRoutes.js.map +1 -0
  42. package/dist/unifiedAgent.d.ts +9 -5
  43. package/dist/unifiedAgent.d.ts.map +1 -1
  44. package/dist/unifiedAgent.js +32 -77
  45. package/dist/unifiedAgent.js.map +1 -1
  46. package/dist/wallet.d.ts +11 -52
  47. package/dist/wallet.d.ts.map +1 -1
  48. package/dist/wallet.js +27 -51
  49. package/dist/wallet.js.map +1 -1
  50. package/package.json +6 -4
package/README.md CHANGED
@@ -1,14 +1,12 @@
1
1
  # @aifinpay/agent (Node / TypeScript)
2
2
 
3
- Non-custodial x402 payment client for autonomous AI agents on
4
- [AiFinPay](https://aifinpay.io) — canonical domain **aifinpay.io** (the
5
- legacy `aifinpay.company` host is retired). SDK settlement: since 1.3.0,
6
- direct fee-on-top splitter settlement (`AiFinPayAgent.call()`) works on
7
- Polygon (default), Base, Optimism, Unichain, BOT Chain and XRPL EVM
8
- (native-token path only — no ERC-20/USDC settlement yet), plus Solana;
9
- the backend-quoted invoice flow (`/api/b2b/pay-with-split`) remains
10
- Polygon + Solana. The protocol is live across 13 networks — see
11
- [aifinpay.io/llms.txt](https://aifinpay.io/llms.txt).
3
+ Non-custodial payment client for autonomous AI agents on
4
+ [AiFinPay](https://aifinpay.io). AIFP-1 is gross-inclusive: payer total equals
5
+ the quote, merchant receives 99%, AiFinPay receives 1%, creator/referral
6
+ receives 0%. AIFP-2/x402 currently charges 0% at the protocol layer. Legacy
7
+ `/api/b2b` split-invoice methods are retired. Settlement fails closed unless
8
+ the selected deployment, runtime hash, governance profile, merchant target,
9
+ asset and paid E2E evidence are verified.
12
10
 
13
11
  The Ed25519 keypair is generated locally with `tweetnacl` and never leaves
14
12
  your process. The SDK only sends a one-time SHA-256 + Ed25519 signature in
@@ -0,0 +1,35 @@
1
+ export type AgentPassportNetwork = "polygon" | "avalanche" | "arbitrum" | "bnb" | "base" | "unichain" | "optimism" | "botchain" | "xrplevm" | "solana" | "near" | "aptos" | "casper";
2
+ export type AgentPassportChainFamily = "evm" | "solana" | "near" | "aptos" | "casper";
3
+ export interface AgentPassportWalletBinding {
4
+ network: AgentPassportNetwork;
5
+ chain_family: AgentPassportChainFamily;
6
+ address: string;
7
+ is_primary: boolean;
8
+ verified_at: number;
9
+ }
10
+ export interface AgentPassportIdentity {
11
+ agent_id: string;
12
+ agent_number: number;
13
+ agent_number_display: string;
14
+ username: string;
15
+ display_name: string | null;
16
+ status: "active" | "suspended" | "revoked";
17
+ verification_level: "self_verified" | "organization_verified" | "enhanced_verified";
18
+ created_at: number;
19
+ updated_at: number;
20
+ wallets: AgentPassportWalletBinding[];
21
+ }
22
+ export declare class AgentPassportError extends Error {
23
+ readonly code: string;
24
+ constructor(message: string, code?: string);
25
+ }
26
+ export declare function normalizeAgentPassportIdentifier(identifier: string): string;
27
+ /**
28
+ * Resolve a public Agent Passport by @username, permanent AIFP number, or
29
+ * immutable agent_id. Resolution is addressability only; callers MUST still
30
+ * verify/require the destination wallet signature or payment invoice rules.
31
+ */
32
+ export declare function resolveAgentPassport(identifier: string, baseUrl?: string, fetchImpl?: typeof fetch): Promise<AgentPassportIdentity>;
33
+ /** Pick a verified wallet binding without silently crossing networks. */
34
+ export declare function agentPassportWallet(passport: AgentPassportIdentity, network: AgentPassportNetwork): AgentPassportWalletBinding;
35
+ //# sourceMappingURL=agentPassport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentPassport.d.ts","sourceRoot":"","sources":["../src/agentPassport.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,GAClE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjF,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IAC3C,kBAAkB,EAAE,eAAe,GAAG,uBAAuB,GAAG,mBAAmB,CAAC;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,0BAA0B,EAAE,CAAC;CACvC;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aACE,IAAI;gBAArC,OAAO,EAAE,MAAM,EAAkB,IAAI,SAAyB;CAI3E;AAMD,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAY3E;AA6BD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,SAAwB,EAC/B,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAgBhC;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,oBAAoB,GAC5B,0BAA0B,CAQ5B"}
@@ -0,0 +1,87 @@
1
+ export class AgentPassportError extends Error {
2
+ code;
3
+ constructor(message, code = "agent_passport_error") {
4
+ super(message);
5
+ this.code = code;
6
+ this.name = "AgentPassportError";
7
+ }
8
+ }
9
+ const AGENT_ID_RE = /^aifp_agent_[0-9a-f]{32}$/;
10
+ const AGENT_NUMBER_RE = /^AIFP-\d{1,18}$/i;
11
+ const USERNAME_RE = /^@[a-z][a-z0-9_]{2,31}$/;
12
+ export function normalizeAgentPassportIdentifier(identifier) {
13
+ const raw = String(identifier || "").trim();
14
+ if (AGENT_ID_RE.test(raw))
15
+ return raw;
16
+ if (AGENT_NUMBER_RE.test(raw))
17
+ return `AIFP-${raw.split("-")[1]}`;
18
+ const username = raw.startsWith("@") ? raw.toLowerCase() : `@${raw.toLowerCase()}`;
19
+ if (!USERNAME_RE.test(username)) {
20
+ throw new AgentPassportError("identifier must be an immutable aifp_agent_* id, AIFP number, or 3-32 character @username", "invalid_agent_identifier");
21
+ }
22
+ return username;
23
+ }
24
+ function validateResolvedIdentity(value) {
25
+ if (!value || typeof value !== "object")
26
+ throw new AgentPassportError("invalid Agent Passport response");
27
+ const v = value;
28
+ if (typeof v.agent_id !== "string" || !AGENT_ID_RE.test(v.agent_id)) {
29
+ throw new AgentPassportError("invalid agent_id in Agent Passport response");
30
+ }
31
+ if (typeof v.agent_number !== "number" || !Number.isSafeInteger(v.agent_number) || v.agent_number <= 0) {
32
+ throw new AgentPassportError("invalid agent_number in Agent Passport response");
33
+ }
34
+ if (typeof v.agent_number_display !== "string" || !AGENT_NUMBER_RE.test(v.agent_number_display)) {
35
+ throw new AgentPassportError("invalid agent_number_display in Agent Passport response");
36
+ }
37
+ if (typeof v.username !== "string" || !USERNAME_RE.test(v.username)) {
38
+ throw new AgentPassportError("invalid username in Agent Passport response");
39
+ }
40
+ if (!Array.isArray(v.wallets))
41
+ throw new AgentPassportError("Agent Passport response has no wallets array");
42
+ const wallets = v.wallets.map((raw) => {
43
+ if (!raw || typeof raw !== "object")
44
+ throw new AgentPassportError("invalid wallet binding");
45
+ const w = raw;
46
+ if (typeof w.network !== "string" || typeof w.chain_family !== "string" || typeof w.address !== "string") {
47
+ throw new AgentPassportError("invalid wallet binding fields");
48
+ }
49
+ return raw;
50
+ });
51
+ return { ...value, wallets };
52
+ }
53
+ /**
54
+ * Resolve a public Agent Passport by @username, permanent AIFP number, or
55
+ * immutable agent_id. Resolution is addressability only; callers MUST still
56
+ * verify/require the destination wallet signature or payment invoice rules.
57
+ */
58
+ export async function resolveAgentPassport(identifier, baseUrl = "https://aifinpay.io", fetchImpl = fetch) {
59
+ const normalized = normalizeAgentPassportIdentifier(identifier);
60
+ const url = `${baseUrl.replace(/\/$/, "")}/api/agent/resolve/${encodeURIComponent(normalized)}`;
61
+ const response = await fetchImpl(url, { headers: { accept: "application/json" } });
62
+ let body;
63
+ try {
64
+ body = await response.json();
65
+ }
66
+ catch {
67
+ throw new AgentPassportError(`Agent Passport resolver returned non-JSON HTTP ${response.status}`);
68
+ }
69
+ if (!response.ok) {
70
+ const rec = body && typeof body === "object" ? body : {};
71
+ throw new AgentPassportError(typeof rec.error === "string" ? rec.error : `Agent Passport HTTP ${response.status}`, response.status === 404 ? "agent_not_found" : "agent_passport_http_error");
72
+ }
73
+ const rec = body;
74
+ return validateResolvedIdentity(rec.agent);
75
+ }
76
+ /** Pick a verified wallet binding without silently crossing networks. */
77
+ export function agentPassportWallet(passport, network) {
78
+ if (passport.status !== "active") {
79
+ throw new AgentPassportError(`Agent Passport is ${passport.status}`, "agent_not_active");
80
+ }
81
+ const candidates = passport.wallets.filter((w) => w.network === network);
82
+ const selected = candidates.find((w) => w.is_primary) ?? candidates[0];
83
+ if (!selected)
84
+ throw new AgentPassportError(`Agent Passport has no verified ${network} wallet`, "wallet_binding_missing");
85
+ return selected;
86
+ }
87
+ //# sourceMappingURL=agentPassport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentPassport.js","sourceRoot":"","sources":["../src/agentPassport.ts"],"names":[],"mappings":"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"}
package/dist/aifp1.d.ts CHANGED
@@ -55,28 +55,66 @@ export interface Aifp1Quote {
55
55
  accepted_assets: string[];
56
56
  accepted_chains: string[];
57
57
  pay_to: Record<string, string>;
58
- /** Present only when the backend had a live POL rate at quote time. */
58
+ /** Native Polygon v1.3 gross settlement, when enabled by backend readiness. */
59
59
  native_settlement?: {
60
60
  asset: string;
61
61
  decimals: number;
62
62
  rate_usd: string;
63
+ rate_fixed_at?: string;
63
64
  total_wei: string;
65
+ gross_wei?: string;
66
+ payer_total_wei?: string;
64
67
  merchant_wei: string;
65
68
  treasury_wei: string;
66
69
  creator_wei: string;
70
+ valid_until?: string;
71
+ settlement_semantics?: "gross-inclusive";
67
72
  };
68
73
  settlement: {
69
74
  batch_units: string;
70
75
  total_units: string;
71
- fee_on_top: {
72
- provider: string;
73
- treasury: string;
74
- creator: string;
75
- };
76
+ gross_units: string;
77
+ payer_total_units: string;
78
+ merchant_units: string;
79
+ protocol_fee_units: string;
80
+ creator_units: string;
81
+ fee_on_top: false;
76
82
  };
77
83
  nonce: string;
78
84
  expires_at: string;
79
85
  }
86
+ /**
87
+ * A one-object, human-and-LLM-readable summary of what a quote actually buys.
88
+ *
89
+ * The raw quote answers "1.06 POL" and leaves the agent — or the person reading
90
+ * over its shoulder — to work out FOR WHAT. That is the gap an agent-flow audit
91
+ * flagged: a payment prompt that states an amount without the terms is a prompt
92
+ * a careful agent should refuse, and a careless one over-pays on. Every field
93
+ * here already exists in the quote; this just assembles them into the sentence
94
+ * a reasonable payer needs before signing.
95
+ */
96
+ export interface QuoteSummary {
97
+ /** One line, safe to show a user or feed an LLM: what, how much, how many, until when. */
98
+ headline: string;
99
+ amount_usd: string;
100
+ /** The on-chain figure and its asset, when the quote is settled natively. */
101
+ pay: {
102
+ amount: string;
103
+ asset: string;
104
+ } | null;
105
+ /** How many requests this batch covers, and each request's weight. */
106
+ requests: number;
107
+ unit_quota: number;
108
+ /** WHERE the batch may be spent — the single most misread field (see the
109
+ * wildcard bug): "exact" buys one path, "prefix" buys a subtree. */
110
+ scope: Aifp1Scope;
111
+ resource: string;
112
+ /** When the quote stops being settleable. */
113
+ expires_at: string;
114
+ /** The protocol fee, stated up front. */
115
+ fee_bps: number | null;
116
+ }
117
+ export declare function describeQuote(q: Aifp1Quote): QuoteSummary;
80
118
  /** POST /v1/pay 200 body — routes/aifp.js. */
81
119
  export interface Aifp1PayResult {
82
120
  receipt_id: string;
@@ -276,12 +314,17 @@ export interface Aifp1Deps {
276
314
  /** AIFP-Agent-Id / agent_id — a 0x address, or agent policies cannot key on it. */
277
315
  agentId: string;
278
316
  /**
279
- * Settle `totalWei` to `merchantWallet` with `orderId`, returning a hash
280
- * whose transaction was included AND succeeded.
317
+ * Settle one canonical v1.3 gross amount, returning a hash whose transaction
318
+ * was included AND succeeded. Implementations must independently verify the
319
+ * deployment/runtime profile before signing.
281
320
  */
282
321
  settle(p: {
283
322
  merchantWallet: `0x${string}`;
284
- totalWei: bigint;
323
+ grossWei: bigint;
324
+ merchantWei: bigint;
325
+ treasuryWei: bigint;
326
+ creatorWei: bigint;
327
+ validUntil: bigint;
285
328
  orderId: string;
286
329
  }): Promise<`0x${string}`>;
287
330
  /** Per-call cap. false ⇒ the caller asked to skip rather than throw. */
@@ -1 +1 @@
1
- {"version":3,"file":"aifp1.d.ts","sourceRoot":"","sources":["../src/aifp1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aifp1.d.ts","sourceRoot":"","sources":["../src/aifp1.ts"],"names":[],"mappings":"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"}
package/dist/aifp1.js CHANGED
@@ -69,6 +69,49 @@ export class Aifp1PayError extends Aifp1Error {
69
69
  /** The gateway rejected a receipt we believed covered the request. */
70
70
  export class Aifp1ReceiptRejectedError extends Aifp1Error {
71
71
  }
72
+ export function describeQuote(q) {
73
+ const ns = q.native_settlement;
74
+ const pay = ns
75
+ ? { amount: formatUnits(ns.total_wei, ns.decimals), asset: ns.asset }
76
+ : null;
77
+ // Fee as basis points, from the split the quote already carries. Stated so the
78
+ // agent sees the rate, not just the total — the same reason the 402 does.
79
+ let feeBps = null;
80
+ try {
81
+ const total = BigInt(q.settlement.gross_units);
82
+ const merchant = BigInt(q.settlement.merchant_units);
83
+ if (total > 0n)
84
+ feeBps = Number(((total - merchant) * 10000n) / total);
85
+ }
86
+ catch { /* leave null rather than guess */ }
87
+ const where = q.scope === "merchant" ? `anything on ${q.merchant_id}`
88
+ : q.scope === "prefix" ? `any path under ${q.resource}`
89
+ : q.resource;
90
+ const payPart = pay ? `${pay.amount} ${pay.asset}` : `$${q.amount}`;
91
+ const headline = `Pay ${payPart} ($${q.amount}) for ${q.requests} request${q.requests === 1 ? "" : "s"} ` +
92
+ `to ${where}` +
93
+ (feeBps != null ? ` (incl. ${(feeBps / 100).toFixed(2)}% fee)` : "") +
94
+ `, valid until ${q.expires_at}.`;
95
+ return {
96
+ headline,
97
+ amount_usd: q.amount,
98
+ pay,
99
+ requests: q.requests,
100
+ unit_quota: q.unit_quota,
101
+ scope: q.scope,
102
+ resource: q.resource,
103
+ expires_at: q.expires_at,
104
+ fee_bps: feeBps,
105
+ };
106
+ }
107
+ /** wei/lamports → a decimal string with the asset's own decimals, no float. */
108
+ function formatUnits(raw, decimals) {
109
+ const n = BigInt(raw);
110
+ const base = 10n ** BigInt(decimals);
111
+ const whole = n / base;
112
+ const frac = (n % base).toString().padStart(decimals, "0").replace(/0+$/, "");
113
+ return frac ? `${whole}.${frac}` : `${whole}`;
114
+ }
72
115
  // ── Scope, ported from the server ─────────────────────────────────────────
73
116
  //
74
117
  // backend/aifp/scope.js decides whether a receipt covers a request, and this
@@ -344,6 +387,30 @@ function resolveScope(opts, challenge) {
344
387
  resource: scope === "prefix" ? prefixHint(challenge.resource) : challenge.resource,
345
388
  };
346
389
  }
390
+ function validateCanonicalQuoteEconomics(quote) {
391
+ try {
392
+ const s = quote.settlement;
393
+ const gross = BigInt(s.gross_units);
394
+ const payer = BigInt(s.payer_total_units);
395
+ const total = BigInt(s.total_units);
396
+ const merchant = BigInt(s.merchant_units);
397
+ const protocol = BigInt(s.protocol_fee_units);
398
+ const creator = BigInt(s.creator_units);
399
+ const expectedProtocol = gross / 100n;
400
+ if (s.fee_on_top !== false
401
+ || gross <= 0n
402
+ || payer !== gross
403
+ || total !== gross
404
+ || creator !== 0n
405
+ || protocol !== expectedProtocol
406
+ || merchant !== gross - expectedProtocol) {
407
+ throw new Error("split mismatch");
408
+ }
409
+ }
410
+ catch {
411
+ throw new Aifp1QuoteError(`quote ${quote.quote_id} does not implement canonical AIFP-1 gross economics (payer 100%, merchant 99%, protocol 1%, creator 0%)`);
412
+ }
413
+ }
347
414
  /** Is this response the AIFP-1 paywall asking for money? */
348
415
  function isAifp1Challenge(body) {
349
416
  const b = body;
@@ -469,6 +536,11 @@ export async function aifp1Fetch(deps, url, init = {}, opts = {}) {
469
536
  if (quote.merchant_id !== challenge.merchant_id) {
470
537
  throw new Aifp1QuoteError(`quote ${quote.quote_id} is for merchant ${quote.merchant_id} but ${site} refused as ${challenge.merchant_id} — refusing to pay`);
471
538
  }
539
+ validateCanonicalQuoteEconomics(quote);
540
+ const quoteExpiryMs = Date.parse(quote.expires_at);
541
+ if (!Number.isFinite(quoteExpiryMs) || quoteExpiryMs <= Date.now()) {
542
+ throw new Aifp1QuoteError(`quote ${quote.quote_id} is expired or has invalid expires_at`);
543
+ }
472
544
  // 3. Budget. The quote states the batch total in USD, so both caps are
473
545
  // checked against the real figure, before anything is signed.
474
546
  const amountUsd = Number(quote.amount);
@@ -511,15 +583,35 @@ export async function aifp1Fetch(deps, url, init = {}, opts = {}) {
511
583
  throw new Aifp1QuoteError(`quote ${quote.quote_id} states total_wei ${native.total_wei} at rate "${native.rate_usd}" — `
512
584
  + `unusable, and the caps were checked against $${amountUsd}`);
513
585
  }
514
- // 2% covers the fee-inclusive rounding the splitter does on each leg and a
586
+ // 2% covers native conversion rounding and a
515
587
  // rate printed to six places; anything wider is a disagreement, not drift.
516
588
  if (Math.abs(weiUsd - amountUsd) > Math.max(0.02 * amountUsd, 1e-6)) {
517
589
  throw new Aifp1QuoteError(`quote ${quote.quote_id} would debit ${native.total_wei} wei ≈ $${weiUsd.toFixed(6)} `
518
590
  + `but states $${amountUsd} — refusing to sign a payment the budget caps did not see`);
519
591
  }
592
+ const nativeGross = BigInt(native.gross_wei ?? native.total_wei);
593
+ const nativeMerchant = BigInt(native.merchant_wei);
594
+ const nativeTreasury = BigInt(native.treasury_wei);
595
+ const nativeCreator = BigInt(native.creator_wei);
596
+ if (native.settlement_semantics !== "gross-inclusive"
597
+ || BigInt(native.payer_total_wei ?? native.total_wei) !== nativeGross
598
+ || BigInt(native.total_wei) !== nativeGross
599
+ || nativeCreator !== 0n
600
+ || nativeTreasury !== nativeGross / 100n
601
+ || nativeMerchant !== nativeGross - nativeTreasury) {
602
+ throw new Aifp1QuoteError(`quote ${quote.quote_id} native settlement does not match canonical AIFP-1 gross split`);
603
+ }
604
+ const validUntil = BigInt(native.valid_until ?? Math.floor(quoteExpiryMs / 1000));
605
+ if (validUntil !== BigInt(Math.floor(quoteExpiryMs / 1000))) {
606
+ throw new Aifp1QuoteError(`quote ${quote.quote_id} valid_until does not match expires_at`);
607
+ }
520
608
  const txRef = await deps.settle({
521
609
  merchantWallet: quote.pay_to.polygon,
522
- totalWei: BigInt(native.total_wei),
610
+ grossWei: nativeGross,
611
+ merchantWei: nativeMerchant,
612
+ treasuryWei: nativeTreasury,
613
+ creatorWei: nativeCreator,
614
+ validUntil,
523
615
  // The binding the server verifies on-chain: the Payment event's orderId
524
616
  // must equal the quote id, or /v1/pay answers order_id_mismatch.
525
617
  orderId: quote.quote_id,
package/dist/aifp1.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"aifp1.js","sourceRoot":"","sources":["../src/aifp1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aifp1.js","sourceRoot":"","sources":["../src/aifp1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type Chain } from "viem";
2
+ export declare const botchain: Chain;
3
+ export declare const xrplevm: Chain;
4
+ //# sourceMappingURL=chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,MAAM,CAAC;AAE/C,eAAO,MAAM,QAAQ,EAAE,KAQrB,CAAC;AAEH,eAAO,MAAM,OAAO,EAAE,KAQpB,CAAC"}
package/dist/chains.js ADDED
@@ -0,0 +1,24 @@
1
+ // BOT Chain (677) and XRPL EVM (1440000) are not shipped with viem/chains, so
2
+ // they are defined here rather than in each module that needs them. Two
3
+ // definitions of the same chain is a drift risk: they would be edited
4
+ // separately and eventually disagree about an RPC or a chain id.
5
+ import { defineChain } from "viem";
6
+ export const botchain = defineChain({
7
+ id: 677,
8
+ name: "BOT Chain",
9
+ nativeCurrency: { name: "BOT", symbol: "BOT", decimals: 18 },
10
+ rpcUrls: { default: { http: ["https://rpc.botchain.ai"] } },
11
+ blockExplorers: {
12
+ default: { name: "BOT Chain Explorer", url: "https://scan.botchain.ai" },
13
+ },
14
+ });
15
+ export const xrplevm = defineChain({
16
+ id: 1440000,
17
+ name: "XRPL EVM",
18
+ nativeCurrency: { name: "XRP", symbol: "XRP", decimals: 18 },
19
+ rpcUrls: { default: { http: ["https://rpc.xrplevm.org"] } },
20
+ blockExplorers: {
21
+ default: { name: "XRPL EVM Explorer", url: "https://explorer.xrplevm.org" },
22
+ },
23
+ });
24
+ //# sourceMappingURL=chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,OAAO,EAAE,WAAW,EAAc,MAAM,MAAM,CAAC;AAE/C,MAAM,CAAC,MAAM,QAAQ,GAAU,WAAW,CAAC;IACzC,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,WAAW;IACjB,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5D,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE;IAC3D,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,0BAA0B,EAAE;KACzE;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAU,WAAW,CAAC;IACxC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,UAAU;IAChB,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5D,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE;IAC3D,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,8BAA8B,EAAE;KAC5E;CACF,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { Facilitator, FacilitatorClass } from "./base.js";
2
2
  /**
3
- * Order matters: most-specific detector first. A response that matches
4
- * AiFinPay's body schema is also technically a 402, so we try AiFinPay
5
- * before falling back to header-based checks.
3
+ * Order matters: most-specific detector first. Standard x402 is checked before
4
+ * the historical Coinbase compatibility adapter because HTTP header names are
5
+ * case-insensitive and both may observe PAYMENT-REQUIRED.
6
6
  */
7
7
  export declare const REGISTERED: FacilitatorClass[];
8
8
  export declare function detectFacilitator(resp: Response, override?: string): Promise<Facilitator>;
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/facilitators/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAI/D;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,EAIxC,CAAC;AAMF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,QAAQ,EACd,QAAQ,GAAE,MAAe,GACxB,OAAO,CAAC,WAAW,CAAC,CA6CtB"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/facilitators/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAI/D;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,EAIxC,CAAC;AAMF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,QAAQ,EACd,QAAQ,GAAE,MAAe,GACxB,OAAO,CAAC,WAAW,CAAC,CAuBtB"}
@@ -3,9 +3,9 @@ import { AiFinPayFacilitator } from "./aifinpay.js";
3
3
  import { CoinbaseX402Facilitator } from "./coinbase.js";
4
4
  import { StandardX402Facilitator } from "./standard-x402.js";
5
5
  /**
6
- * Order matters: most-specific detector first. A response that matches
7
- * AiFinPay's body schema is also technically a 402, so we try AiFinPay
8
- * before falling back to header-based checks.
6
+ * Order matters: most-specific detector first. Standard x402 is checked before
7
+ * the historical Coinbase compatibility adapter because HTTP header names are
8
+ * case-insensitive and both may observe PAYMENT-REQUIRED.
9
9
  */
10
10
  export const REGISTERED = [
11
11
  AiFinPayFacilitator,
@@ -22,25 +22,6 @@ export async function detectFacilitator(resp, override = "auto") {
22
22
  }
23
23
  return new cls();
24
24
  }
25
- // Checked BEFORE the loop, and that ordering is the whole point.
26
- //
27
- // The Coinbase facilitator detects a `PAYMENT-REQUIRED` header, and the v2
28
- // standard uses `payment-required` — the same header, since HTTP header
29
- // names are case-insensitive. So Coinbase claims a real v2 response, wins
30
- // the loop, and then fails somewhere deep in buildAuth with an error about
31
- // its own internals. Anyone debugging that goes looking at Coinbase, which
32
- // has nothing to do with it.
33
- //
34
- // Verified against https://x402.org/protected on 2026-08-10: without this,
35
- // detectFacilitator returns coinbase-x402 for an endpoint that is not
36
- // Coinbase's flavour at all.
37
- if (StandardX402Facilitator.isUnsupportedV2(resp)) {
38
- throw new UnsupportedFacilitatorError("this endpoint speaks x402 version 2 (payment data in the " +
39
- "`payment-required` header), which this SDK does not implement yet — " +
40
- "its standard-x402 facilitator targets version 1, where the payment " +
41
- "data is in the response body. The agent cannot pay this endpoint. " +
42
- "Tracking: Obsidian/proposals/2026-08-10-x402-interop-scoping.md");
43
- }
44
25
  for (const cls of REGISTERED) {
45
26
  if (await cls.detect(resp))
46
27
  return new cls();
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/facilitators/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAuB;IAC5C,mBAAmB;IACnB,uBAAuB;IACvB,uBAAuB;CACxB,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACzC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAc,EACd,WAAmB,MAAM;IAEzB,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,2BAA2B,CACnC,kCAAkC,QAAQ,KAAK;gBAC7C,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7C,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAGD,iEAAiE;IACjE,EAAE;IACF,2EAA2E;IAC3E,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,6BAA6B;IAC7B,EAAE;IACF,2EAA2E;IAC3E,sEAAsE;IACtE,6BAA6B;IAC7B,IAAI,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,2BAA2B,CACnC,2DAA2D;YACzD,sEAAsE;YACtE,qEAAqE;YACrE,oEAAoE;YACpE,iEAAiE,CACpE,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,2BAA2B,CACnC,oDAAoD;QAClD,WAAW,IAAI,CAAC,MAAM,IAAI;QAC1B,YAAY,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/facilitators/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAuB;IAC5C,mBAAmB;IACnB,uBAAuB;IACvB,uBAAuB;CACxB,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACzC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAc,EACd,WAAmB,MAAM;IAEzB,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,2BAA2B,CACnC,kCAAkC,QAAQ,KAAK;gBAC7C,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7C,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,2BAA2B,CACnC,oDAAoD;QAClD,WAAW,IAAI,CAAC,MAAM,IAAI;QAC1B,YAAY,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnD,CAAC;AACJ,CAAC"}