The SN126 / Poker44 (poker bot-detection) plugin for Kata.
A validator sends a miner chunks of poker hands; the miner returns one bot-risk score
per chunk; the pure Poker44 reward() scorer grades those against ground-truth labels. The
scalar reward promotes through Kata's generic rank_signals gate — so onboarding SN126
needs no changes to kata core or kata-board.
- Upstream subnet: https://github.com/Poker44/Poker44-subnet · https://poker44.net
- Design & progress:
kata-sn126-build-plan.md· Feasibility:sn126-feasibility.md
- 3a — skeleton +
kata.subnetsdiscovery (identity attrs, sealed env spec) - 3b — benchmark fetch/pin/verify +
sample_problems+benchmark_identity - 3c —
score(vendored Poker44reward()) → ScoreCard + metrics - 3d —
run_candidate(agent_main(chunks) -> risk_scores, isolated + egress-blocked) - 3e —
compare/beats_king+ richrank_signals+ lane config (config only) - 3f — anti-memorization
static_screen
The plugin is contract-complete and works end-to-end offline, with no changes to kata
core or kata-board.
The public benchmark is labeled, so the risk is a miner that memorizes/looks up answers instead of learning from hand features. Guards, strongest first:
- Egress-block —
environment_specisnetwork="none"; an agent can't fetch labels at run time. - Held-out split + rotation — eval on the
validationsplit, rotated per daily release (operator config). static_screen— scans a bundle for network imports / secrets (reject) and label-field references, id-as-feature, or embedded answer tables (review).- (future) dynamic mutation canary — score lightly-perturbed hands to catch a lookup table.
uv venv && uv pip install -e ../kata -e '.[dev]'
.venv/bin/python -m pytest -qMIT.