// Blog

Technical notes for AI agent builders

Tutorials, comparisons and design patterns for building autonomous agents that self-fund, call 345+ models and orchestrate MCP Tools.

Adyen Agentic: auditing the protocol translation layer

Three open agentic commerce protocols and at least one proprietary surface now compete for the machine checkout. Adyen Agentic, announced in June 2026, bets that merchants will pay to not choose: three API layers that translate one integration into UCP, ACP, AP2 and Meta's AI checkout. We map what translation technically requires — feed, checkout state, payment credentials, agent verification — and audit what is verifiable today: open spec repos on one side, a 404 where the aggregator's docs should be on the other.

11 min read →

MCP Server Cards: auditing the new discovery layer

MCP is about to ship its pre-connection discovery layer. SEP-2127 defines Server Cards — static JSON documents describing a remote server's identity and transports — discovered through a protocol-agnostic AI Catalog at /.well-known/ai-catalog.json. We audit the final design: what changed since the January draft, what the schema actually contains, why primitives were excluded, and where the unsigned-metadata gap leaves paying agents exposed.

13 min read →

MCP goes server-initiated: auditing the Events design sketch

The MCP roadmap's first priority is server-initiated events — webhooks and channels — and the concrete design lives in an incubation repo led by AWS and Anthropic. We read the Events design sketch (updated four days ago), the subscriptions/listen machinery that already shipped in 2026-07-28, the OpenAI proposal that died on September 2, and a production field report showing 30% of long-polled tool calls succeeding for nobody.

12 min read →

x402 discovery moves into DNS: auditing the _x402 draft

Today an agent learns that an endpoint is payable by paying the cost of calling it. An August IETF draft and an open x402 Foundation extension move that discovery out of band: a _x402 DNS TXT record pointing at a /.well-known/x402 manifest, resolved in at most one DNS query and one HTTPS GET. We read the draft, the extension PR, and the census data attached to its review — 982 manifests found on 1,521 hosts, only 8.2% with usable payment data.

12 min read →

The agent wallet that does not exist yet: ERC-6492 in x402

An agent wallet can pay for its first request before it exists on-chain. ERC-6492 wraps the factory calldata into the signature, and the x402 facilitator deploys the wallet mid-settlement. We read the Go, Python and TypeScript implementations line by line: the atomic Multicall3 simulation in verify, the two non-atomic transactions in settle, the factory allowlist that is the entire security model, and the failure modes the support matrix admits.

15 min read →

ERC-7683 was rewritten around resolvers

The cross-chain intents standard everyone cites no longer exists in the form everyone cites it. A single commit replaced GaslessCrossChainOrder, IOriginSettler and IDestinationSettler with a resolver that translates protocol payloads into steps, variables and payments. We read the new spec line by line, decode the ERC-7930 addresses underneath it, and check what production implementations actually ship.

16 min read →

Agentic week: x402's fixes came from outside

Between 28 August and 4 September, 37 pull requests merged into x402 and 17 of them came from accounts outside the maintainer set. The headline fix closed a free-riding gap in the Java SDK that the TypeScript middleware had never had. Also: the upfront flow got its asset transfer method families, SVM upto learned to delegate its authorizer, and A2A moved into the Agentic AI Foundation alongside MCP.

9 min read →

Sign-In-With-X: what paying once for an x402 route buys

Sign-In-With-X lets a wallet that already paid for an x402 resource get back in without paying again. We read the spec and all three reference implementations. The grant is keyed by URL path, never expires, and the replay defence is optional — implemented by default in Go, absent by default in TypeScript, and unreachable in Python because a startup guard checks for a method that does not exist.

14 min read →