We are creating our own society. A place citizens have FULL control, have their own MONEY, have AI that serves THEM, and CONTROL together. Unstoppable by design, self-replicating, self-hosted, self-evolving, and human oversight with democratic governance. Well, that is our Utopian dream! It now runs and empowers a network of seedboxes.
Our work contains several novelties:
- ⏩ Streaming Torrents. Quality streaming in P2P, competitive to Tiktok/Youtube/Netflix {warning:requires integration of Egbert code}.
- 🪞 Self-replication. Servers that can buy other servers using Bitcoin. Fully automated cloning of servers.
- ⚡ Trust. First trust framework and true Peer-to-Peer agent communication fabric. No DNS, no central control.
- 🧑🚒 AI models in a real-time competition for survival of the fittest using multi-arm-bandit and model score gossip.
- 👓 Find information using decentralized relevance ranking
- 🥇 First decentralized voting system. Your place, your control, your vote. Our vibe coded demo we're implementing with real crypto.
- 🥼 User-driven self-evolution. The emergent voting behavior is that users drive the roadmap using democracy. No lawyer or company can stop the will of the people.
Disclaimer is that each novelty still requires years of polish, but they work and together form a unique system.

Andrei: live switch between re-ranking algorithm using P2P multi-arm bandit and performance gossip protocol
Stan: voting and stake your identity
Matei: self-replicating server. Server with wallet can buy antoher server and clone itself.
Aayush: [trust framework, reputation function of identities, social capital accountkeysing for Sybil attack detection.](Tribler/tribler#8667)
Marcel: P2P search with decentralized relevance ranking
- A million URLs with creative commons content
- Liberate this content to robotic Bittorrent seedboxes fleet
- Semantic search
- Bitcoin wallet for donations and funding Seedboxes
- Voting and use your Bitcoin wallet to stake your identity (public key)
other ideas: Bounties, seedbox fleet? status of IPv8 network? Money in system, amount of discovered users?
Qt UI resources are listed in the ui/resources/ directory, including icons, fonts, images, and the resource manifest. They must be converted using the PySide6 resource compiler. Run the following command after adding new UI resources:
pyside6-rcc ui/resources/resources.qrc -o ui/resources/resources_rc.pyThis project uses a local Bitcoin Core regtest node for development and integration testing. Regtest is a private blockchain intended for testing. It does not connect to mainnet, and blocks can be mined on demand.
The script scripts/regtest.sh automates the local setup by:
- creating a dedicated regtest data directory inside the project
- generating a bitcoin.conf
- starting bitcoind
- creating or loading a wallet
- mining initial blocks so the wallet has spendable funds
- exposing simple commands for status, reset, mining, and demo transactions
The script requires:
- bash
- bitcoind (part of Bitcoin Core)
- bitcoin-cli (part of Bitcoin Core)
- jq (for JSON parsing)
brew install bitcoinbrew install jqThe script stores all regtest data inside the repository:
.bitcoin/regtest-demo/
The script supports a few environment variables, but all have sensible defaults.
| Variable | Default | Description |
|---|---|---|
BITCOIND_BIN |
bitcoind |
Path to the bitcoind binary |
BITCOINCLI_BIN |
bitcoin-cli |
Path to the bitcoin-cli binary |
DATA_DIR |
./.bitcoin/regtest-demo |
Regtest data directory |
WALLET_NAME |
demo |
Wallet name used for testing |
RPC_USER |
demo |
RPC username |
RPC_PASSWORD |
superorganism |
RPC password |
RPC_PORT |
18443 |
Regtest RPC port |
P2P_PORT |
18444 |
Regtest P2P port |
HOST |
127.0.0.1 |
Host interface for the node |
The script supports the following commands:
scripts/regtest.sh start
scripts/regtest.sh stop
scripts/regtest.sh reset
scripts/regtest.sh status
scripts/regtest.sh mine [n]
scripts/regtest.sh send <address> [amount] [op_return_hex]
scripts/regtest.sh treasury-address| Command | Description |
|---|---|
start |
Starts the regtest node, creates the config file if needed, loads or creates the wallet, and ensures the wallet is funded. On first startup, the script mines 101 blocks. This is necessary because coinbase rewards must mature before they become spendable. |
stop |
Stops the running regtest node. |
reset |
Deletes the local regtest blockchain and wallet state, then starts from a clean environment. This is useful for repeatable integration tests. |
status |
Prints basic blockchain and wallet state. |
mine |
Mines one or more new regtest blocks. This is especially useful for confirming transactions during testing. |
send |
Sends a demo transaction from the local wallet. |
treasury-address |
Prints the address of the treasury. This is useful for funding the wallet from external tools or for testing incoming transactions. |
Autonomous BitTorrent orchestrator that seeds Creative Commons content.
- Seeds content via BitTorrent (libtorrent)
- Auto-updates from GitHub and restarts on changes
- Broadcasts seeded content to IPV8 peers for health monitoring
This is deployed to a SporeStack VPS via mycelium-bootstrap/. See that directory for deployment instructions.
pip install -r code/requirements.txt
cd code && python main.pyAll config via MYCELIUM_* environment variables. See code/config.py for defaults.
Autonomous VPS provisioning system using Bitcoin payments and SporeStack API. Deploys mycelium, a BitTorrent orchestrator for Creative Commons content.
pip install -r requirements.txtpython wallet.py create mycelium
python wallet.py address mycelium # Send BTC to this address
python wallet.py scan mycelium # Verify funds receivedpython fund_sporestack.py fund 100python acquire_vps.pypython deploy_mycelium.pypython stop_mycelium.pyBitcoin HD wallet management.
python wallet.py <command> <wallet_name>
Commands:
create <name> Create new wallet (outputs mnemonic - save it!)
address <name> Get receiving address
balance <name> Check wallet balance
scan <name> Scan blockchain for updates
xpub <name> Get extended public key
load <name> Load and display wallet info
interactive Interactive wallet setup
SporeStack account funding via Bitcoin.
python fund_sporestack.py <command> [amount]
Commands:
fund [amount] Fund account (default: $10)
balance Check SporeStack balance
token Display saved token
help Show usage
Provision a VPS from SporeStack.
python acquire_vps.py [options]
Options:
--token TOKEN SporeStack token (default: ~/.mycelium/sporestack_token)
--flavor FLAVOR Server size (default: vultr.vc2-2c-4gb)
--os OS Operating system (default: ubuntu-24-04)
--provider PROV VPS provider (default: vultr.ams)
--days DAYS Server lifetime (default: 30)
--hostname NAME Server hostname (default: mycelium)
--list-flavors List available server sizes
--list-os List available operating systems
Deploy mycelium to a VPS.
python deploy_mycelium.py [options]
Options:
--host IP Server IP (default: from ~/.mycelium/server.json)
--port PORT SSH port (default: 22)
--ssh-key PATH SSH key path (default: ~/.mycelium/ssh/deploy_key)
--content-dir DIR Content directory to upload
--no-content Skip content upload
--wallet NAME Wallet name for xpub (default: mycelium)
--no-xpub Deploy without Bitcoin wallet
Stop mycelium orchestrator on the VPS to save resources.
python stop_mycelium.py
Connects to the VPS and kills the running mycelium process. Run deploy_mycelium.py to restart.
Search for Creative Commons videos and download them:
# Requires YOUTUBE_API_KEY in .env
python yt-api-cc-scripts/yt-api-cc.py
python yt-api-cc-scripts/yt-api-cc-playlists.py
# Download collected URLs
./scripts/parallel_ytdlp_download.shAll persistent data is stored in ~/.mycelium/:
~/.mycelium/
├── wallets/ # Bitcoin wallet databases
├── sporestack_token # SporeStack API token
├── ssh/deploy_key # SSH keypair for VPS access
└── server.json # Acquired VPS info
Simulates the economic lifecycle of self-replicating mycelium nodes: income (faucet), expenses (rent), reproduction (spawning children), and death (running out of funds).
pip install -r requirements.txtpython -m host.simulator -c config/small.yamlOutput goes to data/events.csv. Set tick_interval: 0 in the config to run at full speed.
All parameters live in config/default.yaml. To experiment, change it or create a new config file.
python -m host.simulator -c config/<your_file>.yamlEach tick is a synchronous round:
- Rent is deducted from every living node
- Bankrupt nodes are killed
- Faucet injects funds
- Every living node decides exactly once:
none,spawn, orfailsafe - Decisions are processed (spawns transfer inheritance; failsafe nodes donate all funds then die)
- Conservation invariant is checked
python analysis/plot.py data/events.csv -o data/plots