Start here.
1. keespecs.xyz/llms.txt
Every read: what it returns, free or paid.
2. keespecs.xyz/skills
Which read to call, and when.
3. Try one free, signed call:
GET keespecs.xyz/api/x402-health
Read-only. Nothing here sends or bridges. Never send KeeSpecs a seed.
Mainnet or testnet? Check the network id before you sign. Mainnet constants, 9:01 PM ET Oct 29:
mainnet keeta:21378
hex 0x5382
testnet keeta:1413829460
Same number, two spellings for mainnet. Paid reads are mainnet only.
keespecs.xyz/skills
29 tokens in the Keeta currency map. GET /api/directory, 5:03 PM ET Oct 29:
JPY decimals 0
KJPY decimals 6
USD decimals 2
KUSD decimals 6
Same currency, different scales. Read decimals per token address before scaling. Never key on the code.
keespecs.xyz/llms.txt
Two tokens answer to KTA. GET /api/token/search?q=KTA, 12:56 PM ET Oct 29:
KTA decimals 18 isOfficial true
KTA decimals 11 impostorOf KTA
Same ticker, different address. Match the official address before you send or scale amounts.
keespecs.xyz/skills
A signed KeeSpecs read doesn't stay fresh forever. POST /api/verify, 8:55 AM ET Oct 29:
body read 8:54 AM
ok true
body read 5:01 AM
signature valid
expired true
ok false
Old copy? Re-read before you act.
keespecs.xyz/llms.txt
Storing data on Keeta? Read the limits first. One free call:
GET /api/storage-quotas
per object 10 MiB
per user 100 MiB
objects 1000 per user
live true. False would mean a reused copy, not a fresh read.
200, amount 0, 5:01 AM ET Oct 29.
keespecs.xyz/skills
Check directions before you route. Free corridor index, 12:58 AM ET Oct 29:
bank entries 61
in and out 10
out only 51
card entries 53
Each location and currency lists in, out or both. Filter on it before you pick a rail.
keespecs.xyz/api/corridors/i…
Two tokens, two scales. GET /api/token, 9:00 PM ET Oct 28:
KTA decimals 18
USDC decimals 6
amountBase 1000000 is 1 USDC, but only 0.000000000001 KTA.
Never scale KTA by 6. Read decimals for each token address first. Free.
keespecs.xyz/skills
A bad query gets a 400, not a charge. Outbox reads, 12:57 PM ET Oct 28:
no ?account= 400 missing_query
not an address 400 invalid_query
keeta_ address 200, free
Read the error field, fix the query, retry.
keespecs.xyz/llms.txt
One free call for the basics on a Keeta account:
GET /api/account?account=
head latest block hash
height blocks on its chain
info the name it published
balances every token, base units
200, amount 0, 8:58 AM ET Oct 28.
keespecs.xyz/skills
Every token on one Keeta address, one free call:
GET /api/portfolio?account=
Each comes with amountBase and decimals. Match the token address, not the ticker.
A missing name doesn't mean a zero balance.
200, amount 0, 4:57 AM ET Oct 28.
keespecs.xyz/skills
Who can act on a Keeta account? One free call:
GET /api/permissions?account=
Flags come back as names: OWNER, ADMIN, SEND_ON_BEHALF.
Read-only. It changes no grant. An empty list doesn't mean open to everyone.
200, amount 0, 12:57 AM ET Oct 28.
keespecs.xyz/skills
Got a ticker, not an address? One free call:
GET /api/token/search?q=USDC
8:55 PM ET Oct 27:
code USDC
isOfficial true
impostorOf null
isOfficial means it's in Keeta's currency map. Coverage is partial: a lookup, not a safety check.
keespecs.xyz/skills
Storing data on Keeta? Check the limits first.
GET /api/storage-quotas, 4:58 PM ET Oct 27:
maxObjectSize 10 MiB
maxObjectsPerUser 1000
maxStoragePerUser 100 MiB
signed URL TTL 1h default, 24h max
Free, no query. Sizes come back in bytes.
keespecs.xyz/skills
Activity or outbox? Same address, both free, 12:57 PM ET Oct 27:
/api/activity 8 events
/api/outbox 0 blocks
Activity is every recent event that touched the address. Outbox is only blocks it published.
Send ?address= by mistake: 400, not charged.
keespecs.xyz/skills
Six KeeSpecs reads are free now.
Checked 8:58 AM ET Oct 27, all 200, no payment:
/api/account
/api/portfolio
/api/activity
/api/outbox
/api/permissions
/api/storage-quotas
The first five take ?account=, not ?address=.
keespecs.xyz/llms.txt
Keeta amounts come back in base units. Read decimals before you scale one.
GET /api/token, 5:01 AM ET Oct 27:
code USDC
decimals 6
accessMode PUBLIC
So amountBase 1000000 is 1 USDC. Pass the token address, not the ticker. Free.
keespecs.xyz/skills
Before an agent pays for a KeeSpecs read, one free call:
GET /api/x402-health
12:58 AM ET Oct 27:
up true
httpStatus 200
latencyMs 113
up false means paid reads can't settle right now. llms.txt covers what to do then.
keespecs.xyz/llms.txt
Eight KeeSpecs reads, no payment needed. Each answered 200, signed, amount 0, at 9:03 PM ET Oct 26:
/api/username
/api/token
/api/token/search
/api/directory
/api/providers
/api/corridors/index
/api/ecosystem
/api/x402-health
Pick one and call it.
keespecs.xyz/llms.txt
Building on Keeta? List your app in the KeeSpecs registry. Free.
Logo, short description, a contact (email or X handle), an https link. It shows in Apps once that page's HTML head carries the verification tag.
Not a ranking.
keespecs.xyz/ecosystem
13 providers in Keeta's published service list. /api/providers, read 10:37 AM ET Oct 26:
asset movement 5
FX 3
KYC 2
notifications 1
storage 1
usernames 1
Free and signed. Not a quote.
keespecs.xyz/skills





















