# Agent-native access
**Early preview.** These are protocol surfaces we are seeding ahead of the agent
economy, not a marketplace with settled volume. x402 settlement is in testnet
preview on Base Sepolia. Production settlement, including compliance and mainnet
USDC, ships under a later phase.
Autonomous agents do not read landing pages. They query manifests, compare
machine-readable pricing, and settle per request. This page documents the
surfaces Graphene publishes so an agent — or the human wiring one up — can
discover, evaluate and integrate the API without a sales call.
## Discovery stack
| Surface | Where | What it gives an agent |
| --------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| Capability manifest | `/.well-known/agent.json` | Models, regions, pricing basis, payment protocols — parseable and always current. |
| Machine-readable pricing | `/api/openapi` | OpenAPI 3.1 with `x-pricing`, `x-rate-limits` and `x-sla` vendor extensions. |
| Live benchmarks | `/api/benchmarks` | TTFT, throughput and uptime as real telemetry or an honest null — never brochure numbers. |
| x402 settlement (testnet preview) | `/api/v1/x402/chat/completions` | HTTP 402 payment flow with testnet USDC on Base Sepolia. |
| MCP / A2A / marketplaces | MCP registry, A2A directory, LangChain Hub, CrewAI | The same metadata, single-sourced from the manifest, on the channels agents already query. |
## How to parse the manifest
Fetch the manifest and read the fields directly — it is stable JSON:
```bash
curl -s https://graphene.ai/.well-known/agent.json
```
```json
{
"name": "Graphene",
"api": {
"type": "openai-compatible",
"base_url": "https://api.graphene.ai/v1",
"openapi": "https://graphene.ai/api/openapi"
},
"models": ["claude-opus-4-8", "gpt-5.5", "..."],
"regions": ["ap-southeast-2"],
"pricing": {
"model": "per-token",
"discount_to_list_pct": 20,
"feed": "https://graphene.ai/api/openapi"
},
"payments": {
"accepted": ["api_key"],
"preview": ["x402"],
"x402": {
"status": "testnet-preview",
"network": "base-sepolia",
"currency": "USDC"
}
},
"benchmarks": "https://graphene.ai/api/benchmarks"
}
```
- `api.base_url` is an OpenAI-compatible endpoint — point any OpenAI SDK at it.
- `pricing.feed` and `pricing.discount_to_list_pct` let a cost optimiser evaluate
Graphene without reading a pricing page: per-token billing at 20% under each
provider's published list price.
- `payments.x402.status` is `testnet-preview` — never treat it as settled or
mainnet.
## x402 testnet flow
The x402 preview lets an agent integrate the pay-per-request settlement flow now,
against Base Sepolia testnet. Six steps:
1. **Discover** — `POST /api/v1/x402/chat/completions` with no `X-PAYMENT` header.
2. **Receive 402** — the response is HTTP 402 with a payment spec
`{ amount, currency: "USDC", network: "base-sepolia", recipient }` and the
preview notice.
3. **Pay** — send the testnet USDC amount to the recipient on Base Sepolia.
4. **Prove** — sign the payment payload with your Base Sepolia payer key and
base64url-encode `{ payload, payer, signature }`.
5. **Retry** — resubmit the request with the proof in the `X-PAYMENT` header.
6. **Serve** — a valid, non-replayed proof within the preview quota returns a
preview `chat.completion`, itself carrying the testnet-preview notice.
```bash
# 1. Discover — no payment header yet
curl -si -X POST https://graphene.ai/api/v1/x402/chat/completions \
-H "content-type: application/json" \
-d '{"model":"claude-opus-4-8","messages":[{"role":"user","content":"hi"}]}'
# → HTTP/1.1 402 Payment Required { "error": "payment-required", "accepts": { ... }, "notice": "..." }
# 5. Retry — with a signed Base Sepolia proof
curl -si -X POST https://graphene.ai/api/v1/x402/chat/completions \
-H "content-type: application/json" \
-H "x-payment: <base64url {payload,payer,signature}>" \
-d '{"model":"claude-opus-4-8","messages":[{"role":"user","content":"hi"}]}'
# → HTTP/1.1 200 OK chat.completion (carries the testnet-preview notice)
```
## Preview limitations and quota
- **Testnet only.** Base Sepolia testnet USDC — never mainnet, no real
settlement, no revenue-generating transaction. The signed proof is a preview
stand-in for on-chain verification.
- **Quota.** Each valid proof unlocks a small, fixed number of preview inferences;
nonces are single-use (replay-protected). Quota and nonce state are per
deployment and reset on redeploy.
- **No service commitment.** The preview carries no uptime, availability or
service-level guarantee and is excluded from all service commitments (Terms of
Service §7).
## Roadmap
Stated as direction, not commitment:
- **Now** — discovery surfaces (manifest, OpenAPI, benchmarks) and the x402
testnet preview, behind an early-access flag.
- **Next** — production x402 settlement gated on AUSTRAC/DCE compliance and
mainnet USDC; broader region coverage as capacity goes live.
- **Later** — a full agent marketplace with settled volume.
## Where to go next
- **[Agent cards](/docs/agent-cards)** — every machine-readable descriptor, with
sample payloads: manifest, A2A card, MCP metadata, OpenAPI extensions,
benchmarks and the x402 endpoint.
- **[For agents](/docs/for-agents)** — written for the agent itself: discover,
evaluate, integrate, and buy your own compute.
- **[Building agents](/docs/building-agents)** — for the human developer:
framework wiring, budgets, latency, failure handling and custody.
Building agents on LangGraph, CrewAI, AutoGen or MCP and want early access?
[Request early access](/contact?topic=agents).