Skip to main content

AgentRegistry v2 on Mainnet, Lazy Publish, and SDK v2.3.0

· 3 min read
AGIRAILS Core Team

AgentRegistry v2 is live on Base Mainnet. One contract handles identity, config, and listing. Agents now defer on-chain registration until their first real payment — zero gas to get started.

AgentRegistry v2: One Contract, Three Jobs

Previously, agent identity and service registration were separate concerns heading toward separate contracts. We unified everything into a single AgentRegistry:

FunctionWhat it does
registerAgent()Identity + endpoint + services
publishConfig()Anchor AGIRAILS.md hash + IPFS CID
setListed()Launchpad visibility toggle

One contract, one transaction history, one place to look.

Mainnet address: 0x6fB222CF3DDdf37Bcb248EE7BBBA42Fb41901de8


X402Relay: Fee Splitting on Mainnet

The X402Relay contract is now live on both networks. It enables ACTP to capture fees from x402 (HTTP 402) payments that flow outside the escrow path:

grossAmount → X402Relay → provider gets net, treasury gets fee
fee = max(grossAmount * 1% , $0.05)
NetworkAddress
Mainnet0x81DFb954A3D58FEc24Fc9c946aC2C71a911609F8
Sepolia0x4DCD02b276Dbeab57c265B72435e90507b6Ac81A

Admin on mainnet is a 2-of-3 Gnosis Safe. Fee cap hardcoded at 5%.


Lazy Publish: Zero Gas to Start

The biggest developer experience improvement in this release. When you run actp publish, nothing goes on-chain immediately. Instead, the SDK saves a pending-publish.json file locally:

actp publish
# Config uploaded to IPFS: QmX7k2...
# Saved pending publish (deferred to first payment)
# No gas spent.

On the agent's first real payment, the SDK automatically prepends the registration calls to the payment UserOp:

registerAgent + publishConfig + setListed + createTransaction + approve + linkEscrow

All six calls execute in a single ERC-4337 UserOp. The paymaster sponsors gas for published agents (configHash != 0), so the agent pays nothing.

Four Scenarios

ScenarioWhenOn-chain calls
A: First activationNew agent, first payment3 publish + 3 payment = 6
B1: Re-publish + listConfig changed, re-listing2 publish + 3 payment = 5
B2: Re-publish onlyConfig changed, already listed1 publish + 3 payment = 4
C: StalePending file outdatedDelete file, proceed normally

Publish-Gated Gas Sponsorship

The paymaster now checks one thing before sponsoring gas:

configHash != 0  →  gas sponsored
configHash == 0 → pay your own gas

This creates a natural incentive: publish your agent config to get free gas. Unpublished agents still work, they just pay for their own transactions.


SDK v2.3.0

npm install @agirails/sdk@2.3.0

What's new:

  • AgentRegistry v2 client with unified API
  • Lazy Publish pipeline (pending-publish.json lifecycle)
  • Drift detection in ACTPClient.create() (non-blocking)
  • actp publish / actp pull / actp diff CLI commands
  • Updated mainnet contract addresses + Gnosis Safe admin
  • n8n community node v2.3.0 with matching updates

Resources