ChipForge (SN108) introduces the first silicon design subnet for decentralized hardware innovation. This subnet enables miners to compete in designing real silicon. Processor development is organized into on-chain challenges — spanning AI accelerators, cryptographic modules, mini-GPUs, and other critical components.
what the project says about itself — the input for semantic labels
ChipForge (SN108) introduces the first silicon design subnet for decentralized hardware innovation. This subnet enables miners to compete in designing real silicon. Processor development is organized into on-chain challenges — spanning AI accelerators, cryptographic modules, mini-GPUs, and other critical components.
scope of the data
Taonets fetches the repo's public metadata (description, topics, language, stars, last push) and the head of its README. Commit-count histories, contributor lists and release notes require the GitHub commits/releases endpoints, which the worker doesn't consume yet — those panels are coming with the ingest upgrade and are not simulated in the meantime.
first lines of the default branch README, unedited
# ChipForge
ChipForge introduces the first digital design subnet for decentralized hardware innovation. This subnet enables miners to compete in designing real silicon. Processor development is organized into on-chain challenges — spanning AI accelerators, cryptographic modules, mini-GPUs, and other critical components. Participants download specifications, leverage AI tools, and submit complete Verilog/SystemVerilog implementations. The highest-quality designs earn rewards while contributing to fully manufacturable chips.
In the short term, ChipForge focuses on advancing digital hardware design, with future applications across IoT, robotics, edge devices, and post-quantum security. Our roadmap includes progressing from design to full-scale fabrication within a year. Revenue from design IPs and fabricated chips will be reinvested into the ecosystem, ensuring sustainable value creation. Backed by the Tatsu validator team and open to strategic partnerships, ChipForge marks the beginning of a new era — decentralized, collaborative, and on-chain digital design.
## Overview
ChipForge operates as a competitive platform where:
- **Miners** submit hardware design solutions (Verilog/SystemVerilog)
- **Validators** evaluate submissions using industry-standard EDA tools (Verilator, Yosys, Icarus, Openlane)
- **Challenges** are rotated periodically with different design requirements
- **Rewards** go to the latest records: every submission that beats the score to beat becomes a record, waits out a probation, and is then paid for a fixed window, sharing the miner reward with the other records being paid (the record ladder)
## Architecture
### Core Components
1. **Chipforge Challenge Server** - Manages challenges, submissions, and evaluations
2. **Miners** - Submit optimized hardware designs for active challenges
3. **Validators** - Download, evaluate, and score miner submissions against provided test benches and test cases
4. **Chipforge EDA Server** - Performs synthesis, place & route, and timing analysis
### Workflow
```
1. Challenge Activation → 2. Miner Submissions → 3. Batch Creation →
4. Validator Downloads → 5. EDA Evaluation → 6. Score Submission →
7. Weight Setting → 8. Challenge Completion
```
## Getting Started
### Prerequisites
- Docker with the compose plugin (recommended), or Python 3.12
- Bittensor wallet with registered hotkey
- Access to Chipforge Challenge Server API
- Chipforge EDA Server (for validators)
### Before you start: wallet and registration
Both miners and validators need a hotkey **registered on subnet 108** ([btcli docs](https://docs.learnbittensor.org/btcli)):
```bash
btcli wallet create --wallet-name mywallet --hotkey default # coldkey + hotkey
btcli subnets register --netuid 108 --network finney --wallet-name mywallet --hotkey default
```
The folder name you chose (`mywallet`) is what goes in `VALIDATOR_WALLET_NAME` / `MINER_WALLET_NAME`.
Validators additionally need:
- **hardware**: 16 cores / 32 threads, 64 GB RAM, 300 GB SSD minimum (500 GB recommended), x86-64; see
[docs/validator_requirements.md](docs/validator_requirements.md);
- a **validator permit**, which the chain gives to the top-staked hotkeys of the subnet: stake to your hotkey
with `btcli stake add --netuid 108 ...`. Your influence on who gets paid is proportional to your stake;
- a **`VALIDATOR_SECRET_KEY`** from the ChipForge team (ask on [Discord](https://discord.com/channels/799672011265015819/1408463235082092564));
- the **[ChipForge EDA server](https://github.com/TatsuProject/chipforge_eda_server)** running and reachable
at `EDA_SERVER_URL` (default `http://localhost:8080`) **before** the validator starts.
For testnet, use `--network test` with your test subnet's netuid, and set `NETUID` / `SUBTENSOR_NETWORK` in `.env` to match.
### Running with Docker (recommended)
All settings live in `.env`; [`.env.example`](.env.example) documents every one of them.
```bash
git clone https://github.com/TatsuProject/ChipForge_SN108
cd ChipForge_SN108
cp .env.example .env # defaults are for mainnet (netuid 108); set the VALIDATOR_/MINER_ wallet
# settings (+ VALIDATOR_SECRET_KEY for a validator)
make env-check # after updating the repo: lists settings your .env is missing
make up # validator
make up ROLE=miner # miner
make logs # follow logs (add ROLE=miner for the miner)
make status # container + heartbeat
make restart / make down
make backup-state # tar.gz of ./data into ./backups
```
- **Wallets:** the validator and the miner have separate settings (`VALIDATOR_WALLET_DIR` / `VALIDATOR_WALLET_NAME` / `VALIDATOR_HOTKEY`, and the same with `MINER_`), so both can run from one folder with different wallets. Each role's directory is mounted read-only; the wallet name is the folder name inside it, not a path. `make down` stops only the selected `ROLE`.
- **State:** everything that must survive restarts (validator state, emission state, bans, downloaded submissions, logs, miner challenge packages) is kept in `./data` (`DATA_DIR`). Moving from a bare-metal validator? Run `make migrate-state` once: it copies (never moves) the old state files from the repo root into `./data`.
- **Networking:** the containers use host networking (Linux). The validator reaches the EDA server at `EDA_SERVER_URL` (default `http://localhost:8080`); the miner's axon listens on `AXON_PORT` (default 8091), which must be reachable from the internet.
- **Health:** each neuron rewrites a heartbeat file every 30 s from its event loop; the container is marked unhealthy if it goes stale for 3 minutes, and `restart: unless-stopped` brings it back after crashes and reboots. Logs are rotated (5 × 50 MB).
- **Miner CLI in Docker:** `make submit FILE=solution.zip`, or any command with `make cli ARGS="status"`.
- `make test` runs the test-suite in a throwaway container.
- **Updating:** `git