Loading
Loading

Neuron registration trends
Training large language models to handle ethical dilemmas and moral reasoning requires high-quality, diverse scenario data that reflects real-world complexity. Creating this data manually is expensive and slow — human ethicists must design scenarios, run simulations, and evaluate responses. Existing datasets are limited in scope and often don't capture the nuanced reasoning needed for production AI systems.
Aurelius Protocol distributes this work across a network of contributors. Operators submit structured ethical-dilemma scenarios through a standardized format. The system automatically validates each scenario, simulates it using multi-agent generative agents (powered by Concordia), and produces transcript data that captures how different reasoning frameworks approach the same moral problem. This decentralized approach scales scenario creation beyond what centralized teams can produce, while maintaining quality through automated validation and simulation-based scoring.
Participants earn rewards based on the quality and uniqueness of accepted scenarios. The resulting training data directly improves LLM performance on moral reasoning benchmarks (MoReBench), enabling AI systems to reason more carefully through complex ethical situations.
Use cases were auto-generated from the GitHub repository and may not reflect the latest changes.
Aurelius Protocol is a Bittensor subnet for moral reasoning alignment that enables miners to submit structured ethical-dilemma scenario configurations. Validators score these scenarios through an 8-stage pipeline and execute accepted ones via Concordia generative-agent simulations, producing training data that improves LLM performance on moral reasoning benchmarks (MoReBench).
Miners publish scenario configs via a library loaded from disk at startup. Validators query miners with ScenarioConfigSynapse requests and receive signed configs with work_id. Validators run accepted configs through an 8-stage pipeline: version/schema/balance/rate-limit/novelty/classifier checks, then Concordia simulation (in ephemeral Docker container with CPU/RAM limits and LLM egress firewall), and finally transcript coherence scoring.
Work tokens are deducted only on full success. On-chain weights are set based on simulation quality. Central API tracks work-token balances, enforces remote-tier config (polling interval, thresholds, rate limits), caches remote config for 5 minutes, and receives submission reports.
Pipeline stages: (1) version check, (2) schema validation, (3) work-token balance check via Central API, (4) per-hotkey rate-limiting, (5) novelty check via FAISS embeddings, (6) classifier quality gate, (7) sandboxed Concordia simulation with LLM, (8) transcript coherence scoring and work-token deduction. On-chain weights reflect the quality of accepted scenarios' simulation outputs. Cost is 1.0 work-token per accepted submission (DEFAULT_WORK_TOKEN_COST).
Decentralized Alignment of Artificial Intelligence
This information was auto-extracted from the GitHub repository and may be incomplete or out of date. Always refer to the subnet's GitHub repository for the latest instructions.
Miners without tokens are rejected at stage 3 before simulation runs.
The sections above were auto-generated from the GitHub repository and may not reflect the latest changes. View repository
FAQs were auto-generated from the GitHub repository and may not reflect the latest changes.
Holder & total-staked metrics as of 1h ago (hourly snapshot)
Miner loads scenario configs from disk at startup (not watched for changes). Must have work-token balance for validators to accept submissions. Requires Bittensor wallet registered on subnet (mainnet SN 37 or testnet SN 455).
Runs Concordia simulations in ephemeral sandboxed Docker containers with CPU/RAM limits scaled to scenario agent count. LLM egress firewalled to allowlist. Requires OpenAI-compatible LLM API key (DeepSeek default and cheapest).
Pull the miner image (use :testnet tag for testnet)
docker pull ghcr.io/aurelius-protocol/aurelius-miner:latest
Create .env file with wallet and network configuration
cat > .env <<'EOF' ENVIRONMENT=mainnet WALLET_NAME=<your-wallet> WALLET_HOTKEY=<your-hotkey> AXON_EXTERNAL_IP=<your-public-ip> AXON_EXTERNAL_PORT=8091 EOF
Register hotkey on subnet (mainnet SN 37 or testnet SN 455). Registration costs TAO.
btcli subnet register --netuid 37 --network finney --wallet.name <name> --wallet.hotkey <hotkey>
Create configs directory and populate with scenario JSON files (loaded once at startup)
mkdir -p configs && cp /path/to/scenario/*.json configs/
Retrieve the designated multisig deposit address for work tokens
aurelius-deposit verify-address
Deposit TAO to work-token multisig address for validator submissions
btcli stake transfer --amount <tao-amount> <multisig-address>
Run the miner container with volume mounts for wallets, data, and configs
mkdir -p data && docker run -d --name aurelius-miner --restart unless-stopped --env-file .env -p 8091:8091 -v ~/.bittensor/wallets:/home/appuser/.bittensor/wallets:ro -v "$(pwd)/data:/app/data" -v "$(pwd)/configs:/app/configs:ro" ghcr.io/aurelius-protocol/aurelius-miner:latest
Monitor logs for startup confirmation (should show config count and deposit address)
docker logs -f aurelius-miner
Create minimal .env file with 4 required variables (use ENVIRONMENT=testnet for testnet SN 455)
cat > .env <<'EOF' ENVIRONMENT=mainnet WALLET_NAME=<your-wallet> WALLET_HOTKEY=<your-hotkey> LLM_API_KEY=<your-openai-compatible-api-key> EOF
Register hotkey on subnet. Registration costs TAO.
btcli subnet register --netuid 37 --network finney --wallet.name <name> --wallet.hotkey <hotkey>
Create data directories and pull validator image (use :testnet for testnet)
mkdir -p data simdata && docker pull ghcr.io/aurelius-protocol/aurelius-validator:latest
Create docker-compose.yml with validator and socket-proxy services
cat > docker-compose.yml <<'EOF'
services:
aurelius-validator:
image: ghcr.io/aurelius-protocol/aurelius-validator:latest
container_name: aurelius-validator
restart: unless-stopped
env_file: .env
environment:
DOCKER_HOST: tcp://docker-proxy:2375
cap_add: [NET_ADMIN]
volumes:
- ~/.bittensor/wallets:/home/appuser/.bittensor/wallets:ro
- ./data:/app/data
- ./simdata:/sim-data
depends_on: [docker-proxy]
labels:
com.centurylinklabs.watchtower.enable: "true"
docker-proxy:
image: tecnativa/docker-socket-proxy:0.3.0
container_name: docker-proxy
restart: unless-stopped
environment: { CONTAINERS: 1, IMAGES: 1, POST: 1, NETWORKS: 1 }
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
EOFStart validator and socket-proxy containers in background
docker compose up -d
Monitor logs for startup confirmation (should show permit confirmation, API auth, clock drift check, and config summary)
docker compose logs -f aurelius-validator
Optional: Add Watchtower for automatic image updates every 5 minutes(optional)
cat >> docker-compose.yml <<'EOF'
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
environment:
DOCKER_API_VERSION: "1.40"
WATCHTOWER_CLEANUP: "true"
WATCHTOWER_POLL_INTERVAL: "300"
WATCHTOWER_LABEL_ENABLE: "true"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
EOFStart Watchtower service if added(optional)
docker compose up -d watchtower