{
  "data": {
    "a": {
      "slug": "ack-pay",
      "name": "ACK-Pay (Agent Commerce Kit)",
      "vendor": "Catena Labs, Inc.",
      "vendorUrl": "https://www.agentcommercekit.com",
      "kind": "protocol",
      "category": "pay-per-call",
      "summary": "ACK-Pay is the open payment protocol in Agent Commerce Kit from Catena Labs. A server returns a signed Payment Request, the client pays through a Payment Service and retries with a receipt issued as a W3C Verifiable Credential.",
      "url": "https://www.anchorterminal.com/tools/ack-pay",
      "markdownUrl": "https://www.anchorterminal.com/tools/ack-pay.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ack-pay.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ack-pay.json",
      "repo": "https://github.com/agentcommercekit/ack",
      "license": "MIT (docs and SDK)",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@agentcommercekit/ack-pay"
        },
        {
          "registry": "npm",
          "name": "agentcommercekit"
        }
      ],
      "auth": "none",
      "authNotes": "No account or key. Servers sign Payment Requests with a key bound to a DID, and Receipt Services sign receipts that servers check against their own list of trusted issuer DIDs. Identity checks between parties can use ACK-ID.",
      "pricing": "free",
      "pricingNotes": "No protocol fee, and the SDK is MIT with nothing to buy. Settlement costs depend on the Payment Service and rail a deployment chooses. The docs say conversion and bridging fees should be shown to the client. No public Payment Service with published prices was found.",
      "priceSummary": "Free",
      "where": "spec",
      "x402": {
        "level": "no",
        "evidence": "A payment protocol, not a tool that accepts payment. The docs describe x402 as fitting the ACK-Pay pattern and list acting as an x402 facilitator as planned research (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 159,
        "npmWeekly": 54,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://www.agentcommercekit.com/ack-pay/introduction",
      "llmsTxt": "https://www.agentcommercekit.com/llms.txt",
      "capabilities": [
        "payments.protocol",
        "payments.stablecoin"
      ],
      "tags": [
        "protocol",
        "verifiable-credentials",
        "did",
        "receipts",
        "typescript",
        "mit",
        "llms-txt"
      ],
      "lastRelease": "2026-08-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.6,
        "grade": "D",
        "agentReady": false,
        "rank": 0,
        "ranked": false,
        "notRankedWhy": "A protocol, graded on the same scale but not ranked against tools",
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 47,
          "maintenance": 53,
          "payments": 77,
          "reliability": 38,
          "schema": 66,
          "security": 58,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-08-04, @agentcommercekit/ack-pay 0.11.0 fixed a revocation check that treated any failure to fetch or parse the status list as not revoked, so `verifyPaymentReceipt` accepted revoked credentials. The changelog describes the flaw in full and the repository has no published advisory. Fixed and documented, so we deduct 2 (https://github.com/agentcommercekit/ack/blob/main/packages/ack-pay/CHANGELOG.md, https://github.com/agentcommercekit/ack/security/advisories)"
        ],
        "verdict": "Signed payment requests and receipts that any server can verify offline against a list of trusted issuers, with an MIT TypeScript SDK and passing CI. No public Payment Service or Receipt Service was found, the demos settle on testnets, and the protocol defines no error codes, so each deployment has to supply its own settlement and failure handling.",
        "bestFor": "Teams that want receipts a server can verify offline and a single request format across card and stablecoin rails, and that will run their own payment and receipt services.",
        "strengths": [
          "Receipts are W3C Verifiable Credentials signed by a Receipt Service, so a server checks payment without calling the payment system",
          "One Payment Request can list several options, such as USDC on Base and a card payment through Stripe, each with its own Payment Service",
          "Docs and code are MIT, with llms.txt and a Markdown copy of every docs page",
          "The SDK exports Valibot and Zod schemas for the request, the option and the receipt claim",
          "CI builds, lints and tests on every push, and the last five runs on main on the page read passed"
        ],
        "weaknesses": [
          "No public Payment Service or Receipt Service was found. The docs use example.com hosts and the demo pays on Base Sepolia, Solana devnet or a simulated Stripe flow",
          "The protocol defines no error codes, idempotency key or retry header. The operations page tells implementers to design their own",
          "One SDK, in TypeScript, at 0.11.0. One release in the last 90 days, with nine changesets waiting on main, including a receipt option check",
          "0.11.0 fixed a revocation check that accepted revoked credentials when the status list was unreachable. No GitHub advisory was published",
          "Open issue 222 of 21 September 2026 reports that `expiresAt` on a Payment Request is never enforced",
          "No terms, privacy policy, status page or security.txt on agentcommercekit.com"
        ],
        "agentNotes": [
          "Verify `paymentRequestToken` and read amount, recipient and currency from the signed payload, not from `description`",
          "Pass `trustedReceiptIssuers` to `verifyPaymentReceipt`. Without a trusted issuer list any DID can sign a receipt",
          "Check amount, recipient and receipt reuse yourself. The SDK's claim verifier checks only the shape of the receipt",
          "Use `@agentcommercekit/ack-pay` 0.11.0 or later, because earlier releases treated an unreachable revocation list as not revoked",
          "Plan for a Payment Service and a Receipt Service you run or choose. The protocol names the roles and no public one was found"
        ],
        "metrics": {
          "kind": "spec",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.6
          }
        ],
        "editorialScores": {
          "ergonomics": 47,
          "maintenance": 53,
          "payments": 77,
          "reliability": 38,
          "schema": 66,
          "security": 58,
          "transparency": 63
        },
        "provenanceScore": 57
      },
      "connect": {
        "install": "npm i @agentcommercekit/ack-pay"
      },
      "letme": {
        "capability": "https://letme.dev/payments.protocol",
        "tool": "https://letme.dev/ack-pay"
      },
      "area": "payments",
      "provenance": {
        "legalEntity": "Catena Labs, Inc.",
        "domain": "agentcommercekit.com",
        "domainRegistered": "2025-05-02",
        "domainNote": "The docs site names no legal entity. Catena Labs, Inc. is the copyright holder in the repository's LICENCE file and the author in the package manifests. No terms or privacy policy were found for the docs site, so the MIT licence stands in.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/agentcommercekit/ack/blob/main/packages/ack-pay/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "score": 57
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ack-pay.json",
      "live": {
        "slug": "ack-pay",
        "versions": [
          {
            "registry": "github",
            "name": "agentcommercekit/ack",
            "version": "agentcommercekit@0.11.0",
            "released": "2026-08-04",
            "seenAt": "2026-10-09T16:36:08.43967526Z"
          },
          {
            "registry": "npm",
            "name": "@agentcommercekit/ack-pay",
            "version": "0.11.0",
            "seenAt": "2026-10-09T16:36:05.977895912Z"
          },
          {
            "registry": "npm",
            "name": "agentcommercekit",
            "version": "0.11.0",
            "seenAt": "2026-10-09T16:36:06.897286657Z"
          }
        ],
        "githubStars": 159,
        "npmWeekly": 54,
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/agentcommercekit/ack/main/packages/ack-pay/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:44:49.200254285Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a86c2ee19456"
          }
        ],
        "updatedAt": "2026-10-09T18:44:49.200254285Z"
      }
    },
    "answer": "L402 scores 60.5 (C) on agent readiness against ACK-Pay (Agent Commerce Kit)'s 53.6 (D), and leads in 3 of 7 scored categories. ACK-Pay (Agent Commerce Kit) leads on maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "slug": "l402",
      "name": "L402",
      "vendor": "Lightning Labs",
      "vendorUrl": "https://l402.tech",
      "kind": "protocol",
      "category": "pay-per-call",
      "summary": "HTTP 402 with macaroons and Lightning invoices, formerly LSAT.",
      "url": "https://www.anchorterminal.com/tools/l402",
      "markdownUrl": "https://www.anchorterminal.com/tools/l402.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/l402.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/l402.json",
      "repo": "https://github.com/lightninglabs/L402",
      "license": "MIT (per l402.tech)",
      "transports": [],
      "packages": [
        {
          "registry": "go",
          "name": "github.com/lightninglabs/aperture"
        },
        {
          "registry": "go",
          "name": "github.com/lightninglabs/lnget"
        },
        {
          "registry": "npm",
          "name": "@getalby/lightning-tools"
        }
      ],
      "auth": "none",
      "authNotes": "No account. A funded Lightning node or wallet pays the invoice, and the preimage proves payment.",
      "pricing": "free",
      "pricingNotes": "No protocol fee. The payer pays Lightning routing fees.",
      "priceSummary": "Free",
      "where": "spec",
      "x402": {
        "level": "no",
        "evidence": "A payment protocol, not a tool that accepts payment.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 89,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://docs.lightning.engineering/the-lightning-network/l402",
      "capabilities": [
        "payments.protocol",
        "payments.lightning"
      ],
      "tags": [
        "protocol",
        "bitcoin",
        "lightning",
        "account-free"
      ],
      "lastRelease": "2026-03-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.5,
        "grade": "C",
        "agentReady": false,
        "rank": 0,
        "ranked": false,
        "notRankedWhy": "A protocol, graded on the same scale but not ranked against tools",
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 61,
          "maintenance": 27,
          "payments": 97,
          "reliability": 55,
          "schema": 65,
          "security": 58,
          "transparency": 50
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Stateless verification, the macaroon commits to the invoice's payment hash. Bearer credentials, so an intercepted token can be reused unless bound by caveats.",
        "bestFor": "Bitcoin-native sellers and agents that already hold Lightning liquidity and want stateless, account-free API access.",
        "strengths": [
          "Stateless verification, the macaroon commits to the invoice's payment hash",
          "Caveats let a client narrow a token's expiry and scope before handing it on",
          "A short RFC-style spec plus an agent spec of about 560 tokens",
          "Aperture serves L402 and MPP from one proxy",
          "No account and no protocol fee"
        ],
        "weaknesses": [
          "Bearer credentials, so an intercepted token can be reused unless bound by caveats",
          "No tagged release since 25 March 2026, and l402sdk has never been released",
          "No `LICENSE` file in the spec repository",
          "No error codes beyond 402 and 401",
          "Named production users are Lightning Labs' own Loop and Pool"
        ],
        "agentNotes": [
          "Run lnget with `--max-cost` and `--max-fee` set",
          "Check the invoice amount before paying, the server can ask for anything",
          "Accept both `LSAT` and `L402` in challenges, servers still send both",
          "Reuse a paid token for later calls until its caveats expire rather than paying again",
          "Keep macaroons and preimages out of logs, they're bearer credentials"
        ],
        "metrics": {
          "kind": "spec",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.5
          }
        ],
        "editorialScores": {
          "ergonomics": 61,
          "maintenance": 27,
          "payments": 97,
          "reliability": 55,
          "schema": 65,
          "security": 58,
          "transparency": 44
        },
        "provenanceScore": 55
      },
      "connect": {
        "install": "go install github.com/lightninglabs/lnget@latest"
      },
      "letme": {
        "capability": "https://letme.dev/payments.protocol",
        "tool": "https://letme.dev/l402"
      },
      "area": "payments",
      "provenance": {
        "legalEntity": "Lightning Labs, Inc.",
        "domain": "lightning.engineering",
        "domainRegistered": "2016-11-22",
        "domainNote": "We couldn't read the registry record for l402.tech, so this uses Lightning Labs' own domain.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-09-26",
        "score": 55
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/l402.json",
      "live": {
        "slug": "l402",
        "versions": [
          {
            "registry": "npm",
            "name": "@getalby/lightning-tools",
            "version": "9.0.1",
            "seenAt": "2026-10-09T17:01:01.951496785Z"
          }
        ],
        "githubStars": 91,
        "npmWeekly": 24904,
        "securityTxt": {
          "url": "https://lightning.engineering/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:12.241375178Z"
        },
        "domain": {
          "domain": "lightning.engineering",
          "registered": "2016-11-22",
          "source": "https://rdap.identitydigital.services/rdap/domain/lightning.engineering",
          "checkedAt": "2026-10-04T13:06:44.931012068Z"
        },
        "updatedAt": "2026-10-09T17:01:02.365109343Z"
      }
    },
    "facts": [
      {
        "a": "Payment protocol",
        "b": "Payment protocol",
        "name": "Kind"
      },
      {
        "a": "Catena Labs, Inc.",
        "b": "Lightning Labs",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (docs and SDK)",
        "b": "MIT (per l402.tech)",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-04",
        "b": "2026-03-25",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "159 stars, 54 npm/wk",
        "b": "89 stars",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "L402 scores 60.5 (C) on agent readiness against ACK-Pay (Agent Commerce Kit)'s 53.6 (D), and leads in 3 of 7 scored categories. ACK-Pay (Agent Commerce Kit) leads on maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, ACK-Pay (Agent Commerce Kit) or L402?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Maintenance \u0026 community, 53 against 27",
          "Transparency \u0026 trust, 60 against 50"
        ],
        "also": null,
        "goodFor": "Teams that want receipts a server can verify offline and a single request format across card and stablecoin rails, and that will run their own payment and receipt services.",
        "slug": "ack-pay",
        "watchFor": "No public Payment Service or Receipt Service was found. The docs use example.com hosts and the demo pays on Base Sepolia, Solana devnet or a simulated Stripe flow"
      },
      {
        "aheadOn": [
          "Reliability, 55 against 38",
          "Agent ergonomics, 61 against 47",
          "Payments \u0026 pricing, 97 against 77"
        ],
        "also": null,
        "goodFor": "Bitcoin-native sellers and agents that already hold Lightning liquidity and want stateless, account-free API access.",
        "slug": "l402",
        "watchFor": "Bearer credentials, so an intercepted token can be reused unless bound by caveats"
      }
    ],
    "job": {
      "capability": "payments.protocol",
      "name": "Agent payment protocols"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/ack-pay-vs-acp.json",
        "title": "ACK-Pay (Agent Commerce Kit) vs Agentic Commerce Protocol (ACP)",
        "url": "https://www.anchorterminal.com/compare/ack-pay-vs-acp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ack-pay-vs-ap2.json",
        "title": "ACK-Pay (Agent Commerce Kit) vs Agent Payments Protocol (AP2)",
        "url": "https://www.anchorterminal.com/compare/ack-pay-vs-ap2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ack-pay-vs-mpp.json",
        "title": "ACK-Pay (Agent Commerce Kit) vs Machine Payments Protocol (MPP)",
        "url": "https://www.anchorterminal.com/compare/ack-pay-vs-mpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ack-pay-vs-x402.json",
        "title": "ACK-Pay (Agent Commerce Kit) vs x402",
        "url": "https://www.anchorterminal.com/compare/ack-pay-vs-x402"
      },
      {
        "json": "https://www.anchorterminal.com/compare/acp-vs-l402.json",
        "title": "Agentic Commerce Protocol (ACP) vs L402",
        "url": "https://www.anchorterminal.com/compare/acp-vs-l402"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ap2-vs-l402.json",
        "title": "Agent Payments Protocol (AP2) vs L402",
        "url": "https://www.anchorterminal.com/compare/ap2-vs-l402"
      },
      {
        "json": "https://www.anchorterminal.com/compare/l402-vs-mpp.json",
        "title": "L402 vs Machine Payments Protocol (MPP)",
        "url": "https://www.anchorterminal.com/compare/l402-vs-mpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/l402-vs-x402.json",
        "title": "L402 vs x402",
        "url": "https://www.anchorterminal.com/compare/l402-vs-x402"
      }
    ],
    "scores": [
      {
        "ack-pay": 38,
        "by": 17,
        "edge": "l402",
        "key": "reliability",
        "l402": 55,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "ack-pay": 66,
        "by": 1,
        "edge": "ack-pay",
        "key": "schema",
        "l402": 65,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "ack-pay": 47,
        "by": 14,
        "edge": "l402",
        "key": "ergonomics",
        "l402": 61,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "ack-pay": 58,
        "by": 0,
        "edge": "",
        "key": "security",
        "l402": 58,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "ack-pay": 77,
        "by": 20,
        "edge": "l402",
        "key": "payments",
        "l402": 97,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "ack-pay": 53,
        "by": 26,
        "edge": "ack-pay",
        "key": "maintenance",
        "l402": 27,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "ack-pay": 60,
        "by": 10,
        "edge": "ack-pay",
        "key": "transparency",
        "l402": 50,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "L402 scores 60.5 (C) on agent readiness against ACK-Pay (Agent Commerce Kit)'s 53.6 (D), and leads in 3 of 7 scored categories. ACK-Pay (Agent Commerce Kit) leads on maintenance \u0026 community and transparency \u0026 trust. Both do agent payment protocols.",
    "verdicts": {
      "ack-pay": "Signed payment requests and receipts that any server can verify offline against a list of trusted issuers, with an MIT TypeScript SDK and passing CI. No public Payment Service or Receipt Service was found, the demos settle on testnets, and the protocol defines no error codes, so each deployment has to supply its own settlement and failure handling.",
      "l402": "Stateless verification, the macaroon commits to the invoice's payment hash. Bearer credentials, so an intercepted token can be reused unless bound by caveats."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/ack-pay-vs-l402",
    "json": "https://www.anchorterminal.com/compare/ack-pay-vs-l402.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/ack-pay-vs-l402.md",
    "slim": "https://www.anchorterminal.com/compare/ack-pay-vs-l402.min.md"
  },
  "markdown": "L402 scores 60.5 (C) on agent readiness against ACK-Pay (Agent Commerce Kit)'s 53.6 (D), and leads in 3 of 7 scored categories. ACK-Pay (Agent Commerce Kit) leads on maintenance \u0026 community and transparency \u0026 trust. Both do agent payment protocols.\n\n- ACK-Pay (Agent Commerce Kit): grade D, 53.6/100, rank graded, not ranked against tools. Markdown https://www.anchorterminal.com/tools/ack-pay.md · JSON https://www.anchorterminal.com/api/v1/tools/ack-pay.json\n- L402: grade C, 60.5/100, rank graded, not ranked against tools. Markdown https://www.anchorterminal.com/tools/l402.md · JSON https://www.anchorterminal.com/api/v1/tools/l402.json\n- All 14 pay per call comparisons: https://www.anchorterminal.com/compare/pay-per-call/index.md\n\n## Which one, for what\n\n### ACK-Pay (Agent Commerce Kit) (D)\n\nGood for: Teams that want receipts a server can verify offline and a single request format across card and stablecoin rails, and that will run their own payment and receipt services.\n\nAhead on:\n- Maintenance \u0026 community, 53 against 27\n- Transparency \u0026 trust, 60 against 50\n\nWatch for: No public Payment Service or Receipt Service was found. The docs use example.com hosts and the demo pays on Base Sepolia, Solana devnet or a simulated Stripe flow\n\n### L402 (C)\n\nGood for: Bitcoin-native sellers and agents that already hold Lightning liquidity and want stateless, account-free API access.\n\nAhead on:\n- Reliability, 55 against 38\n- Agent ergonomics, 61 against 47\n- Payments \u0026 pricing, 97 against 77\n\nWatch for: Bearer credentials, so an intercepted token can be reused unless bound by caveats\n\n\n## Score by category\n\n| Category | Weight | ACK-Pay (Agent Commerce Kit) | L402 | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 38 | 55 | L402 +17 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 66 | 65 | ACK-Pay (Agent Commerce Kit) +1 |\n| Agent ergonomics | 13% (16.2 this run) | 47 | 61 | L402 +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 58 | 58 | even |\n| Payments \u0026 pricing | 10% (12.5 this run) | 77 | 97 | L402 +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 53 | 27 | ACK-Pay (Agent Commerce Kit) +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 50 | ACK-Pay (Agent Commerce Kit) +10 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **53.6 · D** | **60.5 · C** | |\n\n## Facts side by side\n\n| Fact | ACK-Pay (Agent Commerce Kit) | L402 |\n| --- | --- | --- |\n| Kind | Payment protocol | Payment protocol |\n| Vendor | Catena Labs, Inc. | Lightning Labs |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT (docs and SDK) | MIT (per l402.tech) |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-08-04 | 2026-03-25 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 159 stars, 54 npm/wk | 89 stars |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**ACK-Pay (Agent Commerce Kit).** Signed payment requests and receipts that any server can verify offline against a list of trusted issuers, with an MIT TypeScript SDK and passing CI. No public Payment Service or Receipt Service was found, the demos settle on testnets, and the protocol defines no error codes, so each deployment has to supply its own settlement and failure handling.\n\n**L402.** Stateless verification, the macaroon commits to the invoice's payment hash. Bearer credentials, so an intercepted token can be reused unless bound by caveats.\n\n## Before you call either\n\n### ACK-Pay (Agent Commerce Kit)\n\n1. Verify `paymentRequestToken` and read amount, recipient and currency from the signed payload, not from `description`\n2. Pass `trustedReceiptIssuers` to `verifyPaymentReceipt`. Without a trusted issuer list any DID can sign a receipt\n3. Check amount, recipient and receipt reuse yourself. The SDK's claim verifier checks only the shape of the receipt\n4. Use `@agentcommercekit/ack-pay` 0.11.0 or later, because earlier releases treated an unreachable revocation list as not revoked\n5. Plan for a Payment Service and a Receipt Service you run or choose. The protocol names the roles and no public one was found\n\n### L402\n\n1. Run lnget with `--max-cost` and `--max-fee` set\n2. Check the invoice amount before paying, the server can ask for anything\n3. Accept both `LSAT` and `L402` in challenges, servers still send both\n4. Reuse a paid token for later calls until its caveats expire rather than paying again\n5. Keep macaroons and preimages out of logs, they're bearer credentials\n\n## Questions\n\n### Which is better for AI agents, ACK-Pay (Agent Commerce Kit) or L402?\n\nL402 scores 60.5 (C) on agent readiness against ACK-Pay (Agent Commerce Kit)'s 53.6 (D), and leads in 3 of 7 scored categories. ACK-Pay (Agent Commerce Kit) leads on maintenance \u0026 community and transparency \u0026 trust.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/ack-pay-vs-l402.json, and with the fewest tokens: https://www.anchorterminal.com/compare/ack-pay-vs-l402.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"ack-pay\", \"b\": \"l402\"}`. From a terminal: `anchor compare ack-pay l402`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/ack-pay.json and https://www.anchorterminal.com/api/v1/tools/l402.json\n\n## Other comparisons with ACK-Pay (Agent Commerce Kit) or L402\n\n- [ACK-Pay (Agent Commerce Kit) vs Agentic Commerce Protocol (ACP)](https://www.anchorterminal.com/compare/ack-pay-vs-acp.md)\n- [ACK-Pay (Agent Commerce Kit) vs Agent Payments Protocol (AP2)](https://www.anchorterminal.com/compare/ack-pay-vs-ap2.md)\n- [ACK-Pay (Agent Commerce Kit) vs Machine Payments Protocol (MPP)](https://www.anchorterminal.com/compare/ack-pay-vs-mpp.md)\n- [ACK-Pay (Agent Commerce Kit) vs x402](https://www.anchorterminal.com/compare/ack-pay-vs-x402.md)\n- [Agentic Commerce Protocol (ACP) vs L402](https://www.anchorterminal.com/compare/acp-vs-l402.md)\n- [Agent Payments Protocol (AP2) vs L402](https://www.anchorterminal.com/compare/ap2-vs-l402.md)\n- [L402 vs Machine Payments Protocol (MPP)](https://www.anchorterminal.com/compare/l402-vs-mpp.md)\n- [L402 vs x402](https://www.anchorterminal.com/compare/l402-vs-x402.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "ACK-Pay (Agent Commerce Kit) vs L402",
        "url": ""
      }
    ],
    "description": "L402 scores 60.5 (C) to ACK-Pay's 53.6 (D) for agent payment protocols. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "ACK-Pay (Agent Commerce Kit) D 53.6",
      "L402 C 60.5",
      "scores"
    ],
    "h1": "ACK-Pay (Agent Commerce Kit) vs L402",
    "image": "https://www.anchorterminal.com/assets/og/compare-ack-pay-vs-l402.png",
    "path": "/compare/ack-pay-vs-l402",
    "published": "2026-10-01",
    "section": "tools",
    "title": "ACK-Pay vs L402 for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/ack-pay-vs-l402"
  },
  "tokens": {
    "markdown": 1850,
    "slim": 530
  },
  "version": 1
}
