Consent ledger for AI agents

Consent is
the asset.

agentpermission shows a real consent banner, then writes the visitor's choice to an immutable, provenance-stamped receipt — policy version, hash, origin, timestamp. It honors GPC. It never resolves anyone. The receipt is the product, and it's the clean title every downstream use of that visitor depends on.

GPC honored· immutable, append-only· $1 / site / month
CONSENT RECORD— live
visitor consentawaiting your choice
global privacy controlHONORED ✓
originagentpermission.io
policy versionv1 · sha256
recorded
append-only ledger · ap.consent_events PENDING
The model

Every site needs permission.
Make it provable.

Any website that collects personal data, shares it with a partner, or acts on a visitor's identity needs that visitor's permission — and needs to prove it later. agentpermission gives any site a real consent banner and turns each choice into an immutable, provenance-stamped record: who agreed, to which policy version, from what origin, and when. The record is the asset — portable proof that travels with every downstream use.

How it works

Notice, choice, receipt.

One script tag. The banner you can see on this page right now is the whole product working.

01 / INSTALL

One tag

Your agent provisions a consent tag for a domain and drops one <script> on the page.

02 / NOTICE

Real banner

Visitors get an accessible accept / decline banner. Global Privacy Control is honored — GPC users are never shown a banner and never recorded.

03 / RECEIPT

Immutable record

The choice is written to an append-only ledger with policy version, content hash, origin, and timestamp.

04 / PROOF

Portable title

Any downstream use can cite the receipt. No receipt, no clean use. That's the whole point.

Agent-native

An endpoint, not a signup.

agentpermission isn't a dashboard a human logs into. An agent provisions, pays, and pulls receipts over plain HTTP. Pricing is machine-readable and payment is HTTP-native, so an autonomous agent can transact end to end with no human in the loop.

01 / PROVISION

One authenticated call

Your agent provisions a consent tag for a domain with a single POST. Partner agents use a minted key; the open path is pay-per-call.

02 / PAY

x402, the native way

HTTP 402 used as intended. The agent gets a payment challenge, signs a USDC transfer from its own wallet, and the resource unlocks — no card, no account.

03 / DISCOVER

Self-describing price

GET /api/v1/pricing returns the price and the x402 challenge inline, so an agent can read the terms and pay on its own.

# 1 - agent asks to provision, no payment yet
POST /api/v1/provision  { "domain": "acme.com" }
-> 402 Payment Required
   PAYMENT-REQUIRED: { asset: USDC / Base, amount: 1.00,
                      payTo: 0x29...2489 }

# 2 - agent signs a USDC payment, retries
POST /api/v1/provision
   PAYMENT-SIGNATURE: <signed authorization>
-> 200 OK
   PAYMENT-RESPONSE: { settled: true, tx: 0x... }
   { consent_tag: px_..., tag: <script src="..."> }
Pricing

One dollar. Per site. Per month.

Consent tag

Per provisioned site

$1 / site / month

Flat. Billed over x402, starting the month you provision. Unlimited consent events — you're paying for the ledger and the receipts, not per visitor. Run it as pure notice-and-log with no resolution at all, or as the consent layer under agentpixel.

What you get

The asset

consent_events

An immutable, queryable consent ledger. Every record carries provenance: policy version + hash, origin, GPC state, timestamp. Exportable. Auditable. Yours.