# agent-exec Distributed Lock / Key Claim (POST /claim)

> agent-exec Distributed Lock / Key Claim (POST /claim) is a paid API for AI agents from agent-exec.45.67.221.128.sslip.io, paid per call via x402, $0.0052/call, status unknown (last checked 2026-09-15).

Acquires a named, time-bounded exclusive lock (key claim) scoped to a paying wallet, with payment settled per attempt via x402 regardless of win/loss.

## Facts

- Endpoint: POST https://agent-exec.45.67.221.128.sslip.io/claim
- Price: $0.0052/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-distributed-lock-key-claim-post-claim-b036f4c4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_1SJxBhv27b7awydgdqKbj

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-distributed-lock-key-claim-post-claim-b036f4c4 -d '<json body>'
```

Example prompt: Claim an exclusive lock on the key 'pipeline/ingest/job-42' for one hour using holder ID 'worker-node-7' — I need to make sure no other agent steals this job while mine is running.

## When to prefer this

Choose this endpoint when you need accountless, pay-per-use distributed locking with no prior registration, and your agent infrastructure already handles x402 crypto micropayments. It is especially valuable for crash-resume detection (the 'mine' flag), multi-agent coordination, and scenarios where you want the simplicity of payment-as-authentication rather than API keys or OAuth.

## Known failure modes

- Key already held by another wallet — outcome is 'held', payment still charged, claim record shows competitor's hold expiry
- Invalid plan value (not hour/day/week) — validation error before payment
- Key or holder exceeds 256 bytes or contains '/' — rejected with input validation error
- Payment failure or insufficient USDC balance — transaction not settled, lock not granted
- Network or server error — uncertain lock state, agent should retry with idempotency in mind

## 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 an outcome ('acquired' if you won the lock, 'held' if someone else has it), the full claim record showing key, holder, acquiredAt and expiresAt timestamps, an optional 'mine' boolean (true if you already hold it — useful for crash-resume), and a payment receipt with payer address, amount, asset, network and transaction hash. The attempt is billed whether you win or lose.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "key",
  "plan",
  "holder"
 ],
 "properties": {
  "key": {
   "type": "string",
   "description": "1..256 UTF-8 bytes, no '/' character -- the name you want to hold, scoped to your own paying wallet."
  },
  "plan": {
   "enum": [
    "hour",
    "day",
    "week"
   ],
   "type": "string",
   "description": "Which plan to buy -- see x-payment-info.pricing for each plan's hold duration and price."
  },
  "holder": {
   "type": "string",
   "description": "1..256 UTF-8 bytes -- an id identifying which of your own processes is claiming it."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "outcome",
  "plan",
  "claim"
 ],
 "properties": {
  "mine": {
   "type": "boolean",
   "description": "Only present when `outcome` is \"held\": true when the existing holder is YOU -- a crash-resume or duplicated retry, the exact signal this product is sold to give."
  },
  "plan": {
   "enum": [
    "hour",
    "day",
    "week",
    "free"
   ],
   "type": "string",
   "description": "One of the paid plans (hour/day/week) from POST /claim, or \"free\" from POST /claim/free."
  },
  "claim": {
   "type": "object",
   "required": [
    "key",
    "holder",
    "acquiredAt",
    "expiresAt"
   ],
   "properties": {
    "key": {
     "type": "string"
    },
    "holder": {
     "type": "string"
    },
    "expiresAt": {
     "type": "integer",
     "description": "Unix ms the hold is free again."
    },
    "acquiredAt": {
     "type": "integer",
     "description": "Unix ms the hold was granted, from the server clock at the commit that granted it."
    }
   },
   "description": "The current hold on this key -- yours if `outcome` is \"acquired\", or the existing holder's if `outcome` is \"held\". Never carries a wallet: the caller already knows its own."
  },
  "outcome": {
   "enum": [
    "acquired",
    "held"
   ],
   "type": "string",
   "description": "\"acquired\": you won the key (201). \"held\": somebody already holds it (200) -- NOT an error, see `mine`."
  },
  "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."
    }
   },
   "description": "Present on both outcomes of the PAID `POST /claim` -- the attempt is billed whether or not you won the key, so a \"held\" response still carries the receipt for the charge you incurred. Absent only from `POST /claim/free`, which never settles a payment."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-exec-distributed-lock-key-claim-post-claim-b036f4c4/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)
