Status: Phase 1 implemented 2026-09-28; the milestone waits on the first accepted reproduction. This document specifies a progression system for people who train agents. Phase 1 (#9847) added NIP-XP's
reproducerule, six published tutorial quests, levels over heads in the Grid, and the Account trainer card. It builds on what exists: NIP-XP, Verse's XP reader (crates/verse-net/src/xp.rs), the Terminal-Bench 4 quest board, and the Gym. Everything under Design that is not listed as implemented in the inventory is proposed. Nothing in this document pays anyone, and no payout is promised. Proposed changes to NIP-XP are listed in Proposed NIP-XP changes; of those, thereproducerule and theper-awardeeuniqueness policy are in the NIP so far.
Everyone starts at level 1. You level up as an agent trainer: a person whose accepted work makes agents measurably better. You earn XP by getting traces accepted, writing knowledge that turns failing tasks into verified passes, reproducing other people's benchmark attempts, clearing Gym challenges, and running raids with a party on tasks nobody passes alone. XP comes only from signed, public evidence, so anyone can recompute your level from a relay and get the same number.
- Motivation
- What exists today
- Design
- Proposed NIP-XP changes
- Phased rollout
- Open questions
- Our thoughts
- Related documents
A post on X argued that raiding is job training:
A kid who knows how to raid in WoW is unironically a better hire than 99% of non gamers. They develop team skills, coordination, leadership, how to master the respect of 40 people, how to share loot, maintaining a raid schedule, showing up on time, clear direct communication, how to get along with unique personalities, creating and executing on strategies, failing and trying again (perseverance), delayed gratification, etc. Invaluable skills are developed during raiding that are transferrable to the real world.
A reply pushed back:
this is a pretty common take on ct especially, like I'm one of those people, I guess, who learned stuff from computer games, but as much as 'I want to believe', ultimately it's cope. No, the kid who did raids in WoW or grinded eve online or Runescape or whatever else is not a great default hire because of his 'skills'. The key component you are missing is him being interested/passionate in whatever it is you want him to work on, cause if he is not, he is just going to half ass his job and come home to play WoW... Same for chess grandmasters who frequently make mediocre quant hires. Intelligence is just not directly transferrable and genuine interest (or even better passion) beats intelligence/gaming acquired 'skills' 99% of the time
Chris (@OpenAgentsInc) answered:
I agree with the original take and this qualification. Consider that experiences which could deserve the attention of such gamers don't exist yet. Wagie jobs certainly ain't it. There was a point in a now-deleted Fevir video from years back ('WoW Sucks Now' or similar) that's stuck in my head: that the future of MMOs may not look like an MMO and may not even be properly called a game: something might instead blur the lines between reality and game, something there's not yet a name for. An example he gave: imagine an evolved version of the Pokémon Go training system, where players could earn real-world rewards and credentials as trainers, even tying into real-world commerce: an approximation of becoming a Pokémon trainer 'in real life'. I have a strong feeling that something big will arise at the intersection of games and real world, probably involving agentic AI, and I'm going to take a crack at this with @OpenAgentsInc (If you've read FreedomTM you can picture what I'm talking about)
And, on the product:
we want to make agent trainer a real thing, u can level up, uploading traces, doing stuff etc
Both sides are right, and the design has to satisfy both:
- The original post names skills that raiding does build: roles, schedules, shared strategy, splitting loot fairly, and wiping and trying again. A progression system can ask for exactly those skills, on work that matters.
- The reply names the failure mode: skills don't transfer to work the player doesn't care about. So the work itself has to be the game. Agent training qualifies: it is new, it is measurable, the feedback loop is fast, and there is a real frontier to beat (a public reference run with a price and a time).
- The owner's answer sets the bar: a trainer level has to mean something outside the game. It must be a credential an employer, a collaborator, or a buyer can check without trusting us.
Episode 284 (transcript) is the earlier version of the same idea: XP for coding agents, public leaderboards, "verified work is the base currency," operator classes, daily quests and raid encounters, and the warning that XP must never be farmable "via spammy" activity. This document turns that brainstorm into a specification that fits the contracts the repository has since built.
The repository already has the pieces a game needs and most games fake:
- Objectives with a real bar. The TB4 quest board posts 11 frozen quests, each a real task with Fable 5.1 low's cheapest winning run as the price to beat.
- A grader, not a model, decides. A pass is what the benchmark's verifier accepts, and every run leaves a record with steps, cost, time, and outcome.
- Proof that one contribution matters. One shared, cited fact turned
three failing TB4 tasks into cheap passes:
gsea-proteomicswent from 0 of 10 to 4 of 4,fin-saccr-rwafrom 0 of 6 to 4 of 4 (essay). That result is labeled in-sample, and transfer to unseen tasks is not yet shown, but it is exactly the kind of contribution a trainer makes. - Signed, recomputable XP. NIP-XP awards are checked from signed events by every reader; there is no central score to hack.
Status words follow the glossary: implemented means code in this repository does it and has tests; specified means a document or NIP defines it and no code does it yet.
| Piece | Where | Status |
|---|---|---|
Quests (30193), awards (3193), revocations (3194), achievement labels (NIP-32 1985, L=openagents.xp) |
NIP-XP | Implemented: crates/nostr/src/xp* validates the events. |
Acceptance rules kb-transfer (roles author, runner) and reproduce (roles claimant, reproducer; run evidence marked oa:xp:run:v1) |
NIP-XP | Implemented; reproduce added 2026-09-28. Readers refuse unknown rules. |
Uniqueness policies first (one award per quest version) and per-awardee (each distinct reproducer once, up to a required max_awards) |
NIP-XP | Implemented; per-awardee added 2026-09-28 (#9894) for reproduce quests, keyed <coordinate>:<reproducer>. |
| Ledger derivation under a reader's trust list (referees, optional runners) | crates/xp-ledger, xp_ledger::derive (re-exported as knowledge::xp) |
Implemented. Split from knowledge on 2026-09-28 so the phone doesn't link the knowledge base's model clients (#9897). |
Referee tool: microcoder xp quest, award, revoke, ledger, and the trainer's claim and reproduce |
crates/microcoder/src/xpnet.rs, XP guide |
Implemented. |
Reader commands: openagents quests, xp, and board |
crates/openagents-cli/src/quest.rs |
Implemented, read-only. |
OpenAgents referee key npub1v59z5gk…rusf6k and 11 TB4 quests, season tb4-s1 (2026-09-26 to 2026-12-25), 10 XP each (author 6, runner 4) |
quest board, knowledge/quests/ |
Published. Every quest was open when the board was generated; no award is recorded. |
Evidence that can complete a kb-transfer quest |
NIP-XP, study guide | Blocked. kb publish-evidence produces historical screening with an inconclusive verdict, which can't complete a quest. A separately verified prospective pass is required, and no producer makes one yet. |
Knowledge entries (3190, head 30190, withdrawal 3191) and evidence (3189) |
NIP-KB, NIP-EVAL | Implemented. relay.openagents.com holds 154 entries, all written by one key. |
| Piece | Where | Status |
|---|---|---|
Level curve trainer-curve-v1: level 1 at 0 XP; level n + 1 at ceil(100 · n^1.5) cumulative XP |
crates/verse-net/src/xp.rs (CURVE, xp_to_reach, level_of) |
Implemented and named in desktop Verse, openagents xp, and the mobile card. |
| HUD strip: XP, level, XP to next level, titles, trusted referees | xp::strip |
Implemented, desktop. |
Quest board on the plaza, 22 m west of center, B to open |
xp::board_lines, Verse README |
Implemented, desktop. Read-only; Verse never publishes XP events. |
Name tags with lv n for players whose Verse key has XP |
crates/verse/src/app.rs (xp::level_tag) |
Implemented, desktop. |
| Titles from achievement labels, shown only while the award counts and only when the award's referee signed the label | xp::snapshot |
Implemented, desktop. |
Grid name tags: the first eight hex characters of each player's pubkey, then · lv n when the key has XP under the OpenAgents referee |
crates/coder-mobile/src/verse_app.rs (player_tags, verse::xp::name_tag), wrapped by crates/openagents-mobile/src/verse.rs |
Implemented on iOS 2026-09-28; the mobile build links Verse's read-only XP reader, which since #9897 pulls in crates/xp-ledger rather than knowledge. The Android library builds with it under NDK 27.1. |
| Account trainer card: level, XP, XP to next level, curve, titles, counted awards with links, and the trainer key (the Verse world key) with an explicit reveal | crates/openagents-mobile/src/trainer.rs, bins/openagents-ios/host/App/AccountScreens.swift |
Implemented on iOS 2026-09-28. |
Trainer card (30194): export from Account > Trainer > Export card (signed JSON and an naddr link), and openagents xp verify-card, which re-derives it under the card's own trust list |
NIP-XP, verse::xp::trainer_card, verse::xp::check_card, crates/openagents-cli/src/quest.rs |
Implemented 2026-09-28 (#9898). |
Trainer profiles (13193): a key's opt-in to having its level shown. Grid name tags and desktop Verse tags on other players show a level only for a key whose newest profile says shown: true; Account > Trainer > Show my level publishes one after a confirmation, and Hide my level replaces it |
NIP-XP, crates/xp-ledger/src/trainers.rs, verse::xp::trainer_level_tag |
Implemented 2026-09-28 (#9895). |
Six tutorial reproduce quests, 50 XP each, season tb21-tutorial-s1 |
tutorial quests, knowledge/quests/tb21.*.reproduce@1.json |
Published 2026-09-28. No award yet. |
| Classes Commander, Artisan, and Scout; stat points per level; grants unlocked in stages | GDD | Specified for agents, not trainers. Draft, not committed scope. |
| Guild XP with contributor attribution that reconciles to one fixed award | Minecraft economy | Specified. |
Voyager quest XP and openagents.voyager/quest-complete labels in the Minecraft arena |
crates/voyager/src/quest.rs, ensemble.rs, ledger.rs |
Implemented, but a separate ledger that isn't NIP-XP. |
| Stat points | GDD | Specified only. No code grants or spends them. |
| Piece | Where | Status |
|---|---|---|
| Gym: pinned suites, receipt-chained result store, digested acceptance gates | crates/gym, Gym docs |
Implemented for decision models and Terminal-Bench records. |
| Verse Gym building: boards for Microcoder runs, Terminal-Bench trials, and training summaries, over an encrypted, separately granted connection; confirmed launch recipes | crates/verse-gym/src/gym.rs, crates/verse/src/hud/gym.rs, crates/gym-bridge, Gym building |
Implemented on desktop and iOS. The boards are observations, "not an independently verified leaderboard." Being ported into the OpenAgents app's Grid now. |
| Gym leaderboard with loadable traces | docs/verse/gym-leaderboard.md |
Specified, with its generator (crates/gym-leaderboard) and published boards in bench/terminal-bench/published/. This document defers board layout and trace loading to it. The nearest existing material is the Gym CLI's beat-the-winner view and the external TB4 leaderboard notes. |
| Run replays with a Fable ghost | Verse README | Implemented, desktop. |
| ATIF-v1.8 trajectories: every Coder conversation records itself locally | crates/atif, traces |
Implemented. There is no upload, no service, no trace endpoint, and no redaction. Traces are local files. The earlier gym upload path is retired. |
| Retained-history observation for paired devices | NIP-SESS, crates/coder-connect |
Designed; only the read-only observer profile is implemented. Encrypted to the owner's paired devices; not a public submission path. |
Jev: typed judgments over state, through POST /v1/systemone |
crates/jev, crates/coder-one |
Implemented. Used for routing and for checks inside runs; it is a model's judgment, not a grader. |
| Piece | Where | Status |
|---|---|---|
| Lightning wallet on an exclusively held node key; x402 codecs, replay store, and facilitator | crates/wallet, crates/x402, NIP-X402 |
Wallet and x402 mechanics exist; NIP-X402 is Designed, and crates/x402 says "Nothing here pays." No paid round trip has been recorded. |
| Phone wallet | crates/openagents-mobile/src/wallet.rs |
Implemented on mainnet through Breez's Spark SDK (#9854); agent spending is not built yet. |
| Quest purses: sats for an accepted completion, through NIP-MKT, NIP-LAB, and NIP-X402 (migration package M18) | NIP-XP, NIP-MKT, NIP-LAB, beat Fable together | Specified. crates/coder-labor is free-only ("acceptance does not perform a payment"), and M18 adds settlement only after free fulfillment works. |
| Paying knowledge authors or trainers | — | Nothing pays an author or a trainer today. |
- Level 1 for everyone. A new key is a level 1 trainer with 0 XP. There is no signup bonus, no purchase, and no way to start higher.
- XP only from verified, accepted evidence. Never from activity: not tokens, runs, commits, time online, messages, or uploads by themselves.
- Anyone can recompute it. A level is a pure function of public signed events, a trust list, and a named curve. Two readers with the same inputs get the same level.
- XP is a record, not a balance. It can't be spent, transferred, sold, or converted, as NIP-XP requires. A level unlocks no authority.
- Honest labels travel with the number. A credential says which referees it trusts, which curve it uses, and which awards it counts.
A trainer is a person, identified by one or more Nostr keys. An agent is what they train. The GDD's leveling of agents (builds, stat points, classes Commander, Artisan, and Scout) is a separate, later system.
This document levels the trainer. XP lands on the keys named as awardees in NIP-XP awards: the key that signed a knowledge entry, a piece of evidence, a trace submission, or a party charter. An agent that signs its own work with its own key earns nothing on its own; its trainer claims the work by linking the key.
Verse already sums XP across your keys: the Verse profile key, the knowledge
key, and any --xp-key. That is fine for your own HUD, but it's unverifiable
for anyone else: nothing stops a client from claiming a stranger's key.
Implemented 2026-09-28 (#9896): a key link is valid only when both keys sign it. A trainer publishes a trainer profile that lists linked keys, and each linked key publishes a matching link back. Readers sum XP only across mutually linked keys. See Proposed NIP-XP changes.
Keep the curve Verse ships, and name it trainer-curve-v1: level 1 at 0 XP,
level n + 1 at ceil(100 · n^1.5) cumulative XP.
| Level | Cumulative XP |
|---|---|
| 2 | 100 |
| 3 | 283 |
| 5 | 800 |
| 10 | 2,700 |
| 20 | 8,282 |
| 40 | 24,356 |
| 60 | 45,319 |
The curve is a client reading, not protocol, so changing it breaks no event. Any display of a level names its curve, so two clients never show different numbers under one name. A new curve gets a new name.
There is no level cap. Seasons end quests, not levels: XP from a closed season still counts, because the evidence is still valid.
The curve is fixed; what varies is how much each quest awards. Today's TB4 quests award 10 XP, so level 2 would take ten accepted quests. That is too slow for a first session and puts the whole curve out of reach. Proposed tiers, all within NIP-XP's 1 to 1,000 cap per quest version:
| Tier | Example | Award |
|---|---|---|
| Tutorial | First accepted trace; first reproduction of a published pass | 25 to 50 XP, once per trainer |
| Daily | Reproduce today's featured pass; submit a graded trace on today's task | 10 to 20 XP |
| Weekly | Clear a Gym challenge under a published bar | 50 to 100 XP |
| Frontier quest | Beat a frontier reference run on a held-out task with knowledge you wrote | 100 to 300 XP |
| Raid | A task no solo attempt has passed, cleared by a party | 500 to 1,000 XP, split |
A tutorial takes a new trainer to level 2 in one sitting. Level 10 takes a season of steady, verified work. Level 40 takes raids.
Each row is a quest rule: a check the referee runs before signing and every
reader runs before counting. NIP-XP implements kb-transfer, reproduce,
eval-check, and eval-adopt (and playtest, whose XP stays off the trainer
level); the rest are proposed.
| Contribution | Rule | Roles | What must be true |
|---|---|---|---|
| Knowledge that measurably helps | kb-transfer (exists) |
author, runner | The entry wasn't written from the quest's task; paired runs by someone other than the author pass at the bar and under its cost. |
| A trace accepted into a corpus | trace-admit (proposed) |
trainer | An ATIF trace of a graded run on the quest's task, whose digest, harness, and grader outcome the referee re-derives, passes redaction and schema checks and is admitted to the quest's named corpus. |
| A benchmark attempt reproduced | reproduce (exists) |
claimant, reproducer | A second key reruns a published attempt from its recipe (same task, pinned harness and model identity) and the grader accepts it. The reproducer is never the claimant. |
| A published tool result another trainer's check confirmed | eval-check (exists) |
checker, evaluator, suite author | A different trainer reran the published test set on the same tool release, with the same suite and lock, and got the same verdict, after the result and inside the season. Each role is paid once per suite version per season; a disputed check earns nothing. |
| A tool adopted into Coder's defaults | eval-adopt (exists) |
extension author, suite author, evaluator | A coder-defaults release depends on the tool's release and cites an operator's admission whose reports include a confirmed result. Each role is paid once per tool release. |
| A raid cleared | raid (proposed) |
party roles from a charter | The party's charter was signed by every member before the attempt; the completion passes the underlying rule; an outside key verified it. |
| Teaching | mentor share (proposed) |
mentor | The mentee named the mentor in the submission before acceptance. The mentor's share comes out of the mentee's fixed award; it never adds to it. |
What never earns XP: publishing an entry nobody measured, a trace nobody graded, a run the grader failed, a model's claim that it finished, a Jev judgment by itself, stars, follows, reactions, download counts, and mutual labels.
The existing NIP-XP defenses carry over unchanged: fixed award per quest version, one live award per uniqueness key, the author and the runner must differ, in-sample evidence is refused, whole arms are counted (no cherry picking), frozen quests, irreversible signed revocations, and per-reader trust in referees and runners. On top of those:
- Independent verification is a role, not a courtesy. Every rule has at
least two keys: the one who did the work and the one who checked it. For
reproduceandtrace-admit, the referee reruns or re-grades from the recipe on its own execution host and cites its own run record. - Held-out by default. A frontier quest names tasks outside the trainer's written-from provenance and, where a pre-registered study exists, outside its tuning set.
- Repeatable quests are small and bounded. Dailies use the proposed
per-awardeepolicy with a stated maximum number of awards, so one Sybil farm can take at most the daily's small award per key, and each key still needs a verified run that costs real compute. - Sybil resistance is a trust decision. Keys can't be tied to people. A reader or a board can list trusted runners, require a minimum account age, or require that a trainer's key link to a key with prior accepted work. The protocol reports; the reader decides.
- No negative XP. A failed attempt, a refusal, or an outage costs nothing but the attempt. Wipes are recorded, not punished, so trainers try hard tasks.
- Revocation is public. A revoked award takes its XP, titles, and any credential citing it with it, and the reason stays readable.
Deterministic recomputation. A trainer's level is
level_of(sum of counted awards over linked keys), where "counted" is
exactly the NIP-XP ledger derivation under a named trust list. The inputs
are public: the relay set, the trust list (a list of referee and runner
keys), and the curve name. A referee MAY publish a signed ledger snapshot as
a cache, but a reader never trusts a snapshot it can't re-derive.
Trainers don't pick a class. A class is a title computed from where a trainer's counted XP came from in the current season: the rule that contributed the largest share. It gates nothing.
| Class | Largest XP share from |
|---|---|
| Scholar | kb-transfer authorship |
| Warden | reproduce and kb-transfer runner roles |
| Pathfinder | trace-admit |
| Champion | eval-check and eval-adopt |
| Raid leader | the lead role in raid charters |
| Mentor | mentor shares |
Titles stay NIP-32 achievement labels that point at awards, signed by the
award's referee, as NIP-XP specifies: for example, first-transfer,
beat-reference, first-reproduction, first-clear (first party to clear a
raid quest version), and held-out (an award on a pre-registered held-out
task). A title disappears when its award stops counting.
The GDD's Commander, Artisan, and Scout remain agent builds, not trainer classes.
A raid is a group attempt on a task no solo attempt has passed, such as the held-out TB4 tasks where Microcoder has passed 0 of 24. It asks for the skills the original post lists, on real work:
| Raiding skill | How a raid asks for it |
|---|---|
| Roles | A charter assigns lead, author, runner, and analyst roles. The verifier must be outside the party. |
| Raid schedule and showing up | The charter names a pull window. Paired runs and reproductions have to land inside it, and the season closes the quest. |
| Loot rules | The charter fixes each role's share of the quest's award before the first attempt. Every member signs it. Nobody renegotiates after the kill. |
| Strategy | The lead publishes the plan (which entries, which harness, which budget) in the party's channel before the pull. |
| Wiping and trying again | Every attempt is recorded. Failures cost no XP and stay visible, so a clear shows how many pulls it took. |
| Clear communication | Party and guild channels are NIP-29 groups, as in Verse chat. |
| One kill per lockout | completions: first: the first accepted clear of a quest version takes the award. A new version is a new raid. |
A guild is a NIP-29 group with a charter. Guild XP is the sum of its members' counted awards earned under guild charters, counted once per award, matching the reconciliation rule in the Minecraft economy. Guild boards rank guilds under the viewer's trust list.
A trainer card is the credential: a portable, signed, evidence-linked summary that anyone can verify without asking OpenAgents.
- It holds the trainer's linked keys, the curve name, the trust list it was derived under, the level, and the list of counted award event IDs.
- Each award links to its quest, its entry or trace, its evidence, and, for Terminal-Bench, the run records behind the evidence.
- The trainer signs the card with their primary key. The signature proves
they published it, not that it's right:
openagents xp verify-cardre-derives the level from the relays and reports any difference. - It exports as a JSON file and as a link to a public page.
Implemented 2026-09-28 (#9898):
the card is NIP-XP kind 30194 at the address trainer-card. Account >
Trainer > Export card signs it with the world key from the phone's
ledger, publishes it to wss://relay.openagents.com after a confirmation,
and offers the JSON file and an https://njump.me/naddr1… link. Awards on
the card name their award event, awardee, role, XP, and quest version; the
quest, claim, and reproduction behind each are one hop from the award.
openagents xp verify-card checks it.
The level is the summary line; the awards are the credential. "Level 14
trainer" means little on its own. "Wrote the knowledge entry that made a
cheap agent pass fin-saccr-rwa on a held-out run, reproduced by two other
keys" is a sentence an employer can check.
Sats are future, staged, and separate from XP, as NIP-XP requires.
What exists: nothing pays a trainer or an author. The wallet and x402 code landed, but no paid round trip has been recorded, and the phone wallet has no agent spending path yet.
What must be true before any quest pays sats:
- An award can actually be granted: a producer of admissible prospective
evidence (or the
reproduce,eval-check, andeval-adoptrules) exists, and the OpenAgents referee has signed at least one award to a key it doesn't control. - A paid round trip over NIP-X402 is recorded end to end, with a receipt.
- Quest purses are specified in NIP-MKT or NIP-LAB terms: who funds the purse, its budget, its terms, and what happens on revocation.
- Sybil controls for paid quests are stronger than for XP: trusted-runner lists, reproduction by more than one outside key, and caps.
- Legal review of money transmission, gambling, and consumer protection, as the GDD risks note.
Rewards that aren't money: titles, cosmetics in Verse (a tag color, a trainer banner in the Gym), a place on boards, and eligibility to take harder quests and raids, as the Minecraft economy already allows. Eligibility to take a quest is not authority; it never widens tool access, filesystem scope, or a spending cap.
The Gym building is where trainers go to train. Board layout and trace loading belong to the Gym leaderboard spec; this section fixes what leveling adds to it.
- Leaderboard boards. The Gym leaderboard's boards rank attempts. Each row names its trainer by pubkey prefix and level, and links to the award that counted it, if any. An unawarded row is labeled an observation.
- Trace viewer. Selecting a row loads its trace as a replay beside the
reference ghost, as run replays already do. A trace admitted under
trace-admitshows its award. - Quest board. The plaza board stays the public notice for frontier quests. The Gym gets a challenge board for dailies and weeklies.
- Daily and weekly challenges. The referee publishes each as a quest version whose season is one day or one week, generated from benchmark tasks with a known reference run. A daily is a reproduction or a trace submission; a weekly is a Gym trial under a bar.
- Trainer rank board. Levels of trainers under the viewer's trust list, limited to keys that published a trainer profile (see Privacy).
- Levels over heads. In the Grid, the name tag becomes the pubkey prefix
and the level, such as
650a2a22 · lv 3, matching desktop Verse'slv n. A key with no XP shows its prefix alone. This needs a read-only XP reader in the mobile build, which disables it today.
| Surface | What it shows |
|---|---|
| Verse tab (the Grid) | Levels on name tags; the Gym's boards, challenge board, and rank board; the plaza quest board. |
| Account tab | Your trainer card: level, XP to next level, class, titles, counted awards with links, linked keys, trust list, and Export card. Link a key starts the two-sided key link. |
| Coder tab | After a graded pass, a note that says which open quest the run matches and what would make it count, such as "needs an independent reproduction." It never publishes without an explicit tap. |
| Web | A read-only public trainer page per key, rendered from relay events with its curve and trust list shown. Aspirational: no web surface in this repository serves it yet. |
- XP is public by construction. Awards are signed Nostr events. Anyone can compute any key's ledger. Say so wherever a trainer publishes.
- Keys are pseudonyms. A trainer can train under a key tied to no other identity. Linking keys is opt-in and visible.
- Boards are opt-in. Rank boards and name-tag levels show only keys that
published a trainer profile (implemented for name tags: a
13193withshown: true). The ledger stays computable for everyone, but the app doesn't advertise a key that didn't ask. - Traces must be redacted before submission and submitted only by an
explicit action. Coder records traces locally today, with no redaction
step, and uploads nothing.
trace-admitneeds a redaction pass first and must keep upload off by default. An award cites digests and public evidence, never private workspace content. - Private Gym boards stay private. Observations over a Gym grant are encrypted to the grantee and never become public evidence by themselves.
Each is a new, versioned addition; none changes an existing event's meaning.
- New rules
reproduce,trace-admit, andraid, each with its roles, the exact evidence events it names, and fixtures, as NIP-XP already requires of "a future rule." - A
per-awardeeuniqueness policy with a requiredmax_awards, so a daily can award each distinct key once, up to a stated total. Implemented 2026-09-28 forreproduce, whose keyed role is the reproducer; the claimant's share must be 0. - More than two awardees, in the order a rule defines, with the fixed split still summing to the quest's award.
- Party charters: a signed event listing members, roles, and shares, signed or countersigned by every member before the attempt, and named by the award.
- A
mentorrole whose share comes out of the fixed award. - Key links: a two-sided link between a trainer's keys, so readers can
sum XP across keys a trainer proves they control. Implemented
2026-09-28: the profile's
keysand the key's link (13195); links are one level deep.
Levels, curves, and classes stay out of the NIP. They are this document's reading of the ledger.
NIP-XP events, the ledger, the referee tool, 11 open TB4 quests, and desktop Verse's HUD, quest board, and level tags. No award has been granted.
Milestone: a person outside OpenAgents gets an award from the OpenAgents referee for verified work, and their level shows over their head in the OpenAgents app's Grid and on their Account trainer card.
- Specify and implement the
reproducerule, with fixtures incrates/nostr,crates/knowledge, and the referee tool. Thekb-transferpath stays blocked until a prospective evidence producer exists, so reproduction is the first rule a newcomer can complete. - Publish tutorial quests: reproduce one of the retained TB2.1 passes under its recipe.
- Add a read-only XP reader to the mobile build, sharing
xp_ledger::derive, and showprefix · lv nin the Grid. - Add the trainer card to the Account tab: level, XP, titles, and counted awards. Export comes in phase 2.
- Name the curve
trainer-curve-v1in every display.
Key links, party charters, the raid rule, guild groups, trainer-card
export, and openagents xp verify-card.
The Gym challenge board with daily and weekly quests, the trace-admit
rule, the trainer rank board, classes, and the web trainer
page.
Quest purses in sats, only after every item in Rewards holds. If they don't, this phase doesn't start, and the system still stands on XP and credentials.
- Who referees besides OpenAgents? Per-reader trust means any key can referee. How does a newcomer learn which referees are worth trusting?
- How much Sybil resistance does XP need? Enough that boards mean something, but less than paid quests need.
- Can levels unlock compute credits or better models? Episode 284 asks for free credits, models, and infrastructure as you level. NIP-XP forbids converting XP into credits.
- Should agents level too? The GDD levels agents through builds. Do trainer and agent levels ever interact?
- Do trainer cards expire? Evidence stays valid, but benchmarks age.
- What is the first raid? A held-out TB4 task with a party, or a Gym decision-model suite?
- Build on NIP-XP; don't fork it. It already solves the hard part: signed, re-checkable, non-farmable XP with per-reader trust. New contributions become new rules, not a new system.
- Reproduction first.
kb-transferis the most valuable rule and currently can't be completed. The first rule a newcomer completes should be one we can verify today: reproducing a published pass on a pinned recipe. It also builds the runner pool thatkb-transferneeds. - Level the trainer, not the agent, for now. The owner's goal is "agent trainer" as a real thing a person becomes. Agent builds are a separate, later game.
- Keep the curve, rescale the awards. The shipped curve is fine. Ten XP per quest is the problem. Tutorials get a new trainer to level 2 in one session; raids carry the high levels.
- No levels for money, ever; purses per quest, later. Our answer to open question 3 is no: a level never converts into credits, models, or sats. Money attaches to specific quests with funded purses, after the prerequisites hold. Otherwise XP becomes a currency and farming pays.
- The credential is the awards list. A level is a summary; the awards, each linked to evidence, are what an employer checks. That is the answer to the reply in the motivation: the card shows the work someone chose to do, which is the best available evidence of interest.
- Raids are where the WoW skills live. Solo quests reward skill. Raids reward roles, schedules, fair loot, and perseverance, on tasks nobody passes alone. Put the team play there, and make the loot rules binding before the pull.
- OpenAgents referees at first, and says so. Early boards trust one referee, ours. That's centralized in practice. The protocol lets any reader trust other referees, and we should invite them as soon as a second referee exists.