ENA turns paid useful work into a real model. Nodes claim jobs, produce receipted output, train shards of a collaborative pool, and the merged result is promoted and then served by the same machines that trained it. Every step is recorded, so the answer you get traces back to the work that produced it.
The promoted head is the newest round that produced a checkpoint the network could actually merge. It is the model being served — never a round that only reported metrics.
This talks to animica-knowledge — the promoted
checkpoint, served by nodes running animica up. Rating an answer is how
ENA learns from this page: a rating becomes a preference pair in the training corpus
a DPO round can train on. Nothing is stored unless you tick consent.
Every capability below is a live subcommand of the
animica ena CLI, not a roadmap. Install with
pip install animica.
Ask, plan, execute, and code against the pool's served model, with memory across sessions.
Hybrid keyword + embedding search over indexes you build from your own sources.
Normalize, dedupe and register training data; scrape sources into a canonical JSONL; grow the live training genome from curated staging.
A job lifecycle with verification and receipts: claim, run, submit, verify, receipt, and export the proof on chain.
Many machines train shards of one model. Shards are merged by weight, gated on an eval, and only a round that produced real weights is promoted.
A quantum-sealed, Merkle-anchored record of what trained on what — verifiable AI lineage rather than a claim in a README.
Agents may propose new tools, but a proposed tool is never active until an operator approves it with an admin token.
Serve the promoted checkpoint over an OpenAI-compatible endpoint while training continues, and get credited for the tokens you serve.
Each stage is checkable, and each one refuses to pass work that would poison the next.
| Stage | What happens | What it refuses |
|---|---|---|
| Jobs | Nodes claim useful work and submit output with a signed receipt. | Unverified output does not become training data. |
| Curation | Output is normalized, deduped and staged. | Duplicates and off-schema rows never reach the genome. |
| Training | Pool shards train in parallel on the live genome. | A shard that uploads no weights is rejected, not paid. |
| Merge | Shards are averaged by contribution weight. | A diverged (NaN/inf) adapter is dropped, not merged. |
| Promotion | The merged checkpoint must clear the eval gate. | A round with no mergeable weights is never promoted. |
| Serving | Nodes serve the promoted head and are credited for tokens. | An unpromoted checkpoint is never served. |
| Feedback | Ratings from this page become preference pairs. | Nothing is retained without explicit consent. |
Rewards are emission, not a pot someone has to top up: 10 ANM per block, split between trainers and servers in proportion to contribution weight. Trainers are paid for work that reached a promoted checkpoint; servers are paid for serving it.
Any node running animica up discovers the promoted head and serves
it. Set a reachable endpoint so the network can route to you.
pip install -U animica # >= 9.5.6 export ANIMICA_ENA_PUBLIC_ENDPOINT=https://your-rig:8799 animica up # serves ENA + reports ANM earned
A GPU rig can claim shards and train continuously. A shard must upload real weights — a receipt alone earns nothing.
animica ena pool train-loop <pool-id> \ --worker-id my-rig --address anim1…
No GPU needed. Job types include synthesis, extraction, chunking, indexing and evaluation.
animica ena jobs claim animica ena jobs run <job-id> animica ena jobs submit <job-id>
The promoted checkpoint is exposed on the same keyless, OpenAI-compatible endpoint as the rest of the network.
curl https://animica.dev/v1/chat/completions \
-H 'content-type: application/json' \
-d '{"model":"animica-knowledge","messages":[{"role":"user","content":"hello"}]}'
# from the CLI
animica chat --model animica-knowledge
animica chat --model list # what is being served right now