# APIX402 Insider Early Sale Check

> APIX402 Insider Early Sale Check is a paid API for AI agents from api402x.com, paid per call via x402, $0.05/call, status down (last checked 2026-10-13).

Detects early token sales by scanning a vesting plan beneficiary's full on-chain transfer history and flagging any outgoing transfers that occurred before the cliff date

## Facts

- Endpoint: GET https://api402x.com/insider-early-sale-check?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: down
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/apix402-insider-early-sale-check-b1166841
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_SE50RQot9fhgQSNbVbYfA

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-insider-early-sale-check-b1166841
```

Example prompt: Can you do a deep insider early-sale check on Hedgey vesting plan ID 2 on Base — I want to know if the beneficiary sold any tokens before their cliff date, with full on-chain evidence?

## When to prefer this

Use this endpoint when you need cryptographically verifiable, on-chain evidence of whether a vesting plan beneficiary sold tokens before their cliff date — not estimates or off-chain signals. It is the only route here that performs a full historical eth_getLogs scan against Base from genesis for a specific token and address, making it definitive but slow (60-150s+). Prefer it for due diligence, grant compliance auditing, or investor protection scenarios where provability matters. Avoid it for quick status checks (use GET /vesting-status instead) or when latency is critical.

## Known failure modes

- Invalid or non-existent plan_id for the given provider returns no_vesting_reference status
- Timeout: cold runs can take 60-150+ seconds; agents should be prepared for long waits
- Rate limiting or payment failure due to $0.05 USDC x402 payment requirement
- Unknown early_flag status for transfers in the cliff-to-vesting-end window (not conclusively provable)
- RPC/node issues scanning historical Base logs back to genesis may cause partial results
- Missing required query parameters (provider or plan_id) returns an 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 plan metadata (protocol, plan_status), and a nested insider_check object containing the beneficiary address, token address, chain, vesting schedule (starts_at, cliff_at, ends_at), full list of outgoing transfers (each with hash, timestamp, amount, destination, and early_flag: before_cliff/unknown/after_vesting_end), counts of before_cliff and unknown-window transfers, earliest pre-cliff transfer timestamp, and an overall status (clean, flagged, no_transfers, or no_vesting_reference).

## 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 or Sablier stream_id (depending on provider), on Base -- same value GET /vesting-status accepts."
      },
      "provider": {
       "enum": [
        "hedgey",
        "sablier"
       ],
       "type": "string",
       "description": "REQUIRED. Same meaning as GET /vesting-status's provider: hedgey (TokenVestingPlans) or sablier (SablierLockup V2/v4). No default."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "plan_id",
      "protocol",
      "plan_status",
      "insider_check"
     ],
     "properties": {
      "plan_id": {
       "type": "string"
      },
      "protocol": {
       "type": "string"
      },
      "plan_status": {
       "enum": [
        "not_started",
        "cliff_pending",
        "vesting",
        "fully_vested"
       ],
       "type": "string"
      },
      "insider_check": {
       "type": "object",
       "required": [
        "beneficiary",
        "token",
        "chain",
        "vesting_reference",
        "outgoing_transfers",
        "transfer_count",
        "before_cliff_count",
        "unknown_window_count",
        "earliest_before_cliff_at",
        "status",
        "onchain_verified_at",
        "fetched_at"
       ],
       "properties": {
        "chain": {
         "type": "string"
        },
        "token": {
         "type": "string"
        },
        "status": {
         "enum": [
          "clean",
          "flagged",
          "no_transfers",
          "no_vesting_reference"
         ],
         "type": "string"
        },
        "fetched_at": {
         "type": "string",
         "format": "date-time"
        },
        "beneficiary": {
         "type": "string"
        },
        "transfer_count": {
         "typ
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "plan_id": "2",
  "protocol": "hedgey",
  "plan_status": "fully_vested",
  "insider_check": {
   "chain": "eip155:8453",
   "token": "0xdf00fdE26A6819507649904Ca52FE5062eF75Ba7",
   "status": "clean",
   "fetched_at": "2026-08-12T21:01:07.369Z",
   "beneficiary": "0x05A1ff0a32bc24265BCB39499d0c5D9A6cb2011c",
   "transfer_count": 63,
   "vesting_reference": {
    "ends_at": "2024-05-02T18:00:01.000Z",
    "cliff_at": "2024-02-01T12:00:00.000Z",
    "starts_at": "2024-03-26T18:39:45.000Z"
   },
   "before_cliff_count": 0,
   "outgoing_transfers": [
    {
     "to": "0x0000000000000000000000000000000000000000",
     "from": "0x05A1ff0a32bc24265BCB39499d0c5D9A6cb2011c",
     "hash": "0x808c19964061d6c0828d9f361eecfa3050a7e122ff0a78b4e87a4a77fc6a066d",
     "amount": "0.00000000000000332",
     "timestamp": "2024-02-25T04:30:17.000Z",
     "amount_raw": "3320",
     "early_flag": "unknown",
     "asset_symbol": "TRASH",
     "block_number": 11023035
    },
    {
     "to": "0xaFB9924cEAAfE5E7AC3a2C8d8C213edA8940c937",
     "from": "0x05A1ff0a32bc24265BCB39499d0c5D9A6cb2011c",
     "hash": "0xa38d44d7372087fdc79f04c87e44932a8e3ba38c23a17925fd242b5a8b88f642",
     "amount": "0.000000000000001377",
     "timestamp": "2024-03-04T00:52:01.000Z",
     "amount_raw": "1377",
     "early_flag": "unknown",
     "asset_symbol": "TRASH",
     "block_number": 11362087
    },
    {
     "to": "0x0000000000000000000000000000000000000000",
     "from": "0x05A1ff0a32bc24265BCB39499d0c5D9A6cb2011c",
     "hash": "0x79685fb9eefef36f9adb2495eb8b1cd946470f46198bb143846324a3d612f026",
     "amount": "0.000000000000004968",
     "timestamp": "2024-06-04T01:14:19.000Z",
     "amount_raw": "4968",
     "early_flag": "after_vesting_end",
     "asset_symbol": "TRASH",
     "block_number": 15337156
    }
   ],
   "onchain_verified_at": "2026-08-12T21:01:07.369Z",
   "unknown_window_count": 62,
   "earliest_before_cliff_at": null
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/apix402-insider-early-sale-check-b1166841/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)
