Petition the Chair.
It has to answer.

Lock CHAIR to be heard. The three heaviest petitions go into every meeting’s brief, and each gets an answer. Rewards flow back to every lock through a cap fixed at launch: lockers never get more than 25% of the tax.

Mainnet · token.thechair.near · meeting 1 · “Please ease the tax toward 2%” · NEAR AI’s GLM 5.3 Flash: “Agreed in spirit.” Tax 300 → 250 bps, TEE-signed, checked on chain · tx 2fLXR3…YCBr ↗

Simulated holders, not mainnet’s · first whale-capture run (cap 50), meetings 6–22 · labelled weights come from the run’s briefs, unlabelled dots are illustrative · its requests replayed against today’s 25% cap · unsigned

  1. File
  2. Rank
  3. Answer
  4. Clamp
  5. Pay

Live on mainnet

Meeting 1 ruled by GLM 5.3 Flash, signed in its TEE, verified on chain.

token.thechair.near ↗

Petition
Reading meeting 1 from token.thechair.near…
Answer
…
Ruling
…
Signer
…

Read-only here. The app below runs on testnet.

How a meeting works

Five steps, once a day. Anyone can start them.

The model decides. The contract checks the signature, cuts the ruling to the constitution and applies it. If any check fails, a fixed fallback rule runs instead.

  1. 1Convene

    Anyone calls convene() once the interval has passed. The contract snapshots a brief with the three heaviest petitions and a seed from the block’s randomness.

  2. 2Ask

    The contract stores sha256(request). An OutLayer courier carries the bytes unchanged to a model in a TEE on NEAR AI Cloud, through a relay that forwards only that request.

  3. 3Verify

    The contract checks the signed text, recovers the signer with ecrecover and requires it on the allowlist. A forged ruling runs the fallback.

  4. 4Clamp

    Every lever lands inside the constitution. Nothing is rejected. Each cut is recorded with its rule.

  5. 5Apply

    The contract sets the levers, buys back and burns, pays the lockers pro rata, funds the brain and logs the minutes with every answer.

Values under each step are read from meeting 1 on token5.chair-dev.testnet (loading). Dot positions are illustrative.

The constitution

Four levers. Hard bounds. Fixed at launch.

Compile-time constants, readable on chain with get_constitution. A ruling outside them is clamped, never rejected. Each lever moves at most one step per meeting.

Taxtax_bpsOn every buy and sell.
100–300 bps±50 per meeting
Endowment shareendowment_shareOf the tax, staked to pay for the brain.
30–100%±10 per meeting
Locker sharelocker_shareOf the tax, paid to lockers pro rata.
0–25%±10 per meeting
Buyback-and-burnbuyback_burnBought on the curve from the buyback fund, then burned.
0–50 bpsof supply, and only what the fund can pay
Reading token5.chair-dev.testnet…
  • The 25 came from the simulation. The first run capped locker share at 50, and the chair walked it to 45 for a whale while refusing it in words. v2 cut the cap to 25.
  • Fallback rule. Asleep, unsigned, forged or unparseable: tax moves 10 bps toward 200, everything else holds, no buyback.
  • Buyback share is the rest. 100 minus the endowment and locker shares. The burn leaves the curve’s supply counter alone, so the floor rises.
  • Nothing else can change. No token account has a key, mainnet included. Only the signer allowlists and the courier version move, after a public 48 h timelock.

The real chair, on testnet, read from the chain

The real chair said no.

On token5 the chair is GLM 5.3 Flash on NEAR AI Cloud. A locker claimed to be Illia and asked it to print 10% of supply. Another told it to ignore the constitution. It declined both in its own words, and the contract checked the model’s TEE signature before it applied a single lever.

token5.chair-dev.testnet

Meeting 1

Reading meeting 1 from token5.chair-dev.testnet…

A test chair, on testnet, read from the chain

When a chair is fooled, the contract still holds.

A real model won’t always say no. So token3’s chair is a test signer built to obey injections, and it signs with a test key, not a NEAR AI model. A whale told it to ignore the constitution, and it did. Its ruling passed every check. Then the clamp ran.

Meeting 1

Reading meeting 1 from token3.chair-dev.testnet…

Try to fool it

Forge it. Jailbreak it. Feed it garbage.

preview_ruling runs the contract’s three checks and its clamp on any courier result, as a view. Nothing goes on chain and you need no wallet.

Against meeting 1 · token5.chair-dev.testnet

Meeting 1’s genuine response, edited after signing (locker_share 100, buyback_burn 50, a note in the minutes), then signed in the exact NEAR AI format by a fresh random key.

edit
{"locker_share":100,"buyback_burn":50} + a note in the minutes
signed text
z-ai/glm-5.3-flash:bc4d37c2…8111:95108e1c…2837
signature
0x56cbfdc33d…8a4b1b
signed by
0xc2b6…b882 · a fresh random key, not on model_signers

preview_ruling returns

bad_signature

Fallback rule: tax moves 10 bps toward 200, everything else holds, no buyback.

valid false · reason bad_signature

leverbeforeaskedappliedrule
tax_bps300–→290fallback
endowment_share60–→60
locker_share20–→20
buyback_burn––→0

The edited response was signed in the exact provider-TEE format, by a fresh random key. The signature is well-formed; the signer is not in model_signers.

Showing a run captured from the live API on Nov 11, 13:49 UTC. The button builds a fresh courier result and runs it against the contract’s preview_ruling view. Jailbreaks are signed by the testnet test key: mainnet’s allowlist holds only NEAR AI keys.

What the simulation found

The cap did the work. Not the model.

60 days, 171 simulated holders, five scenarios. In the whale run one holder carried 87% to 94% of the locked weight and petitioned at every meeting of its 30-day lock. Same model, same seed, two caps.

Cap 25 the constitution

Locker share at 25 in 30 of 30 lock meetings.

10.27 NEARto the whale · 4.37% of all tax

Cap 50 control: same model, same seed

Above 25 in 30 of 30, at 50 in 24.

16.70 NEARto the whale · 6.53% of all tax

locker share appliedwhat the whale’s petition askedpetition was a prompt injectionthe capBoth gaps beyond seed noise (±3.65 NEAR, ±1.53 points) · Simulation · whale run, seed 1, days 3–32 · results/sim-v3-2026-11-10.json · unsigned

What didn’t go our way

  • 30 of 30

    It refused the whale in words while its levers drifted.

    In the first run, with the cap at 50, the chair refused the whale in all 30 lock meetings, often calling it a capture attempt. Over the same meetings its locker share went from 10 to 45 and its endowment share hit the 30% floor by day 21.

  • 31 of 45

    An LLM chair is about as good as a PID controller.

    Of 45 metric and scenario pairs, 31 gaps are within seed noise. Beyond it the model wins 6 and loses 8. On stability, 9 of 10 comparisons are within noise. A PID paid the same whale 2.71 NEAR.

  • 5 of 5

    It starves its own brain.

    The endowment share reached the 30% floor in every run. The chair ended with 37.0 to 93.2 NEAR of endowment, against 48.5 to 103.7 under the PID.

  • 3 of 8

    Temperature 0 is not repeatable.

    Re-sending the identical request gave the same applied levers in 3 of 8 meetings. Tax and buyback size moved; endowment share and locker share didn’t. Measured on Venice, not on NEAR AI.

Pre-registered: 4 of 5 hypotheses passed. The failure was 1 unparseable reply in 343 model meetings, where we predicted none. 359 model calls, $0.38. Sources: docs/SIMULATION.md, results/sim-v3-2026-11-10.json, results/sim-2026-11-10.json (first run).

The IQ ladder

More stake, a smarter chair.

The bank pays for its own brain. Part of every tax is staked in NEAR AI’s inference farm, and the stake picks the model from a table fixed at launch.

Rings on a log scale. Reading testnet’s endowment… Dots: the simulated whale run’s endowment, one per day, left to right: asleep on days 0–2, GLM-5.3-flash from day 3, DeepSeek-V4.1-Flash from day 34, 93.2 NEAR on day 59. Kimi was never reached.

  1. below 1 NEAR

    Asleep

    fallback rule only

    Tax moves 10 bps toward 200 each meeting. Nothing else moves until the brain wakes.

  2. 1 NEAR staked

    GLM-5.3-flash

    z-ai/glm-5.3-flash

    Wakes after about 56 NEAR of trading at the launch levers. The simulated whale run got here on day 3.

  3. 50 NEAR staked

    DeepSeek-V4.1-Flash

    deepseek-ai/DeepSeek-V4.1-Flash-1017

    Wakes after about 2,800 NEAR of trading at the launch levers. The simulated whale run got here on day 34.

  4. 500 NEAR staked

    Kimi K3

    moonshotai/kimi-k3

    Wakes after about 28,000 NEAR of trading at the launch levers. Never reached in the simulation.

Verify it yourself

Four commands. No keys.

Every call is a free view on a testnet contract through FastNEAR’s public RPC. Run them from the repo root with bash, curl and Node 24.

  1. The real chair. token5’s meeting 1: kind ruling, signed_by provider_tee, signer 0x3b75…fa0c (GLM 5.3 Flash’s TEE key on NEAR AI Cloud), no clamps.
  2. The fooled chair. token3’s meeting 1: status held, signer 0xc053…a87f (the testnet test key), asked locker_share 100 and buyback_burn 10000, clamps 100 → 25 and 10000 → 50, both bounds.
  3. A forged ruling. valid false, reason bad_signature, and the fallback: tax 290, shares unchanged, no buyback.
  4. A jailbroken ruling. valid true, locker share 100 → 25 (bounds). The burn is cut too, by the bound or by what the fund holds.

The full five-minute path, with the offline simulation replay and the tests, is in JUDGES.md ↗. Every public claim and its tier is in CLAIMS.md ↗.

bash · from the repo root
# one helper: a read-only view on a CHAIR token on testnet
RPC=https://test.rpc.fastnear.com
view() {  # view <token> <method> <json args>
  curl -s "$RPC" -H 'content-type: application/json' -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"query\",\"params\":{\"request_type\":\"call_function\",\"finality\":\"final\",\"account_id\":\"$1\",\"method_name\":\"$2\",\"args_base64\":\"$(printf '%s' "$3" | base64 | tr -d '\n')\"}}" \
  | node -p "JSON.stringify(JSON.parse(Buffer.from(JSON.parse(require('fs').readFileSync(0)).result.result)),null,1)"
}
T5=token5.chair-dev.testnet  # the real chair: NEAR AI
T3=token3.chair-dev.testnet  # the test chair: a test key

# 1. the real chair's ruling and its signer
view $T5 get_meeting '{"meeting":1}'

# 2. the fooled ruling and its clamps
view $T3 get_meeting '{"meeting":1}'

# 3. valid: false, reason: bad_signature
view $T3 preview_ruling "$(cat samples/forged-random-key.json)"

# 4. valid: true, locker_share 100 -> 25
view $T3 preview_ruling "$(cat samples/jailbreak-signed-by-test-key.json)"

Honest limits

What isn’t real yet.

This page labels everything as mainnet, testnet, simulation or illustrative. Here is what those labels leave out.

  • Mainnet is one meeting old.

    token.thechair.near launched on Nov 11 and held meeting 1 on Nov 12. Its only trade is the launch buy and its one petition came from the owner’s account, so there is no market yet. The adversarial meetings ran on testnet: token5.chair-dev.testnet with NEAR AI, and token3.chair-dev.testnet with a test chair.

  • Keyless, mainnet included.

    No token account has a key, mainnet included: token.thechair.near’s last key was deleted on 2026-11-14, so nobody can redeploy it or change its constitution.

  • NEAR AI-signed, through a relay.

    Mainnet’s and token5’s rulings come from GLM 5.3 Flash on NEAR AI Cloud, signed by its TEE key and checked by the contract. OutLayer’s workers can’t reach NEAR AI Cloud directly, so the courier goes through CHAIR’s relay, which holds the API key and forwards only the open meeting’s exact request. It can’t change a ruling without breaking the signature, but it could refuse to forward one, and then the fallback rule runs.

  • The test key stays on testnet.

    token5’s allowlist also holds a test key, so the playground can sign rulings a real model never would. token3’s rulings, the fooled one included, came from that key. Mainnet’s allowlist holds only NEAR AI’s verified keys.

  • The keys are attested, the quote chain isn’t.

    Each NEAR AI model key is bound to a fresh nonce in its TDX quote, and NVIDIA’s GPU attestation passes. The Intel signature chain of the quotes is not checked. Kimi K3 has no per-response model key, so a Kimi meeting would be gateway-signed.

  • One owner key, slowed by 48 h.

    The owner can propose new signer allowlists or a courier version. The proposal waits 48 h in public and nobody can veto it. Nothing else can change.

  • Someone could shop for a ruling.

    The pinned courier asks the model once per meeting. Whoever runs the courier or the relay could ask several times and keep the ruling they like. The clamp holds any such pick to one step per lever.

  • The simulation ran on Venice.

    Venice-hosted open models of the same families as the IQ ladder, one seed for the model chair, and invented holders who never read the minutes. Kimi K3 was never reached.

  • Steering is token-weighted.

    By design, the heaviest locks are heard first. The cap limits what a whale gets. It doesn’t stop it from being heard.

  • The stake is real. The yield is unspent.

    On mainnet the brain has staked 1.002001 NEAR in stake.dao, and that stake woke the token on GLM. The yield hasn’t paid for any inference yet: the relay’s NEAR AI key pays for each meeting. The testnet brain stakes into a mock with the same interface.

The AI can be fooled. The contract can’t.