Kael is in beta — you may encounter bugs or incomplete features. Report an issue →
// scope note
KAT Score is designed and optimized for autonomous AI agent wallets. Scores reflect a wallet's suitability as a trustworthy counterparty in agent-to-agent commerce — not general crypto wallet legitimacy. Non-agent wallets (exchange addresses, smart contracts, retail wallets) will receive contextual scores with scope_warning fields explaining the assessment.

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 supported wallet address.

import requests

# Before transacting with an unknown agent
response = requests.post(
    'https://kaelai.io/api/v1/score',
    headers={'Authorization': 'Bearer kael_live_your_key'},
    json={'wallet_address': '0x742d...', 'chain': 'eth'}
)

score = response.json()

if score['overall_score'] >= 60:
    proceed_with_transaction()
elif score['overall_score'] >= 35:
    proceed_with_reduced_limits()
else:
    flag_for_review()
// Before transacting with an unknown agent
const response = await fetch('https://kaelai.io/api/v1/score', {
    method:  'POST',
    headers: {
        'Authorization': 'Bearer kael_live_your_key',
        'Content-Type':  'application/json'
    },
    body: JSON.stringify({
        wallet_address: '0x742d...',
        chain:          'eth'
    })
});

const score = await response.json();

if (score.overall_score >= 60) {
    proceedWithTransaction();
} else if (score.overall_score >= 35) {
    proceedWithReducedLimits();
} else {
    flagForReview();
}
# Score a wallet before transacting
curl -X POST https://kaelai.io/api/v1/score \
  -H 'Authorization: Bearer kael_live_your_key' \
  -H 'Content-Type: application/json' \
  -d '{"wallet_address": "0x742d...", "chain": "eth"}'

# Returns immediately — use the score in your logic
# overall_score >= 60  → proceed
# overall_score 35–59  → proceed with caution
# overall_score < 35   → flag for review

Response:

json
{
  "wallet_address":      "0x1a2b3c4d5e6f...",
  "overall_score":       78,
  "grade":               "A",
  "confidence":          0.91,
  "wallet_type":         "autonomous_agent",
  "risk_flag":           "low_agent_fit",
  "risk_flag_label":     "No suspicious activity detected...",
  "recommended_action":  "proceed",
  "recommended_action_label": "No suspicious activity detected. Safe to proceed based on your own risk tolerance.",
  "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]. Get a key instantly at kaelai.io — self-serve, no waitlist.

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, btc, sol, avax, hype, tao. Default: eth.
force_refresh boolean Bypass the 24-hour cache and compute a fresh score. Default: false.

Response Schema

// recommended_action
Every response includes a recommended_action field returning proceed, review, or decline — giving your integration an immediately actionable signal. Check this field first before parsing the full response.

Every successful score response returns the following fields.

FieldTypeDescription
recommended_action string Always check this first — the primary signal for programmatic decision making. Three values: proceed — trust signals sufficient, safe to transact. review — caution advised, manual review recommended. decline — high-risk patterns detected, recommend rejecting the transaction.
recommended_action_label string Plain-English explanation of the recommended action, suitable for display to end users, audit logs, or downstream decision systems.
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.
wallet_type string Wallet classification: autonomous_agent, retail_wallet, likely_exchange, smart_contract, insufficient_history, or unknown.
scope_warning string or null Present when the wallet does not exhibit autonomous agent behavioral patterns. Explains the scoring context and how to interpret the score for non-agent wallet types. null when wallet_type is autonomous_agent.
risk_flag string Three values: suspicious — genuine red flags detected (Sybil activity, draining patterns, burst manipulation). low_agent_fit — wallet is not suspicious but does not exhibit autonomous agent behavioral patterns. insufficient_data — not enough on-chain data for a reliable assessment.
risk_flag_label string Plain-English explanation of the risk_flag value, suitable for display to end users or downstream agents making trust decisions.

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
BB
40–49
Elevated risk
BB-
30–39
High risk
CCC
0–29
Very 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 us.
422 Invalid wallet address format. Must be 0x followed by 40 hex characters.
500 Scoring pipeline error. Try again or contact us 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 us 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
Bitcoinbtc
Ethereumeth
Solanasol
Basebase
BNB Smart Chainbsc
Polygonpolygon
Arbitrumarbitrum
Avalancheavax
Hyperliquidhype
Bittensortao
// bittensor — coldkey vs hotkey
On Bittensor, validators operate using two wallet types. Coldkeys hold funds and subnet registrations but have limited direct transaction history. Hotkeys contain all operational activity — weight setting, miner scoring, and validation extrinsics. For counterparty trust assessment in agent-to-agent commerce, scoring the hotkey address will return richer behavioural data and higher confidence scores than the coldkey. Both wallet types are supported — use chain: tao for either address format.

Pricing

Simple, transparent pricing. Start free — pay only for what you use.

Tier Price Queries Notes
Free to Start $0 100 on signup No credit card required. Never expires.
Pay As You Go $0.010 per query Unlimited No subscription, no minimum, no commitment. Card required. Billed monthly.

Free to Start

100 KAT Score queries on signup. No credit card required. Never expires.
  • ✓  100 complete KAT Score responses
  • ✓  All 5 dimension scores, grade, reasoning, risk flag and recommended action
  • ✓  10 chain support including Bittensor / TAO
  • ✓  No credit card required — never expires

Pay As You Go — $0.010 per query

⚡ Beta pricing — available for a limited period only
No subscription, no minimum, no commitment. Card required. Billed monthly for usage at the end of each month. Full KAT Score intelligence on every query.
  • ✓  Everything in Free, plus:
  • ✓  Unlimited queries — no monthly cap
  • ✓  Full KAT Score intelligence on every query
  • ✓  No minimum spend — no commitment — stop anytime
  • ✓  Spending cap controls via kaelai.io/billing
Subscription tiers — coming soon
Higher volume? Predictable monthly pricing is on the way.
Builder
🔒 $24.99/mo — founding member
$29.99/mo — standard
Annual subscriptions available — save up to 2 months
Scale
🔒 $129.99/mo — founding member
$149.99/mo — standard
Annual subscriptions available — save up to 2 months
Enterprise
Custom

Founding member pricing is locked in permanently for the first 200 paid subscribers while subscription remains active. Annual discount pricing will be displayed when subscriptions launch.

Pricing is in USD. Pay As You Go usage invoiced monthly via Stripe. No subscriptions currently active.


How billing works

Kael is designed to be frictionless to start and easy to scale. Here's how the transition from free to paid works.

Free tier

Every new account includes 100 free KAT Score queries. No credit card required. Queries never expire — use them at your own pace during evaluation and integration.

Running low

When you reach 20 queries remaining you will receive an email notification with a direct link to add a payment method. No action required to keep using your free allocation.

Grace period

When your free queries are exhausted your account enters a 7-day grace period with 50 additional queries included. This gives you time to add a payment method without interrupting an active integration — no code changes required.

Pay As You Go activation

Add a payment method at kaelai.io/billing before your grace period ends. Your account reactivates immediately. Queries are billed at $0.010 each, invoiced monthly via Stripe. No subscription, no minimum spend, no commitment.

If the grace period expires

If no payment method is added before the grace period ends your API key is paused and all requests return HTTP 402. Add a payment method at kaelai.io/billing at any time to reactivate instantly — no support ticket required.

No surprises. You will always receive advance notice before your account is paused. The grace period exists specifically to prevent integration interruption for active users.

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
  • 10 chains supported: ETH, Base, Polygon, BSC, Arbitrum, BTC, SOL, AVAX, HYPE, TAO