| name | darwinia |
| description | Evolve trading strategies through genetic algorithms and adversarial combat. Run Darwinian selection on BTC data to discover battle-tested strategies. No API keys, no cloud. Use when this capability is needed. |
| metadata | {"author":"0xSanei"} |
Darwinia — The Self-Evolving Agent Ecosystem
Darwinia evolves trading strategies through natural selection. 50 agents compete on real BTC market data, the weak die, the strong breed. After 50 generations, survivors handle rug pulls, fake breakouts, and whipsaws — because agents that couldn't survive didn't reproduce.
When to use this skill
- User asks to "find a good trading strategy" or "optimize trading parameters"
- User wants to stress-test a strategy against adversarial market conditions
- User asks about genetic algorithms applied to trading
- User wants to discover market patterns automatically
- User says "evolve", "darwinia", "genetic trading", or "adversarial test"
Commands
Quick evolution (~30 seconds)
python -m darwinia evolve -g 10 --json
Full evolution with adversarial arena (~3 minutes)
python -m darwinia evolve -g 50 --json
Test champion against 6 attack types
python -m darwinia arena --json
System info
python -m darwinia info --json
Interactive dashboard
python -m darwinia dashboard
Always use --json when calling programmatically.
Interpreting results
Key JSON fields after evolve --json:
champion.fitness: Risk-adjusted score. >1.0 = outperforms buy-and-hold.
champion.genes: 17 floats [0,1] encoding the full trading strategy.
evolution_summary.patterns_discovered: Number of emergent trading rules found.
patterns: Emergent trading rules discovered by agents (not pre-programmed).
How to explain results to user
- Fitness > 1.0 → Champion outperforms buy-and-hold on risk-adjusted basis
- High genetic diversity → Population hasn't converged yet, more generations may help
- Discovered patterns → Trading rules the agents found on their own
Installation
git clone https://github.com/0xSanei/darwinia.git
cd darwinia
pip install -e ".[dev]"
No API keys. No cloud. Pure Python + numpy. BTC/USDT 1h data (10,946 candles) included.
Composability
Darwinia exposes a two-way composability interface so it can interoperate with other ClawHub / OpenClaw skills.
Other skills call Darwinia (SkillBridge API)
from darwinia.integrations import SkillBridge
bridge = SkillBridge()
result = bridge.evolve({
"generations": 20,
"population_size": 30,
"data_path": "data/btc_1h.csv",
})
champion = bridge.get_champion()
champion = bridge.get_champion(generation=10)
score = bridge.evaluate_strategy([0.8, 0.5, 0.3, 0.5, 0.9, 0.6, 0.4, 0.05, 0.1,
0.4, 0.7, 0.1, 0.7, 0.5, 0.6, 0.5, 0.8])
regime = bridge.get_market_regime()
Darwinia calls other skills (SkillRegistry)
from darwinia.integrations import SkillRegistry
registry = SkillRegistry()
registry.register("macro-liquidity", my_macro_function)
registry.register("crypto-market-rank", my_ranking_function)
macro = registry.call("macro-liquidity", indicator="fed_net_liquidity")
trending = registry.call("crypto-market-rank", category="trending", limit=10)
print(registry.list_skills())
Example pipeline: macro-liquidity -> Darwinia -> evolved strategy
from darwinia.integrations import SkillBridge, SkillRegistry
registry = SkillRegistry()
registry.register("macro-liquidity", get_macro_signals)
macro = registry.call("macro-liquidity")
config = {
"generations": 50,
"population_size": 50,
"data_path": "data/btc_1h.csv",
}
if macro.get("yen_carry_signal") == "risk_off":
config["seed_ratio"] = 0.4
bridge = SkillBridge()
result = bridge.evolve(config)
champion = bridge.get_champion()
print(f"Best fitness: {champion['fitness']}")
print(f"Market regime: {bridge.get_market_regime()['regime']}")
Built-in integration templates available for: macro-liquidity, crypto-market-rank, okx-dex-market.
Important
- Simulation only. Does NOT execute real trades.
- Deterministic with same random seed (default: 42).
- Evolution engine is domain-agnostic — can evolve any agent behavior, not just trading.
Source: 0xSanei/darwinia — distributed by TomeVault.