Kael API Docs

Score any autonomous AI agent wallet with a single HTTP request. The Known Agent Trust (KAT) Score API returns a structured trust profile — 0 to 100, bond-style grade, five dimension scores, and plain-English reasoning — in milliseconds.


Quick Start

Everything you need in one request. Swap in your API key and any EVM wallet address.

curl
curl -X POST https://kaelai.io/api/v1/score \
  -H 'Authorization: Bearer kael_live_your_api_key' \
  -H 'Content-Type: application/json' \
  -d '{"wallet_address": "0x1a2b3c4d5e6f..."}'

Response:

json
{
  "wallet_address":      "0x1a2b3c4d5e6f...",
  "overall_score":       78,
  "grade":               "A",
  "confidence":          0.91,
  "dimension_scores": {
    "behavioral_consistency":  17,
    "transaction_legitimacy":  15,
    "wallet_age_and_history":   18,
    "counterparty_quality":     13,
    "volume_stability":         15
  },
  "reasoning":  "Established wallet with 2+ years of consistent on-chain activity.
               Regular interaction patterns with reputable protocols.
               Counterparty quality slightly reduced by two unverified
               contract interactions in Q3. Overall profile is consistent
               with a legitimate autonomous agent.",
  "chain":               "eth",
  "transactions_analysed": 50,
  "cache_hit":           false,
  "timestamp":           "2026-03-26T01:00:00.000000+00:00"
}

Authentication

API keys are passed as Bearer tokens in the Authorization header. Keys follow the format kael_live_[32 chars]. Request a key at hello@kaelai.io with your name and intended use case. Keys are provisioned manually during beta.

http header
Authorization: Bearer kael_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Security note. Only the SHA-256 hash of your key is stored. Kael never has access to your raw key after issuance. If you lose your key, a new one must be generated.

Endpoint Reference

POST
/api/v1/score
Score a wallet address. Auth required.

Compute or retrieve a KAT Score for any EVM wallet. Required: wallet_address. Optional: chain (default eth), force_refresh (default false). Results are cached for 24 hours — cache hits return in single-digit milliseconds.

GET
/api/v1/score/{address}/history
Full scoring history for a wallet. Auth required.

Returns an array of all KAT Score objects for the given wallet address, newest first. Every query — cached or fresh — is permanently logged, making history useful for tracking counterparty interest over time.

GET
/api/v1/score/{address}/trend
Score trend for a wallet. Auth required.

Returns trend direction (improving, declining, or stable), the score delta between oldest and newest in the window, and number of data points used.

GET
/api/v1/health
API health check. No auth required.

Returns API status. Use this to verify connectivity before making scoring requests.

json
{ "status": "ok", "service": "kael" }

Request Parameters

Applies to POST /api/v1/score. Send as a JSON body.

ParameterTypeDescription
wallet_address string EVM wallet address in 0x format. Required.
chain string Chain to query. Options: eth, base, polygon, bsc, arbitrum. Default: eth.
force_refresh boolean Bypass the 24-hour cache and compute a fresh score. Default: false.

Response Schema

Every successful score response returns the following fields.

FieldTypeDescription
overall_score integer 0–100 Composite trust score. Sum of the five dimension scores.
grade string Bond-style grade from AAA to CCC. See Grade Scale.
confidence float 0.0–1.0 Scoring confidence based on depth of on-chain data. More transactions = higher confidence.
cache_hit boolean true if returned from the 24-hour cache. false if freshly computed.
cached_at timestamp ISO 8601 timestamp of when the score was cached. Only present on cache hits.
dimension_scores object Five dimension scores each 0–20: behavioral_consistency, transaction_legitimacy, wallet_age_and_history, counterparty_quality, volume_stability.
reasoning string Plain-English explanation of the key factors driving the score, generated by the scoring model.
wallet_address string Normalised lowercase wallet address as scored.
chain string Chain identifier the wallet was scored on.
scored_at timestamp ISO 8601 timestamp of when this score was originally computed.

Grade Scale

KAT Scores map to a simplified bond-style grade. Use the grade as a quick programmatic trust signal.

AAA
90–100
Excellent
AA
80–89
Strong
A
70–79
Good
BBB
60–69
Adequate
BB
50–59
Moderate risk
B
40–49
Elevated risk
CCC
30–39
High risk

Error Responses

All errors return JSON with a detail field describing what went wrong.

CodeMeaning
401 Missing or invalid API key.
403 API key exists but is inactive. Contact hello@kaelai.io.
422 Invalid wallet address format. Must be 0x followed by 40 hex characters.
500 Scoring pipeline error. Try again or contact hello@kaelai.io if persistent.
json
{ "detail": "Invalid API key." }

Rate Limits

During beta, rate limits are applied per API key. The default limit is 100 requests per hour. Contact hello@kaelai.io to request higher limits for your use case.

Caching reduces your usage. Scores are cached for 24 hours. Repeated queries for the same wallet within that window return instantly and count as a single scoring unit against your limit.

Supported Chains

Chainchain value
Ethereumeth
Basebase
Polygonpolygon
BNB Smart Chainbsc
Arbitrumarbitrum

More chains coming. Contact hello@kaelai.io to request priority support for a specific chain.


Changelog

v0.1.0
March 2026
  • Initial beta release
  • KAT Score endpoint live — POST /api/v1/score
  • Five-dimension scoring engine powered by on-chain data
  • Redis 24-hour score caching
  • Score history endpoint — GET /score/{address}/history
  • Score trend endpoint — GET /score/{address}/trend
  • Ethereum, Base, Polygon, BNB, Arbitrum support