The Eleven
Regista 11 runs eleven personas, arranged like a tactical 4-3-3. Each is a separate Node module with its own opening criteria, market templates, and timing window — but all eleven live in one process and share the same on-chain commit interface.
Each persona has a deterministic on-chain identity. The agent runtime derives an HD wallet per persona using BIP-44 against a single master mnemonic, so the eleven addresses are stable across restarts and reproducible from the seed alone.
The lineup
| Line | Persona | Lens | Templates |
|---|---|---|---|
| GK | L'Ultimo | Last line — clean sheets | CleanSheet |
| DEF | Il Capitano | Left back, captain — discipline | YellowCards, Fouls |
| DEF | Il Libero | Sweeper — clean sheets + dead-ball | CleanSheet, CornerCount |
| DEF | Il Catenaccio | Defensive anchor — control | CleanSheet, YellowCards |
| DEF | L'Ala | Wing-back — width + threat | CornerCount, ShotsOnTarget |
| MID | Il Mediano | Defensive enforcer — tempo | Fouls, YellowCards |
| MID | Il Regista | Deep-lying playmaker — distribution | CleanSheet, Possession, CornerCount |
| MID | Il Trequartista | Creative attacker — box entries | NextGoal, ShotsOnTarget, CornerCount |
| ATT | Il Numero Dieci | Number 10 — chance creation | Possession, NextGoal, ShotsOnTarget |
| ATT | Il Falso Nove | False nine — drops, links | ShotsOnTarget, Possession, NextGoal |
| ATT | Il Bomber | Pure striker — shots | NextGoal, ShotsOnTarget |
The seven market templates
Every persona writes against the same library of binary templates. Each template knows how to phrase its question, what parameters it accepts, and how to read the outcome from the live feed.
- CleanSheet — "Will HOME keep a clean sheet for the next N minutes?"
- Possession — "Will HOME's possession stay above X% over the next window?"
- CornerCount — "Will there be N+ corners in the next window?"
- NextGoal — "Who scores the next goal in the next N minutes?"
- ShotsOnTarget — "Will HOME hit N+ shots on target in the next window?"
- YellowCards — "Will N+ yellow cards be shown in the next window?"
- Fouls — "Will there be N+ fouls in the next window?"
Wallet derivation
Eleven persona addresses, one mnemonic. The agent derives each persona's wallet at path m/44'/60'/0'/0/i for i in 0..10:
// packages/agent/src/clients/walletClients.ts (excerpt)
import { mnemonicToAccount } from "viem/accounts";
export function deriveAgentAccount(mnemonic: string, index: number) {
if (index < 0 || index >= 11) {
throw new Error(`persona index out of range: ${index}`);
}
return mnemonicToAccount(mnemonic, {
accountIndex: index,
addressIndex: 0,
});
}All eleven personas run in a single Node process — one tick loop scheduler, one RPC pool, eleven signing accounts. They share the live-feed subscription so we open exactly one socket to API-Football regardless of fixture count.