Animica
ENA · useful work → a model

A model the network trains,
with lineage you can check.

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.

Live lineage — this network, right now loading…
01 · work
jobs verified
02 · proof
signed receipts
03 · people
contributors
04 · training
pool round
05 · served
promoted head

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.

Give ENA a task

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.

What ENA can do

Every capability below is a live subcommand of the animica ena CLI, not a roadmap. Install with pip install animica.

reason & act

Agent

Ask, plan, execute, and code against the pool's served model, with memory across sessions.

  • ena ask · one-shot question
  • ena plan · decompose a goal
  • ena run · execute a plan
  • ena code · agentic coding, tool loop
  • ena memory · agent memory
retrieve

Retrieval

Hybrid keyword + embedding search over indexes you build from your own sources.

  • ena search · hybrid search
  • ena index · build / manage indexes
  • ena embeddings · embedding providers
data

Datasets

Normalize, dedupe and register training data; scrape sources into a canonical JSONL; grow the live training genome from curated staging.

  • ena datasets · prepare pipeline
  • ena scrape · URL → raw.jsonl
  • ena promote-staging · staging → live genome
paid work

Useful work

A job lifecycle with verification and receipts: claim, run, submit, verify, receipt, and export the proof on chain.

  • ena jobs claim / run / submit
  • ena jobs verify / receipt
  • ena jobs export-onchain
train

Training pools

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.

  • ena pool create / claim / submit
  • ena pool aggregate · merge + gate
  • ena pool train-loop · GPU trainers
  • ena train · single-run orchestration
verify

qDNA genome ledger

A quantum-sealed, Merkle-anchored record of what trained on what — verifiable AI lineage rather than a claim in a README.

  • ena genome · inspect lineage
  • ena stats · aggregate progress
govern

Dynamic tools

Agents may propose new tools, but a proposed tool is never active until an operator approves it with an admin token.

  • ena tools propose / review / approve
serve

Serving

Serve the promoted checkpoint over an OpenAI-compatible endpoint while training continues, and get credited for the tokens you serve.

  • ena pool serve · serve-while-train
  • ena serve · coordinator + stats API
  • ena models · inspect providers

How the loop closes

Each stage is checkable, and each one refuses to pass work that would poison the next.

StageWhat happensWhat it refuses
JobsNodes claim useful work and submit output with a signed receipt.Unverified output does not become training data.
CurationOutput is normalized, deduped and staged. Duplicates and off-schema rows never reach the genome.
TrainingPool shards train in parallel on the live genome. A shard that uploads no weights is rejected, not paid.
MergeShards are averaged by contribution weight. A diverged (NaN/inf) adapter is dropped, not merged.
PromotionThe merged checkpoint must clear the eval gate. A round with no mergeable weights is never promoted.
ServingNodes serve the promoted head and are credited for tokens.An unpromoted checkpoint is never served.
FeedbackRatings from this page become preference pairs. Nothing is retained without explicit consent.

Earn by training or serving

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.

Serve the model

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

Train a shard

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…

Do useful work

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>

Use it as an API

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