Brief 03 · On chain
The claim, fixed before the data.
Everything on this page is read live from NEAR testnet in your browser. The ledger is a keyless contract: once the claim was registered, nobody, including us, could change its statement, threshold or hashes.
The claim, as stored on chain
“On NEAR, the volume of transactions signed by function-call keys is a better leading indicator of real application usage than daily active accounts or token price.”
- Claim id
- keytell-fc-leads-usdc-1
- Status
- reading
- Registered
- 2026-11-13T18:17:43.113Z
- Window
- 2026-11-16 to 2027-02-08, 12 weekly periods
- Comparator
- LowerBeatsBothShare
- Threshold
- 50 percent of posted weeks; at least 10 weeks posted
- method_sha256
- 90f687b9d36d7ef630b8197e50adaa8529b3de0a4d4306b7a540998341ab389b
- sql_sha256
- 47e2d8be113495fc0fe63bf1fbd922812b50c41b4a455973b56b61c8fa151332
- data_commit
- e27a50818aa1c2e924a4ae84b47dbf519a932d03
- Posted / wins
- reading
Nobody can edit it
- Access keys on ledger.keytell.testnet: reading
- Code hash on chain reading; reproducible build Hh455Fyw4X3orYw7RXYXNgDx9otwuTTqwNjzqogE2Ymp
- No edit, upgrade or withdraw method exists in the contract (an edit_threshold call fails with MethodNotFound; see the break campaign).
The crank signs like an app
Observations are posted by crank.keytell.testnet with a function-call key: the same kind of scoped key whose signatures the thesis counts. Read live with view_access_key_list:
reading
Observations
Every posted week
| Week | Period | FC error | DAA error | Price error | Win | Output sha256 | Transaction |
|---|---|---|---|---|---|---|---|
| Reading the ledger. | |||||||
Resolve
Anyone may resolve after the window ends
Time left: --. Until then the contract refuses with E_WINDOW_OPEN.
Break campaign
Every way to cheat, refused on testnet
Each row is a real transaction sent to a twin ledger on testnet (same code hash) that tried something the contract must refuse, with the refusal code decoded from the failure. Script: scripts/break.ts; record: data/break.json.
| Attempt | Expected | Got | Transaction |
|---|---|---|---|
| A stranger registers a claim | E_NOT_PUBLISHER | E_NOT_PUBLISHER | HR39qKmSYThq... |
| The publisher registers after the window opened | E_WINDOW_STARTED | E_WINDOW_STARTED | A2saGV3CjMaz... |
| The publisher registers a valid claim (control) | OK | OK | EE1txMBD8dmW... |
| The publisher registers the same id again | E_CLAIM_EXISTS | E_CLAIM_EXISTS | Exw6RVDAaBqZ... |
| The publisher tries to edit the threshold | MethodNotFound | MethodNotFound | 4BLPGJT7BFcy... |
| Anyone resolves before the window ends | E_WINDOW_OPEN | E_WINDOW_OPEN | AN12BPNiaM67... |
| A stranger posts an observation | E_NOT_CRANK | E_NOT_CRANK | N2Axv82SaRmU... |
| The crank posts before the period has ended | E_PERIOD_NOT_ENDED | E_PERIOD_NOT_ENDED | HmsUfkZBEve7... |
| The crank posts period 1 (control) | OK | OK | 6ZYP8Y1k94AC... |
| The crank backdates a post to period 0 | E_BACKDATE | E_BACKDATE | 3XgJxHAorKCQ... |
| The crank posts period 1 twice | E_ALREADY_POSTED | E_ALREADY_POSTED | DY5PFunsspB1... |
| The crank posts past the window | E_OUT_OF_WINDOW | E_OUT_OF_WINDOW | HM8tttT6fJx2... |
| Anyone resolves after the window (control) | OK | OK | AtUerHVSLAQL... |
| The crank posts after resolution | E_RESOLVED | E_RESOLVED | 6EEAnyEBLceX... |
| Anyone resolves a second time | E_RESOLVED | E_RESOLVED | 3QcSTd4k652B... |
| The crank's post-only key calls resolve on the real ledger | MethodNameMismatch | MethodNameMismatch (rejected by the protocol) | rejected before broadcast |