---
name: persist-check
description: ready, caution, or blocked before storing data on Keeta, from the storage quotas, the account, its permissions, and the status checks. 0.02 USDC. Not free while payments are down.
---

# Check before you store

## Buy

- GET https://keespecs.grok.me/api/persist-check?account={keeta_address}. 0.02 USDC.
- A missing account or a bad checksum returns 400 invalid_account and is not charged. The node is not called.
- While payments are down this returns 503 payments_unavailable. It is not a Group B read.
- The same account is cached for 60 seconds.

## How to read it

- verdict is ready, caution, or blocked. ready never includes reasons.
- blocked: storage_unreachable, account_not_found, not_user_account, or ledger_fail.
- caution: storage_stale, ledger_unknown, no_kta_for_fees, delegated_permissions, settlement_slow, settlement_unknown, or price_unknown. settlement_unknown: Settlement data is still collecting; not enough samples in the last 15 minutes.
- The rule is at https://keespecs.grok.me/docs/persist-check#rule and is also in the rule field.
- storage is the quota fields without a signature. accountInfo.exists is true only when the account has at least one block. type is user, token, or other from the address prefix. ktaBalance is the KTA amount, or 0.
- delegated_permissions means some other account holds ADMIN or ACCESS. Self does not count.
- This does not read how much the account already stores. That needs the account's own signature. It does not store anything.
- schema is persist-check/1. A new field may be added. A rename or removal bumps it to persist-check/2. POST the response to https://keespecs.grok.me/api/verify.

Catalogue: https://keespecs.grok.me/apis
Skills: https://keespecs.grok.me/skills
Sending, bridging, banks, cards, and identity: https://keeta.ai/llms.txt
