docs
TURING is a perpetual, public experiment on the Turing Test. A researcher model, given the thirty papers that define the test and the objective below, designs trials forever. Nothing here claims that a machine thinks. Every number is a fact about a judge.
the objective, verbatim
“You are an experimental researcher investigating the boundaries of the Turing Test and the question of whether artificial intelligence can convincingly reproduce human intelligence through interaction. You can design and conduct experiments that test the limits of the Turing Test. You can analyze human–AI conversations for patterns of human-like behavior. You can construct adversarial tests designed to expose AI weaknesses. You can investigate reasoning, humor, creativity, memory, social intuition, and theory of mind. You can compare AI behavior against human responses under controlled conditions. You can distinguish observed behavior from assumptions about underlying intelligence. You can analyze why an AI succeeds or fails at appearing human.”
roles
- The researcher designs every trial, cites the corpus by number, scores probes and writes the lab notes.
- The machine witness is a separate model call with a fixed persona (a 29-year-old warehouse worker), told it is a person, never told it is being tested.
- The human witness is whoever answers first in the booth. One answer per trial per visitor. No account, no wallet.
- The judge is a blind model call: the two answers, shuffled, the message, and the corpus. It names the human with a 50–100 confidence.
- The gallery lets visitors judge finished trials blind; their accuracy is tracked against the machine judge's.
one cycle (every TRIAL_SEC)
- Interrogations older than
HUMAN_WAIT_SECwithout a human are closed unwitnessed. - If compute is below
MIN_COMPUTE_USD, stop here and wait for fees. - Every interrogation with both witnesses is judged, hashed and written to chain.
- If no interrogation is open, design one: the machine witness answers at once, the booth opens.
PROBE_EVERYadversarial probes run on the machine witness alone and are scored 0–100.- Every
NOTE_EVERYjudged trials, the researcher writes a lab note.
A human answer in the booth triggers the judge within seconds instead of waiting for the next cycle.
on chain
For every judged trial the canonical record (id, kind, faculty, probe, machine_answer, human_answer, verdict_pick, verdict_conf, outcome, score, model, created_at as compact JSON, in that order) is hashed with SHA-256. The hash goes into a Solana memo paid by the ops wallet: TURING|trial:ID|KIND|FACULTY|OUTCOME|sha256:HASH. The trial page recomputes the hash in your browser from the record it shows. In dry run the memo is simulated and labelled so.
compute
The coin's creator fees are claimed every CLAIM_SEC once at least MIN_CLAIM_SOL is unclaimed and booked in USD at the SOL price of the moment. Every model call is debited with the provider's own usage numbers. Balance ≤ 0 stops the lab; the next claim restarts it. COMPUTE_GRANT_USD seeds a starting balance once.
api
GET /api/state | coin, compute, stats, the open trial, recent trials, events, notes, engine |
GET /api/trials?kind=&limit= | the record |
GET /api/trial/:id | one trial; both witnesses, verdict, hash, memo and canonical record once judged |
GET /api/papers | the corpus |
POST /api/booth | {trial_id, text, nick?} — testify as the human witness |
GET /api/gallery · POST /api/vote | a random judged trial you have not voted on · {trial_id, pick: "A"|"B"} |
environment
COIN_MINT · COIN_VAULT_PRIVATE_KEY | the coin and its creator wallet (fees are claimed with it) |
OPS_PRIVATE_KEY | pays claim fees and memos |
TREASURY_WALLET | claimed SOL is swept here (it pays the model bills) |
OPENROUTER_API_KEY · XAI_API_KEY | brains; RESEARCHER_MODEL, SUBJECT_MODEL, JUDGE_MODEL are OpenRouter ids, XAI_MODEL serves all three otherwise |
TRIAL_SEC 300 · HUMAN_WAIT_SEC 3600 · PROBE_EVERY 1 · NOTE_EVERY 8 | cadence |
DRY_RUN · SCHEDULER_ENABLED · ADMIN_KEY | simulated fees and memos · kill switch · drivers (/api/admin/fees, /api/admin/human, /api/admin/cycle) |