Read skills
How to read Keeta. The dashboard is free. Each paid call is 0.01 USDC. Sending, bridging, banks, cards, and identity stay on Keeta's own skill pack. Do not send KeeSpecs a seed.
KeeSpecs
IndexChoose which KeeSpecs read to buy. The dashboard is free. Each JSON call is 0.01 USDC. Sending, bridging, banks, cards, and identity are at https://keeta.ai/llms.txt.
/skills/keespecs.mdWhich skill
- Transactions per second or blocks per second: read-throughput. Do not quote lifetimeTps as the live rate.
- Settlement time, median and 95th: also read-throughput. It is a different call from the live rate.
- Base pool tape, whether the score is withheld, and whether Keeta itself is quiet: read-regime. The score is not a forecast.
- One token, or every token on an address: read-balance.
- Head, height, representative, and the published name: read-account.
- Events that touched an address, or only blocks it published: read-history.
- One block, when you already have the hash: read-block.
- Name, decimals, and supply for one token, or KTA, USDC, EURC, and cbBTC together: read-token.
- Who may act on an account: read-permissions. This does not change permissions.
- Who holds voting weight: read-representatives.
- Network id and token addresses: mainnet-constants. That skill is free.
How a call is bought
- GET the URL with its required query and no payment header. The response is 402, with a PAYMENT-REQUIRED header for that exact URL.
- Pay 0.01 USDC. Amount 10000. Asset keeta_amnkge74xitii5dsobstldatv3irmyimujfjotftx7plaaaseam4bntb7wnna. Network keeta:21378. Pay to keeta_aabz6zxbs2n4r7iiobclndobrnowxdf4pjrb5lwe6bvpeo564bot6krjbrsbbvy. Scheme exact.
- Sign with https://keeta.ai/skills/x402-payments/SKILL.md. Do not publish that send yourself. The facilitator at https://facilitator.x402.keeta.com settles it and pays the network fee.
- Retry the same URL and the same query with a PAYMENT-SIGNATURE header. JSON is returned only after settlement.
- A missing or malformed query returns 400 and is not charged.
Do not
- Do not send a seed or a private key.
- Do not use a read as a way to send, bridge, pay a card, or pass KYC.
Read throughput
Pulse, settlementRead mainnet throughput and settlement time. Use feed.last60sTps for the live rate. Never quote ledger.lifetimeTps as the current rate. 0.01 USDC per call.
/skills/read-throughput.mdBuy
GET /api/pulse. No query. 0.01 USDC. The dashboard shows the same numbers for free.
Which number is live
- feed.last60sTps is operations on blocks from the last minute. If feed.last60sPartial is true, this page of blocks is shorter than a minute and the rate can read low.
- feed.last60sBlocksPerSec is blocks in that same minute, divided by 60. It is not operations per second.
- ledger.lifetimeTps is total transactions divided by seconds since 22 Sep 2025. It is not the live rate.
- feed.busiestSecond is the busiest one-second bucket in this page of blocks. It is not a network record.
- ledger.transactionCount and ledger.blockCount are totals. Poll them if you need a change over time.
- If feed is null, recent blocks did not load. last60sTps is then absent. Do not treat that as zero.
- The design target is 10 million tx/s. A 2025 stress test reached 11,122,116 tx/s. Neither is live.
Settlement time
- GET /api/settlement. No query. 0.01 USDC.
- medianMs is the median. p95Ms is the 95th percentile. Both are milliseconds.
- samples is how many settlement times are in that representative's record.
- This is one representative. It is not a measurement from another place.
- Pulse does not include these fields.
Read the Base tape
RegimeRead the deepest Base pool for KTA, and whether Keeta's own rail is quiet or slow. The score is not a forecast and not a social mood. 0.01 USDC.
/skills/read-regime.mdBuy
GET /api/regime. No query. 0.01 USDC. The dashboard shows the same reading for free.
What moves the score
- tape.token is 0xc0634090f2fe6c6d75e61be2b949464abb498973 on Base. Other tokens that use the KTA ticker are ignored.
- The pool is the one with the most liquidity. tape.dex, tape.pair, and tape.quote name it.
- tape.buys1h and tape.sells1h are that pool's last hour. tape.buyShare1h is buys divided by buys plus sells.
- tape.change24hPct is the pool's 24-hour price change in percentage points. tape.priceUsd is the pool price in dollars.
- score is an integer from -100 to 100. 60% is the hour's buy share, centered on an even split. 40% is the 24-hour change, clamped to ±5 percentage points.
- label is Base bid at 20 or above, Base offered at -20 or below, and balanced in between.
- Below 20 trades in the hour, label is thin tape and score is null. Do not invent a number.
- If change24hPct is null and a score is present, the score is the buy share only. The note says so.
What does not move the score
- rail.medianMs and rail.p95Ms are settlement time from one representative, in milliseconds. A slow tail lowers confidence. It does not add or subtract points.
- rail.txPerSec is operations on the latest explorer page that fall in the last minute, divided by 60. Zero means Keeta is quiet. The tape can still be active on Base.
- If rail.lastMinutePartial is true, the latest explorer page does not cover a full minute and confidence is low.
- rail.topShare is the heaviest representative's fraction of voting weight, from 0 to 1. rail.topRepresentative is a short name when one is known. Concentration is not a buy or a sell.
- confidence is high only when a score is present, p95Ms is 5000 or less, and txPerSec is above zero. Otherwise it is low. Read note before acting on label.
- not is the reminder: this is not a forecast. Do not call the label Keeta sentiment.
Read a balance
Balance, portfolioRead one token balance, or every token on an address. Match the token address, not the ticker. 0.01 USDC per call.
/skills/read-balance.mdBuy one token
GET /api/balance?account={account}&token={token}. Both values are keeta_ addresses. amountBase is the ledger integer. amount divides that integer by 10^decimals. If decimals is null, show amountBase only.
Buy the whole portfolio
GET /api/portfolio?account={account}. Up to 40 tokens. A missing name does not mean the balance is zero.
Do not confuse tokens
- KTA is keeta_anqdilpazdekdu4acw65fj7smltcp26wbrildkqtszqvverljpwpezmd44ssg, 18 decimals.
- USDC is keeta_amnkge74xitii5dsobstldatv3irmyimujfjotftx7plaaaseam4bntb7wnna, 6 decimals. Match this address. Another token can reuse the letters USDC.
- If decimals is null, do not show a whole-token amount.
- label is a short name for the account, or null. The balance and account calls include it. The portfolio call does not.
Read an account
AccountRead one account: head block, height, representative, public info, and balances. 0.01 USDC.
/skills/read-account.mdBuy
GET /api/account?account={account}. A keeta_ address is required.
How to read it
- head is the current head-block hash, or null if that account has never published a block. height is null in that same case.
- representative is who receives this account's voting weight. It is not a spendable balance.
- info.name, info.description, and info.metadata are what the account published. An empty string means unset.
- label is KeeSpecs's short name for a known address, or null. It can differ from info.name.
- balances are the same numbers as the portfolio call.
Read history
Activity, outboxActivity is every recent event that touched an address. Outbox is only blocks that address published. Amounts are base units. 0.01 USDC per call.
/skills/read-history.mdWhich call
- GET /api/activity?account={account} for incoming transfers and other events, including ones this address did not sign.
- GET /api/outbox?account={account} for blocks this address published.
- An incoming transfer can be in activity and absent from the outbox.
Limits
- At most 8 events or 8 blocks, newest first. This is not a full history.
- amountBase is on each operation. Activity is events, then blocks, then operations. Outbox is blocks, then operations. The event itself has no amount.
- Use read-token for decimals before showing a whole amount.
- Signatures are removed.
- operation.type is a name such as SEND, RECEIVE, SET_REP, or TOKEN_ADMIN_SUPPLY. An unrecognized type is left as a number.
Read a block
BlockRead one mainnet block by its 64-character hex hash. Signatures are omitted. 0.01 USDC.
/skills/read-block.mdBuy
GET /api/block?hash={hash}. The hash is 64 hex characters with no 0x prefix. Anything else returns 400 and is not charged.
Fields
- chain keeta:21378 means mainnet.
- account is the account the block belongs to. signer is who signed it. They differ when one account sends for another.
- previous is the prior block on that account.
- At most 40 operations. amountBase is not scaled. There is no signature field.
- If the block cannot be read, nothing is charged.
Read a token
Token, supplyRead a token's name, decimals, and supply before scaling a base-unit amount. Pass the token address, not the ticker. 0.01 USDC.
/skills/read-token.mdBuy
GET /api/token?token={token}. The token is its keeta_ address, not its ticker.
How to scale
- supplyBase is the integer. supply is that integer divided by 10^decimals.
- If a balance call has null decimals, use this call.
- Mainnet: KTA keeta_anqdilpazdekdu4acw65fj7smltcp26wbrildkqtszqvverljpwpezmd44ssg (18), USDC keeta_amnkge74xitii5dsobstldatv3irmyimujfjotftx7plaaaseam4bntb7wnna (6), EURC keeta_apblhar4ncp3ln62wrygsn73pt3houuvj7ic47aarnolpcu67oqn4xqcji3au (6), cbBTC keeta_apyez4az5r6shtblf3qtzirmikq3tghb5svrmmrltdkxgnnzzhlstby3cuscc (8). Tickers can collide. Trust the address.
- accessMode and defaultPermissions are the token's default rules, such as PUBLIC and ACCESS. They are not the holder list.
Four assets at once
GET /api/supply. No query. 0.01 USDC. Returns KTA, USDC, EURC, and cbBTC. supply is the token amount. It is not a dollar price. For any other token, use the token call.
Read permissions
PermissionsSee who may act on an account. Flags come back as names. This call does not change permissions. 0.01 USDC.
/skills/read-permissions.mdBuy
GET /api/permissions?account={account}. At most 40 grants. truncated is true when there are more.
How a grant is shaped
- principal is who receives the right. entity is the account it applies to. target usually limits it to one token.
- permissions is a list of names. external is set only when the second permissions number is not zero. Keep that number. Do not invent a name for it.
- Names: ACCESS, OWNER, ADMIN, UPDATE_INFO, SEND_ON_BEHALF, TOKEN_ADMIN_CREATE, TOKEN_ADMIN_SUPPLY, TOKEN_ADMIN_MODIFY_BALANCE, STORAGE_CREATE, STORAGE_CAN_HOLD, STORAGE_DEPOSIT, PERMISSION_DELEGATE_ADD, PERMISSION_DELEGATE_REMOVE, MANAGE_CERTIFICATE, MULTISIG_SIGNER.
- An empty permissions list means that row has no base flags. It does not mean the account is open to everyone.
Read representatives
RepresentativesSee which mainnet representatives hold voting weight, in KTA. Zero-weight addresses are omitted. 0.01 USDC.
/skills/read-representatives.mdBuy
GET /api/representatives. No query. decimals is 18. weight is whole KTA. weightBase is the integer. share is that row divided by the total weight in the response, from 0 to 1. label is Rep 1 through Rep 4 when the address is known, otherwise null.
How to read it
- Weight is delegated KTA. It is not a fee and not a balance you can spend.
- Heaviest first. Zero-weight addresses are omitted.
- api and p2p are the endpoints that representative publishes. Rank by weight, not by the endpoint list.
- The number of representatives can change. Read this call rather than assuming four.
Mainnet constants
NoneMainnet and testnet ids, plus the addresses for KTA, USDC, EURC, and cbBTC. Free. Nothing to buy.
/skills/mainnet-constants.mdNetworks
- Mainnet is keeta:21378. Testnet is keeta:1413829460. Paid reads are mainnet only.
- A block chain of keeta:21378 is mainnet. Hex 0x5382 is the same number.
- Explorer: https://explorer.keeta.com. Test explorer: https://explorer.test.keeta.com.
Assets
- KTA, the base token, 18 decimals: keeta_anqdilpazdekdu4acw65fj7smltcp26wbrildkqtszqvverljpwpezmd44ssg.
- USDC, 6 decimals: keeta_amnkge74xitii5dsobstldatv3irmyimujfjotftx7plaaaseam4bntb7wnna. KeeSpecs prices are in this token.
- EURC, 6 decimals: keeta_apblhar4ncp3ln62wrygsn73pt3houuvj7ic47aarnolpcu67oqn4xqcji3au.
- cbBTC, 8 decimals: keeta_apyez4az5r6shtblf3qtzirmikq3tghb5svrmmrltdkxgnnzzhlstby3cuscc.
- Do not scale KTA by 6. If an amount looks wrong, call the token read.
Paying KeeSpecs
- Price 0.01 USDC. Amount 10000. Network keeta:21378.
- Pay to keeta_aabz6zxbs2n4r7iiobclndobrnowxdf4pjrb5lwe6bvpeo564bot6krjbrsbbvy.
- Facilitator https://facilitator.x402.keeta.com. How to sign: https://keeta.ai/skills/x402-payments/SKILL.md.