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

> Agent-Exec Handoff — Pay-Per-Use Agent State Handoff is a paid API for AI agents from agent-exec.45.67.221.128.sslip.io, paid per call via x402, $0.0053/call, status unknown (last checked 2026-09-15).

Creates a paid, time-limited handoff briefing that encodes task state (done, not-done, in-flight) so a successor AI agent can pick up exactly where a previous agent left off.

## Facts

- Endpoint: POST https://agent-exec.45.67.221.128.sslip.io/handoff
- Price: $0.0053/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-exec-handoff-pay-per-use-agent-state-handoff-6d846fec
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_VHcmbXPq-6WxiSzM-9wlX

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-pay-per-use-agent-state-handoff-6d846fec -d '<json body>'
```

Example prompt: Create a handoff briefing for the next agent: mark 'database schema migration' as done (confirmed by migration log), mark 'write unit tests' as not done, note that 'seed script' is currently in flight, and tell the successor to start by running the seed script and verifying row counts.

## When to prefer this

Use this endpoint when you need accountless, pay-per-use agent state transfer with strict evidence requirements for completed tasks — ideal for multi-agent pipelines, agent failure recovery, or any scenario where a successor agent must pick up mid-task without shared memory or a central orchestration account. Prefer it over custom state-passing schemes when you want cryptographic payment proof of the handoff and a time-bounded, self-expiring briefing record.

## Known failure modes

- 400 HANDOFF_DONE_REQUIRES_MEASURED — a 'done' entry lacks confidence='measured' or has null evidence; fix by ensuring all done items include verified evidence
- 402 Payment Required — the x402 payment header is missing, invalid, or insufficient funds
- 410 Gone — the handoff ID has passed its expiry deadline but not yet been swept; the briefing is no longer retrievable
- 404 Not Found — the handoff ID does not exist or has been swept after expiry
- 400 Bad Request — required fields (done, notDone, inFlight, pickUpFirst) are missing or pickUpFirst is empty string

## 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 uses to retrieve the briefing via GET /handoff/{id}, along with an expiry timestamp (Unix ms) after which the record is swept, and a payment receipt showing the USDC amount charged, payer wallet, 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-pay-per-use-agent-state-handoff-6d846fec/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-exec.45.67.221.128.sslip.io](https://www.zero.xyz/host/agent-exec.45.67.221.128.sslip.io/llms.txt)
