ChipForge (SN84) 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.
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 are distributed based on performance metrics and competitive scoring - This is a winner-takes-all reward mechanism
- Chipforge Challenge Server - Manages challenges, submissions, and evaluations
- Miners - Submit optimized hardware designs for active challenges
- Validators - Download, evaluate, and score miner submissions against provided test benches and test cases
- Chipforge EDA Server - Performs synthesis, place & route, and timing analysis
1. Challenge Activation → 2. Miner Submissions → 3. Batch Creation →
4. Validator Downloads → 5. EDA Evaluation → 6. Score Submission →
7. Weight Setting → 8. Challenge Completion
- Python 3.12
- Bittensor wallet with registered hotkey
- Access to Chipforge Challenge Server API
- Chipforge EDA Server (for validators)
To create wallets, visit this:
https://docs.learnbittensor.org/btcli
# Clone the repository
git clone https://github.com/TatsuProject/ChipForge_SN84
cd chipforge-subnet
# Install dependencies
pip install -r requirements.txt
pip install -e .Set parameters in .env file and run:
./start_minerTo run miner/validator through nohup (no hang up, an alternative of pm2):
nohup ./start_miner.sh > miner.log 2>&1 &To show logs in real-time:
tail -f miner.logTo terminate the process:
# Find the process ID:
ps aux | grep miner
# Kill by PID:
kill <PID>
# Or kill by process name:
pkill -f "miner.py"
# Force kill if needed:
kill -9 <PID>- Download challenge (use
miner_cli.py download) - Solve it
- Submit the solution (use
miner_cli.py submit)
The miner CLI tool (python_scripts/miner_cli.py) provides all the functionality needed for these tasks. See MINER_CLI_COMMANDS.md for complete documentation.
Using the Miner CLI Tool (Recommended):
The miner_cli.py tool provides a comprehensive command-line interface for miners:
# Check current challenge status and your submissions
python3 python_scripts/miner_cli.py status
# List all your submissions
python3 python_scripts/miner_cli.py submissions
# Download challenge information and test cases
python3 python_scripts/miner_cli.py download
# Submit a solution (with validation)
python3 python_scripts/miner_cli.py submit solution.zip --check_status
# Dry run (validate without submitting)
python3 python_scripts/miner_cli.py submit solution.zip --dry_runUsing the Shell Script:
# Set wallet and path to zip file in .env file and run this
./submit_solution.shDirect Python Script:
You can also use the miner CLI directly with explicit arguments:
python3 python_scripts/miner_cli.py submit solution.zip \
--wallet.name YOUR_WALLET \
--wallet.hotkey YOUR_HOTKEY \
--api_url http://your-api-url:8000 \
--check_statusFor more details, see MINER_CLI_COMMANDS.md.
Solutions must be packaged as ZIP files containing:
- Verilog/SystemVerilog source files (.v, .sv)
- Testbench files (optional)
- Constraint files (optional)
- README with design description (optional)
Important Constraints:
- Maximum file size: 10MB
- File must be a valid ZIP archive
- The miner CLI tool automatically validates these requirements before submission
- Challenge server accepts 5 requests per IP per hour.
- One hotkey is allowed to submit a maximum 5 solutions for a specific challenge.
Pull and run Chipforge EDA Server:
https://github.com/TatsuProject/chipforge_eda_server
Set parameters in .env file and run:
./start_validatorTo run validator through nohup (no hang up, an alternative of pm2):
nohup ./start_validator.sh > validator.log 2>&1 &To show logs in real-time:
tail -f validator.logTo terminate the process:
# Find the process ID:
ps aux | grep validator
# Kill by PID:
kill <PID>
# Or kill by process name:
pkill -f "validator.py"
# Force kill if needed:
kill -9 <PID>- Download submissions from active batches
- Evaluate designs using EDA tools
- Submit scores based on multiple metrics:
- Functionality (0-100): Correctness and testbench passing
- These will be part of validation mechanism in future:
- Area (0-100): Resource utilization efficiency
- Delay (0-100): Timing performance
- Power (0-100): Power consumption optimization
- Overall (0-100): Weighted combination of all metrics
Each submission is evaluated across four key metrics:
-
Functionality Score (100% weight)
- Testbench pass/fail status
- Functional correctness verification
- Compliance with specifications
-
Area Score (TBD)
- LUT utilization
- Register usage
- Memory block efficiency
- Overall resource optimization
-
Delay Score (TBD)
- Maximum frequency achieved
- Critical path timing
- Setup/hold time margins
-
Power Score (TBD)
- Static power consumption
- Dynamic power analysis
- Power efficiency metrics
- Submissions are ranked by overall score
- Only submissions that beat the current challenge-wide best score receive rewards
- Weights are set to reward the highest-scoring submission
- Emission burning occurs when no submissions exceed quality thresholds
- The winner of a challenge will keep getting reward for specific time after challenge expiration
- RISC-V based Processors
- AI Accelerators
GET /api/v1/challenges/active # Get active challenge
POST /api/v1/challenges/{id}/generate-submission-id # Generate submission ID
POST /api/v1/challenges/{id}/submit # Submit design solution
GET /api/v1/challenges/{id}/submissions/hotkey/{hotkey} # Check submissions
GET /api/v1/challenges/{id}/batch/current # Get current evaluation batch
GET /api/v1/challenges/{id}/submissions/{submission_id}/download # Download submission
POST /api/v1/challenges/{id}/submissions/{submission_id}/submit_score # Submit evaluation
The subnet uses a dynamic batch system:
- Submissions are grouped into evaluation batches
- Each batch has a download window (10 minutes) and evaluation window (20 minutes)
- Only one batch is exposed to validators at a time
- Batches transition: EXPOSED → EVALUATING → COMPLETED
- Signature-based auth: All API calls require Ed25519 signatures
- Validator secrets: Additional secret keys for validator endpoints
- Hotkey verification: Ensures submissions come from registered miners, and evaluated scores come from registered validators
- Timestamp validation: Prevents replay attacks
- File hashing: All submissions are verified with SHA256 hashes
- Signature verification: Using Bittensor's native signing methods
# Check challenge server health
curl http://challenge-server:8000/health-
Signature Verification Failed
- Ensure using Bittensor's native signing methods
- Check timestamp accuracy (must be within 10 minutes)
- Verify hotkey registration on subnet
-
Submission Upload Failed
- Use
miner_cli.py submit solution.zip --dry_runto validate before submitting - Check ZIP file format and contents
- Verify file size limits (10MB maximum - enforced by miner CLI)
- Ensure proper authentication headers
- Check wallet configuration in
.envfile or command-line arguments
- Use
-
Validator Download Issues
- Confirm validator secret configuration
- Check batch timing and availability
- Verify network connectivity to challenge server
-
EDA Tool Integration
- Ensure proper tool licensing and setup
- Check environment variable configuration
- Verify design constraints and timing requirements
- Follow PEP 8 coding standards
- Include comprehensive tests
- Update documentation for new features
- Ensure backward compatibility
This project is licensed under the MIT License - see the LICENSE file for details.
- Discord: ChipForge - SN84
- Additional challenge categories
- Enhanced evaluation metrics
- Improved toolchain integration
- v1.0.0 - Initial release with challenge download, solution design, solution verification, submitting scores, and giving reward to winner.