# Agent-Exec Handoff Briefing — Pay-Per-Use Agent State Transfer

> Agent-Exec Handoff Briefing — Pay-Per-Use Agent State Transfer is a paid API for AI agents from agent-exec.448c.org, paid per call via x402, $0.0053/call, status unknown (last checked 2026-10-10).

Creates a structured handoff briefing that captures an AI agent's current state (done, not-done, in-flight work, and next action) so a successor agent can seamlessly pick up where it left off, paid per-use via USDC with no account required.

## Facts

- Endpoint: POST https://agent-exec.448c.org/handoff?utm_source=zero.xyz
- Price: $0.0053/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-exec-handoff-briefing-pay-per-use-agent-state-transfer-4ca49fb5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zrPF4IVczET93F99AZmFI

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agent-exec-handoff-briefing-pay-per-use-agent-state-transfer-4ca49fb5 -d '<json body>'
```

Example prompt: Create a handoff briefing for my successor agent: mark 'fetch and parse the dataset' as done (confirmed by the 200-byte CSV written to disk), list 'run the regression analysis' as not done, nothing is in-flight, and tell the next agent to start by loading the CSV and fitting the model.

## When to prefer this

Use this endpoint when you need to transfer agent state between runs or agent instances without managing accounts or API keys — ideal for agentic pipelines, crash recovery, or multi-agent orchestration where the payer just needs a valid USDC payment. Prefer this over custom state-passing solutions when you want a standardized, time-bounded briefing with strict validation that 'done' items are actually verified.

## Known failure modes

- 400 HANDOFF_DONE_REQUIRES_MEASURED — a 'done' entry lacks confidence 'measured' or has null evidence; fix by providing verified evidence for all completed tasks
- 400 validation error — missing required fields (done, notDone, inFlight, or pickUpFirst)
- 400 empty pickUpFirst — the next-action string must be non-empty
- 402 Payment Required — payment not attached or payment is invalid/insufficient
- Payment settlement failure — on-chain transaction fails, call is rejected
- Briefing expiry — successor retrieves after expiresAt, gets 410 Gone until sweep then 404 Not Found

## How this service works

Accountless, pay-per-use code execution for software agents: submit source code, get stdout, stderr and exit code back from an isolated, network-less sandbox. No account, no API key -- possession of valid payment is sufficient.

## Output

Returns a UUID handoff_id the successor agent can use to retrieve the briefing via GET /handoff/{id}, along with an expiry timestamp (Unix ms) after which the briefing is swept and returns 410 then 404, plus a payment receipt showing the asset, payer wallet address, amount in atomic USDC units, network, and on-chain transaction hash.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "done",
  "notDone",
  "inFlight",
  "pickUpFirst"
 ],
 "properties": {
  "done": {
   "type": "array",
   "description": "What is DONE. EVERY entry must have confidence 'measured' with non-null evidence -- a briefing cannot claim something is finished on unverified intent. Violating this is a free 400 (HANDOFF_DONE_REQUIRES_MEASURED), not a silent acceptance."
  },
  "notDone": {
   "type": "array",
   "description": "What is NOT done. May be measured or unverified."
  },
  "inFlight": {
   "type": "array",
   "description": "What was IN FLIGHT at the cut -- neither finished nor abandoned. May be measured or unverified."
  },
  "pickUpFirst": {
   "type": "string",
   "description": "What the successor should do FIRST. Mandatory and non-empty: a briefing with no next action is not a handoff."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "id",
  "expiresAt",
  "payment"
 ],
 "properties": {
  "id": {
   "type": "string",
   "format": "uuid",
   "description": "The handoff_id -- give this to the successor; it needs nothing else."
  },
  "payment": {
   "type": "object",
   "properties": {
    "asset": {
     "type": "string"
    },
    "payer": {
     "type": "string",
     "description": "The paying wallet's address."
    },
    "amount": {
     "type": "string",
     "description": "Atomic units of the settlement asset that were charged."
    },
    "network": {
     "type": "string"
    },
    "transaction": {
     "type": "string",
     "description": "On-chain settlement transaction hash."
    }
   }
  },
  "expiresAt": {
   "type": "integer",
   "description": "Unix ms this briefing is swept. GET /handoff/{id} answers 410 between the deadline and the sweep, then 404."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-exec-handoff-briefing-pay-per-use-agent-state-transfer-4ca49fb5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-exec.448c.org](https://www.zero.xyz/host/agent-exec.448c.org/llms.txt)
