x402 List

x402 Protocol Service Directory

chainkit

Blockchain

17 on-chain compute primitives in one x402 API: keccak256, ABI encode/decode, function selectors, EIP-712 hashing + signature recovery/verification, merkle root/proof/verify, CREATE/CREATE2 address derivation, ENS namehash, checksum, unit conversion, RLP encode/decode. Pure computation, no data dependencies. 0.02 USDC per call on Base.

Pay from $0.02 per request in USDC on Base, settled onchain via the x402 protocol, no signup, no API key needed.

first settlement 2026-07-21 · $0.17 all-time · last settled 2026-07-24

BASE URL https://chainkit.leeworks.dev WEBSITE https://chainkit.leeworks.dev ENDPOINTS 1 NETWORK Base ASSET USDC MEMBER SINCE 2026-07-25 MONITORED SINCE 2026-07-25

ASSESSMENT

updated 3h ago

Evidence-backed signals, not a single score. Click any chip for the proof. Measured values stay read-only; unknown is honest.

reliability 100%
uptime 24h
-
uptime 7d
-
uptime 30d
-
uptime 90d
-
response p95
421ms
avg response
421ms
total checks
1
compliance A (11/11)

11 of 11 x402 conformance checks pass. Full checklist below.

jump to compliance checklist

price $0.02 (p75 in Blockchain)
price (min)
$0.02
category percentile (min)
p75 in Blockchain
endpoints / prices
1 / 1
model
flat
stability
100%
risk clean

No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.

domain age
725d
registrar
CloudFlare, Inc.
hosting
custom
domain created
2024-07-30

Identity facts, not a risk score.

traction $0 30d · 0 buyers
volume 30d
$0
buyers 30d
0
settlements 30d
0
first settlement
2026-07-21
last settlement
2026-07-24
top buyer share
-
trend 7d vs 30d
-
networks
eip155:8453
volume all-time
$0.17
settlements all-time
3
median settlement 30d
$0
max settlement 30d
$0
settled via
-

Attributed pro-quota: this payout address is shared, so volume and buyers are the operator-level figure divided by the services sharing it. A declared convention, not an individually observed measure, and still a conservative undercount.

Currently sharing this payout address with chainfeed, jsonguard, x402 Agent-Commerce Starter + Platform Map.

Top buyer share is a concentration signal, not part of the ranking score.

WHAT IT DOES

ai-derived

Provides on-chain compute services including keccak256 hashing, ABI encoding/decoding, and various blockchain-specific cryptographic operations.

category
blockchain-compute
in
body
blockchaincryptographyethereumsmart-contractshashingabiens

AI-generated summary. The measured data is never altered by it.

ENDPOINTS

Service endpoints with HTTP method, path, description, pricing, and network
METHOD PATH DESCRIPTION PRICE NETWORK ASSET
POST /v1/crypto On-chain compute: keccak256, ABI encode/decode, fn/event selectors, EIP-712 hashing, EIP-191/712 recovery, Merkle proofs, CREATE/CREATE2, ENS namehash, checksum, unit convert, RLP $0.02 Base USDC
1 endpoints

REQUEST / RESPONSE EXAMPLE

An unpaid request to POST /v1/crypto returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.

// request
curl -i -X POST 'https://chainkit.leeworks.dev/v1/crypto'
// 402 response (captured by monitor) · 1 payload · click to expand
[
  {
    "error": "payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "input": {
            "method": "POST",
            "schema": {
              "type": "object",
              "required": [
                "op"
              ],
              "properties": {
                "op": {
                  "enum": [
                    "keccak256",
                    "abi_encode",
                    "abi_decode",
                    "selector",
                    "eip712_hash",
                    "recover",
                    "verify_712",
                    "merkle_root",
                    "merkle_proof",
                    "verify_merkle",
                    "create2",
                    "create_address",
                    "namehash",
                    "checksum",
                    "unit_convert",
                    "rlp_encode",
                    "rlp_decode"
                  ],
                  "type": "string",
                  "description": "Operation to run; remaining fields depend on op"
                },
                "args": {
                  "type": "array",
                  "description": "abi_encode: arguments for the given signature"
                },
                "data": {
                  "type": "string",
                  "description": "keccak256: hex(0x…) hashed as bytes else UTF-8. abi_decode: calldata. rlp_*: hex or nested array"
                },
                "from": {
                  "type": "string",
                  "description": "create_address: deployer address"
                },
                "leaf": {
                  "description": "merkle_proof/verify_merkle: target leaf"
                },
                "name": {
                  "type": "string",
                  "description": "namehash: ENS name e.g. vitalik.eth"
                },
                "salt": {
                  "type": "string",
                  "description": "create2: 32-byte hex salt"
                },
                "nonce": {
                  "type": "integer",
                  "description": "create_address: deployer nonce"
                },
                "proof": {
                  "type": "array",
                  "description": "verify_merkle: hex proof"
                },
                "types": {
                  "type": "array",
                  "description": "abi_encode/abi_decode: raw ABI type list e.g. [\"address\",\"uint256\"]"
                },
                "value": {
                  "type": "object",
                  "description": "verify_712/eip712_hash: typed-data value"
                },
                "domain": {
                  "type": "object",
                  "description": "verify_712/eip712_hash: EIP-712 domain"
                },
                "leaves": {
                  "type": "array",
                  "description": "merkle_*: leaf values (keccak256, sorted pairs)"
                },
                "values": {
                  "type": "array",
                  "description": "abi_encode: values matching types"
                },
                "address": {
                  "type": "string",
                  "description": "checksum: address to checksum/validate"
                },
                "message": {
                  "type": "string",
                  "description": "recover: the personal_sign message"
                },
                "deployer": {
                  "type": "string",
                  "description": "create2: deployer address"
                },
                "initCode": {
                  "type": "string",
                  "description": "create2: init code (hashed) — or pass initCodeHash"
                },
                "signature": {
                  "type": "string",
                  "description": "recover/verify_712: 0x sig. abi_encode/abi_decode/selector: a fn/event sig e.g. transfer(address,uint256)"
                },
                "value_num": {
                  "description": "unit_convert: amount (use field 'value')"
                }
              }
            },
            "example": {
              "op": "selector",
              "signature": "transfer(address,uint256)"
            },
            "contentType": "application/json"
          },
          "output": {
            "example": {
              "ok": true,
              "op": "selector",
              "topic0": "0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
              "selector": "0xa9059cbb"
            },
            "contentType": "application/json",
            "description": "Always {ok, op}; other fields depend on op (hash | data | values | selector/topic0 | digest | signer | root/proof | address | checksum | wei/result | rlp/decoded)"
          },
          "version": "2"
        },
        "payTo": "0xa8B061d96F69426f11bcC807BfA00f0AF79541a7",
        "scheme": "exact",
        "network": "base",
        "mimeType": "application/json",
        "resource": "https://chainkit.leeworks.dev/v1/crypto",
        "description": "On-chain compute: keccak256, ABI encode/decode, fn/event selectors, EIP-712 hashing, EIP-191/712 recovery, Merkle proofs, CREATE/CREATE2, ENS namehash, checksum, unit convert, RLP",
        "maxAmountRequired": "20000",
        "maxTimeoutSeconds": 120
      }
    ],
    "x402Version": 1
  }
]

OVER TIME

All charts share the 90d window selected here. Every series is also served as JSON at /api/v1/services/chainkit/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted). The on-chain series roll up hourly, so the latest day can be up to about an hour behind; distinct buyers are counted per payout address, so a service that settles to more than one address is an upper bound.

UPTIME
07-25 · uptime 100.0% · 989ms avg07-2507-25
90d UPTIME 100%
RESPONSE TIME
07-25 · 989ms avg07-25 · 989ms avg07-2507-25
AVG RESP 982ms
PRICE (captured 402, USD)
building price history ($0.02)
SUB-SCORES (uptime + x402 compliance)
building assessment history (1 day so far)
VOLUME (on-chain settlement, USD)
07-21 · $0.0107-23 · $0.0207-24 · $0.63peak $0.6307-2107-24

Shared payout address (3 other services). These bars are the full shared address (operator-level), so do not sum them across the services that share it. Where a per-service figure is attributed, the assessment block and the ranking, it is the address total divided pro-quota by the 4 services sharing it: a declared convention, not an individually observed measure.

DISTINCT BUYERS
07-21 · 1 buyer07-23 · 1 buyer07-24 · 2 buyerspeak 2 buyers07-2107-24

Shared payout address (3 other services). These bars are the full shared address (operator-level), so do not sum them across the services that share it. Where a per-service buyer count is attributed, the assessment block and the ranking, it is divided pro-quota by the 4 services sharing the address and can be fractional: a declared convention, not an individually observed measure.

COMPLIANCE

11/11 checks pass · grade A
  • 402 payload captured
  • accepts[] array present
  • payTo address recoverable
  • payTo at accepts[0].payTo (conformant shape)
  • payTo is a valid on-chain address
  • atomic price declared
  • atomic price in a sane range
  • asset (token) address declared
  • network resolves to CAIP-2
  • payment scheme declared
  • served over HTTPS

SITE PILLARS

  • homepage reachable
  • openapi doc
  • pricing page
  • llms.txt
  • robots.txt
  • terms page
recent checks (12) · click to expand
TIME STATUS RESP
● SLOW 1595ms
● OK 392ms
● OK 889ms
● OK 855ms
● OK 417ms
● SLOW 1532ms
● OK 1363ms
● OK 957ms
● OK 1172ms
● OK 1019ms
● OK 1168ms
● OK 421ms

EMBED THIS BADGE

Show that chainkit is monitored on x402-list. Paste this on your site or README, it links back to this live listing.

chainkit listed on x402-list
status
chainkit uptime on x402-list
live uptime
// HTML
<a href="https://x402-list.com/services/chainkit?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/chainkit.svg" alt="chainkit listed on x402-list" height="28">
</a>
// Markdown
[![chainkit on x402-list](https://x402-list.com/badge/chainkit.svg)](https://x402-list.com/services/chainkit?utm_source=badge&utm_medium=referral&utm_campaign=embed)
// HTML · live uptime variant
<a href="https://x402-list.com/services/chainkit?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/chainkit.svg?data=uptime" alt="chainkit uptime on x402-list" height="28">
</a>

RUN THIS SERVICE?

Keep this listing accurate: propose changes to the name, description, website, category or add new endpoints to monitor. Ownership is verified with a domain proof and every change is reviewed manually; measured data stays read-only.

[ update this listing ]