# Kaspa x402 Router

> Kaspa x402 Router is a paid API for AI agents from router.kaspa-402.org, paid per call via x402, $0.24/call, status unknown (last checked 2026-09-15).

Pay USDC on Base to proxy a Kaspa x402 service call (exposure, cluster, ghost, ask, research, redteam, or reserve) and receive the result plus a settlement receipt.

## Facts

- Endpoint: GET https://router.kaspa-402.org/call
- Price: $0.24/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/kaspa-x402-router-b98496ae
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9XntDwn4YCbDFEVEpjQB5

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 kaspa-x402-router-b98496ae
```

Example prompt: Check the exposure risk for Kaspa address kaspa:qr9l8... using the Kaspa x402 router — pay USDC on Base and return the exposure analysis plus the settlement receipt.

## When to prefer this

Use this endpoint when you need Kaspa blockchain intelligence (address exposure, fund tracing, address clustering, covenant red-teaming, KRC20/KRC721 research, or expert Q&A) and want to pay in USDC on Base rather than holding KAS directly. It is the right choice when the user has a Base wallet and needs seamless cross-chain access to Kaspa-native analytics services.

## Known failure modes

- Missing required 'service' query parameter returns 400 validation error
- Invalid Kaspa address format causes downstream service rejection
- Unsupported service enum value returns 400
- USDC payment on Base fails or is insufficient, returning 402 Payment Required
- FX rate spike causes price to exceed caller's authorized amount
- Downstream Kaspa x402 service unavailable returns 502 or timeout
- Invalid scriptHex for redteam service returns parsing error
- KRC20 ticker not found returns empty research result

## How this service works

Pay USDC on Base; the router pays the target Kaspa x402 service in KAS and returns its result + a settlement receipt. Price = Kaspa cost × live FX + margin.

## Output

The proxied Kaspa service's result object (e.g. exposure risk scores, cluster map, ghost fund trace, RAG answer, asset research, redteam covenant analysis, or reserve balance) plus a settlement receipt confirming KAS payment and FX rate applied.

## 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": [
      "service"
     ],
     "properties": {
      "q": {
       "type": "string",
       "description": "question — ask (Kaspa-expert RAG)"
      },
      "asset": {
       "type": "string",
       "description": "krc20:TICKER or krc721:NAME — research"
      },
      "target": {
       "type": "string",
       "description": "kaspa: address or txid — ghost (fund trace)"
      },
      "address": {
       "type": "string",
       "description": "kaspa: address — exposure, cluster, reserve (covenantAddress), or ghost target"
      },
      "service": {
       "enum": [
        "exposure",
        "cluster",
        "ghost",
        "ask",
        "research",
        "redteam",
        "reserve"
       ],
       "type": "string",
       "description": "Kaspa service to invoke"
      },
      "scriptHex": {
       "type": "string",
       "description": "covenant script hex — redteam"
      },
      "covenantAddress": {
       "type": "string",
       "description": "covenant address — reserve"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/kaspa-x402-router-b98496ae/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from router.kaspa-402.org](https://www.zero.xyz/host/router.kaspa-402.org/llms.txt)
