Automatic agent access and delegated free orders
AUN now supports discovery → signed enrollment → delegation → quote → explicit zero-price authorization → execution → integrity receipt. This is a real free-beta execution path, not a payment simulation. Only 0 USD is supported; financial payment and settlement are unavailable.
1. Discover available services
GET /api/catalog
Machine-readable service IDs are doi, dns, tools and bibliography. The catalog identifies available services and links to their API contracts. Human-readable planned items in the broader catalog cannot be ordered.
2. Obtain a root credential automatically
Generate an Ed25519 identity in your own environment. Keep its private key private; AUN receives only the public key and a signature. Send the base64 DER SPKI public key:
POST /api/auth/challenge
{"public_key":"BASE64_DER_SPKI_PUBLIC_KEY"}Sign the exact returned message bytes with Ed25519, then send the signature as base64:
POST /api/auth/enroll
{"challenge_id":"RETURNED_ID","signature":"BASE64_SIGNATURE"}A challenge expires in two minutes and is single-use. The returned root Bearer token expires in seven days and is returned only once. The database stores its hash, not the raw token. Enrolling again with the same Ed25519 identity rotates the root token and invalidates its old delegations, without resetting the identity's monthly quota. Securely retaining the identity and renewing credentials is the operator/client's responsibility; lost private keys cannot be recovered by AUN.
This proves possession of a cryptographic identity. It does not verify a person, a legal entity, ownership of a payment wallet or a financial spending mandate. An agent generating its own identity has not thereby obtained permission to spend someone else's money.
3. Delegate only the capabilities and quota needed
POST /api/delegations
Authorization: Bearer ROOT_TOKEN
{"services":["tools"],"scopes":["read","quote","execute"],
"monthly_units":10,"expires_at":"FUTURE_UTC_TIMESTAMP", "max_price_usd":0}The root operator keeps the root token and gives the returned delegated token to the executing agent. Delegations can narrow services and read/quote/execute scopes, never exceed the parent's monthly allowance, and must expire within seven days and before the parent expires. Delegated consumption counts against both child and parent quotas. The limit is per UTC calendar month, not a lifetime allowance. Nested delegation is disabled. Revoking or rotating the parent also blocks its children.
4. Obtain an input-bound quote
POST /api/quote
Authorization: Bearer DELEGATED_TOKEN
{"service":"tools","input":{"tool":"content-hash","input":"abc"},"max_price_usd":0}The server binds the normalized input, service, unit cost and ten-minute expiry. A quote does not reserve quota or guarantee capacity. Prices and permitted monetary budgets are fixed at 0 USD. Do not infer a paid offer from the existence of a quote.
5. Authorize and execute once
POST /api/orders
Authorization: Bearer DELEGATED_TOKEN
{"quote_id":"RETURNED_ID","idempotency_key":"UNIQUE_REQUEST_KEY",
"authorize_zero_usd":true}The input cannot be changed at execution. Repeating the same request returns the same order; another key for the same quote also does not re-execute it. A reused idempotency key for a different quote returns 409. States are running, succeeded, failed and interrupted. HTTP 202 means execution is still running; otherwise inspect the returned state, not just HTTP 200. Failed or interrupted orders are not automatically repeated. If a retry with a new quote is appropriate, the caller must make that decision explicitly.
6. Retrieve and verify the result
GET /api/orders/ORDER_ID GET /api/verify/ORDER_ID Authorization: Bearer DELEGATED_TOKEN
Receipts include result, charged_usd: 0 and SHA-256 integrity of the stored JSON result. This is AUN's integrity record, not an independent attestation, blockchain receipt or proof of scientific truth. Credential scope and ownership protect access. Results expire from retrieval after 24 hours; input-bound quotes and results are cleaned up opportunistically on later requests, so disk deletion may occur later. Backups can retain data independently. Do not submit secrets unnecessarily.
Revocation
POST /api/credentials/revoke
Authorization: Bearer ROOT_TOKEN
{"credential_id":"ROOT_OR_CHILD_CREDENTIAL_ID"}A credential can revoke itself; a root can revoke its own delegated credentials. There is no cross-client administration endpoint.
Free quotas and automation limits
Root identities receive the same 1,000-unit monthly beta allowance as free keys, within the service-wide 10,000-unit ceiling. Signing enrollment does not bypass these limits. Challenge creation and enrollment each consume one unit of the shared 100-unit daily anonymous pool. Up to 100 challenges and ten new public-key identities are accepted per UTC day, shared globally. A root may have at most 20 active delegations. At most ten unexpired quotes per credential principal, 500 retained quotes and 100 retained orders are allowed globally. These safety ceilings can temporarily prevent enrollment or orders; they are not fair-user or Sybil-resistant identity guarantees. The shared rate/concurrency limits still apply to workflow operations; wait before execution if necessary. Read all quota terms.
Runnable example
Download the Node.js 24 example. Run the saved file with Node. It creates a fresh in-memory identity, delegates only the text tool, executes a hash, retries the same order, checks its receipt and quota, then revokes its tokens. It logs no private keys or tokens. This is a demonstration, not persistent identity storage; do not repeatedly mint identities to obtain quota.
Commercial status
No money is charged. There is no public paid checkout, wallet binding, on-chain settlement or paid purchasing mandate. Those require a separately verified payment and reconciliation flow. The beta remains free until 20 April 2027 subject to quotas; no automatic charges or paid conversion.