BIT-0011 Conviction Attestor — Hardware-attested validators for Bittensor Subnet 11 (pre-silicon mock)
BIT-0011 is a Bittensor Improvement Proposal that introduces conviction attestation: validators cryptographically
commit to their scoring decisions using verifiable hardware signatures, raising the cost of Sybil attacks and score
manipulation on Bittensor subnets. See the full proposal index at
opentensor/bips. Under BIT-0011, a conforming validator must produce a
two-signature attestation bundle — one from the validator's hot-key wallet and one from a trusted hardware root — for
every job it scores; this bundle is anchored on-chain at a deterministic offset (anchor 0x47C0) so that any peer
can verify both the hardware provenance and the validator's identity without trusting the validator's software stack.
Software-only validators can be trivially forked, replayed, or bribed. A hardware root-of-trust (the Trinity chip)
binds attestation to a physical device whose ternary compute fabric cannot be emulated at cost:
~1 GOPS @ ~50 MHz @ ~1 W ternary (projected, pending tape-out 2026-12-16). Every attestation carries a signature
from the Trinity chip that commits to the job hash, the validator wallet, and the hardware anchor 0x47C0, making
retroactive score manipulation detectable on-chain.
Pre-silicon note: This repository uses
trinity_sdk.TrinityChipin mock mode until the Trinity chip reaches tape-out (target 2026-12-16). All signatures are software-simulated but structurally identical to the production attestation format.
# 1. Install (Python ≥ 3.10)
pip install git+https://github.com/gHashTag/trinity-bittensor.git
# 2. Configure your Bittensor wallet (testnet by default)
btcli wallet new_coldkey --wallet.name validator
btcli wallet new_hotkey --wallet.name validator --wallet.hotkey default
# 3. Register on subnet 11 testnet
btcli subnet register --netuid 11 --subtensor.network test \
--wallet.name validator --wallet.hotkey default
# 4. Submit a single conviction attestation
trinity-bittensor attest <job_id>
# 5. Run the continuous validator loop
trinity-bittensor run-validatorfrom trinity_bittensor import ConvictionAttestor
attestor = ConvictionAttestor()
attestor.connect(wallet_name="validator", netuid=11, network="test")
tx_hash = attestor.submit_attestation(job_id="abc123")
print(f"Attested: {tx_hash}")trinity_bittensor/
├── conviction_attestor.py # Core BIT-0011 attestation logic
├── validator_node.py # Async 30-second validator loop
└── cli.py # CLI entry-points
docs/
├── sub11_integration.md # Subnet 11 registration & scoring
└── architecture.md # Component data-flow diagram
tests/
└── test_attestor.py # Unit tests (mocked TrinityChip)
Apache-2.0 — see LICENSE.
Author: Dmitrii Vasilev <admin@t27.ai>