# APIX402 Vesting Plan On-Chain Status Reader

> APIX402 Vesting Plan On-Chain Status Reader is a paid API for AI agents from api402x.com, paid per call via x402, $0.003/call, status down (last checked 2026-10-12).

Reads live vesting plan or stream data directly from Hedgey or Sablier contracts on Base, returning total, claimable, and unvested balances with on-chain verification.

## Facts

- Endpoint: GET https://api402x.com/vesting-status?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: down
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/apix402-vesting-plan-on-chain-status-reader-45bbc667
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_myBITlzBIRCR4GqQHFlIn

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 apix402-vesting-plan-on-chain-status-reader-45bbc667
```

Example prompt: Check the on-chain vesting status for Hedgey plan ID 2334 on Base — I want to see how much is claimable now, what's still unvested, and when the cliff and end dates are.

## When to prefer this

Use this endpoint when you need authoritative, on-chain verified vesting data from Hedgey or Sablier contracts on Base — not cached dashboard data. Prefer it over indexer-based or dashboard APIs when the exact claimable balance or vesting math must be verified against the live contract state. Essential when plan IDs overlap between providers and disambiguation is required.

## Known failure modes

- Missing or invalid provider parameter returns 400 — provider is always required
- plan_id not found on the specified contract returns an error
- Wrong provider for a given ID (e.g. passing a Sablier stream ID to hedgey) returns contract-level error or empty result
- Base RPC unavailability causes fetch failure
- Canceled or non-existent plan returns status:canceled or error

## How this service works

Onchain- and crypto-market data for trading AI agents. Payment via x402 (USDC, exact scheme).

## Output

Returns a JSON object with the vesting protocol name, plan/stream ID, chain, contract address, token symbol and address, beneficiary address, current status (not_started/cliff_pending/vesting/fully_vested/canceled), amounts in both human-readable and raw wei formats (total, claimable_now, unvested_remainder, already_withdrawn, refunded), starts_at, cliff_at, ends_at timestamps, a discrepancy flag, and onchain_verified_at and fetched_at timestamps.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "provider",
      "plan_id"
     ],
     "properties": {
      "plan_id": {
       "type": "string",
       "description": "Hedgey plan_id (ERC-721 token id) when provider=hedgey, or Sablier stream_id when provider=sablier. Both on Base."
      },
      "provider": {
       "enum": [
        "hedgey",
        "sablier"
       ],
       "type": "string",
       "description": "REQUIRED. Which contract to read: hedgey (TokenVestingPlans) or sablier (SablierLockup V2/v4). No default — plan_id/stream_id ranges overlap between the two contracts."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "protocol",
      "plan_id",
      "chain",
      "contract",
      "token",
      "beneficiary",
      "status",
      "amounts",
      "starts_at",
      "cliff_at",
      "ends_at",
      "discrepancy",
      "onchain_verified_at",
      "fetched_at"
     ],
     "properties": {
      "chain": {
       "type": "string"
      },
      "token": {
       "type": "string"
      },
      "status": {
       "enum": [
        "not_started",
        "cliff_pending",
        "vesting",
        "fully_vested",
        "canceled"
       ],
       "type": "string"
      },
      "amounts": {
       "type": "object",
       "required": [
        "total",
        "claimable_now",
        "unvested_remainder",
        "unit",
        "raw"
       ],
       "properties": {
        "raw": {
         "type": "object",
         "required": [
          "total",
          "claimable_now",
          "unvested_remainder"
         ],
         "properties": {
          "total": {
           "type": "string"
          },
          "refunded": {
           "type": [
            "string",
            "null"
           ]
          },
          "claimable_now": {
           "type": "string"
          },
          "already_withdrawn": {
           "type": [
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "chain": "eip155:8453",
  "token": "0x080D43c2164AFdBc3712422CE78Ab902ccaB5CA1",
  "status": "not_started",
  "amounts": {
   "raw": {
    "total": "2500000000000000000000000",
    "claimable_now": "0",
    "unvested_remainder": "2500000000000000000000000"
   },
   "unit": "SPON",
   "total": "2500000",
   "claimable_now": "0",
   "unvested_remainder": "2500000"
  },
  "ends_at": "2030-07-27T18:30:01.000Z",
  "plan_id": "2334",
  "cliff_at": "2027-07-28T18:30:00.000Z",
  "contract": "0x2CDE9919e81b20B4B33DD562a48a84b54C48F00C",
  "protocol": "hedgey",
  "starts_at": "2027-07-28T18:30:00.000Z",
  "fetched_at": "2026-08-12T17:39:11.454Z",
  "beneficiary": "0x30eb1fA8fcd9DefB9be63B5fE0B805dE2F972fA9",
  "discrepancy": null,
  "onchain_verified_at": "2026-08-12T17:39:11.454Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/apix402-vesting-plan-on-chain-status-reader-45bbc667/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api402x.com](https://www.zero.xyz/host/api402x.com/llms.txt)
