GAS (Generative Adversarial Subnet) is a Bittensor subnet inspired by Generative Adversarial Networks (GANs). Detectors and generators compete in a dynamic loop: detectors sharpen their ability to spot synthetic media, while generators push to create more convincing fakes. This adversarial process drives cutting-edge detection tools and continuously generates the training data needed to sustain progress.
Unlike static AI safety solutions, GAS thrives on open, incentivized competition, ensuring detectors evolve as fast as the threats they face.
GAS runs two parallel competition tracks on Bittensor Subnet 34:
| Track | What You Do | How You're Scored |
|---|---|---|
| Discriminative Mining | Submit AI-generated content detection models (image, video, audio) | sn34_score -- geometric mean of MCC and Brier score, measuring both accuracy and calibration |
| Generative Mining | Run a server that generates synthetic media on demand | Base reward for valid content × multiplier for fooling discriminators |
Key facts:
- Three modalities: Image, video, and audio detection are all scored independently
- Cloud-evaluated: Discriminator models are benchmarked on cloud infrastructure -- no GPU hosting required
- Model format: Safetensors only (ONNX is deprecated)
- Datasets refresh weekly with fresh GAS-Station data alongside static benchmarks
- One model per modality per hotkey for discriminative miners
See Incentive Mechanism for full scoring details.
git clone https://github.com/BitMind-AI/bitmind-subnet.git
cd bitmind-subnet
./install.shOptions:
./install.sh --no-system-deps- Skip system dependency installation (intended for discriminative miners)
# Activate virtual environment to use gascli
source .venv/bin/activate
# Show available commands
gascli --help
# Validators: Start or restart validator services
gascli validator start
# Miners: Start or restart generative miner
gascli generator start
# Miners: Push discriminator models (all three modalities at once)
gascli d push \
--image-model image_detector.zip \
--video-model video_detector.zip \
--audio-model audio_detector.zip \
--wallet-name default --wallet-hotkey default
# Or push one model at a time
gascli d push --image-model image_detector.zip
gascli d push --video-model video_detector.zip
gascli d push --audio-model audio_detector.zipAvailable Aliases:
validator→vali,vdiscriminator→dgenerator→gen,g
# Validators: Start or restart validator services
# (Does not require virtualenv activation)
pm2 start validator.config.js
# Miners: Start or restart generative miner
pm2 start gen_miner.config.js
# Miners: Push discriminator models
source .venv/bin/activate
python neurons/discriminator/push_model.py \
--image-model image_detector.zip \
--video-model video_detector.zip \
--audio-model audio_detector.zip \
--wallet-name default --wallet-hotkey defaultFor detailed installation and usage instructions, see Installation Guide.
This documentation assumes basic familiarity with Bittensor concepts.
Discriminative Miners [docs]
Discriminative miners submit detection models for evaluation against a wide variety of real and synthetic media across image, video, and audio modalities. Models are evaluated on cloud infrastructure and rewarded based on their accuracy and calibration. This significantly reduces the capital required to mine compared to previous versions that required GPU hosting, and allows the subnet to more reliably identify unique models and reward novel contributions proportionally to their accuracy.
Generative Miners [docs]
Generative miners generate synthetic images and videos according to prompts from validators, and are rewarded based on their ability to pass validation checks and fool discriminative miners.
Validators [docs]
Validators are responsible for challenging and scoring both miner types. Generative miners are sent prompts, and their returned synthetic media are validated to mitigate gaming and incentivize high quality results. Discriminative miners are continually evaluated against a mix of data from generative miners, real world data, and data generated locally on the validator.
Contributions are welcome and can be made via a pull request to the testnet branch.

