Gonka v0.2.12 was published on April 27, 2026 as an on-chain upgrade proposal. It introduces multi-model Proof of Compute, separates the devshard runtime into a standalone versioned service, and adds the consensus-level machinery for transaction fees that governance can later turn on. The full set of CertiK audit findings flagged for this version is also addressed.
The release has been verified on testnet and will activate on MainNet only if the on-chain upgrade proposal passes.
What shipped
- Multi-model PoC (#1039) — every governance-approved model gets its own PoC group running in parallel. The base model now coexists with
moonshotai/Kimi-K2.6, a second governance-approved model added in this release. - Devshards become a standalone runtime (#1045) — devshards are extracted from the main DAPI process into a versioned binary managed by a new
versiondservice. The term "subnet" is replaced by "devshard" everywhere in the codebase. - Transaction fee groundwork (#937, #981, #1120) — a governance-controlled
FeeParams.min_gas_price_ngonkais now enforced during bothCheckTxandDeliverTx. The value is initialised to0, so no economic change ships immediately. - Random selection of preserved MLNodes (#1089) — preservation is now scoped to a single PoC episode instead of a whole epoch, removing the predictability that previously let operators plan around which boxes would skip PoC.
- CertiK audit fixes — findings GEB-44, GEB-45, GEB-46 (ETH/WGNK address collision), GEB-51, GEB-54, GOC-15, plus a second batch of bridge and BLS issues, are all closed.
- PoC v2 entropy fix and on-chain MLNode version — the random seed used for PoC v2 verification no longer relies on only 32 bits of entropy, and each node's MLNode software version is now visible in chain state. The new RNG ships in code but is gated behind a separate governance vote so MLNodes can update first.
Under the hood
Multi-model PoC: two layers of weight
A single-model PoC cannot safely scale to multiple models. If the network served several models but only validated one, an attacker could spin up the validation hardware just for the check window and shut it down afterward. v0.2.12 forces every model to prove its own compute by running a parallel PoC group per model, with PoC starting immediately on the exact model being validated.
To make this work without forcing every Host to run every model, weight is split in two. PoC weight is local to a model group and drives that group's inference routing and rewards. Consensus weight is the total network weight, aggregated across all eligible groups using model-specific coefficients, and it determines block signing and voting power. A Host that cannot run a given model can delegate its consensus weight to a member of that group for PoC validation only — preserving the requirement that a model group must reach a 2/3 threshold of total network consensus weight, not just its own internal weight.
Hosts pick a participation mode per model: DIRECT, DELEGATE, REFUSE, or INTENT. Doing nothing falls into NONE and triggers a penalty after a per-model grace period.
Versioned devshards: versiond
Before v0.2.12, the devshard runtime lived inside the main DAPI process. Upgrading devshards meant rebuilding and restarting the entire DAPI, which made even small changes risky for inference and PoC.
The new versiond service downloads and runs devshard binaries approved by on-chain governance. Multiple versions can run at once, with traffic routed by URL: /devshard/<version>/* goes to the matching binary. Each session is cryptographically bound to the binary version that served it, and the settlement payload now carries an explicit version field so responses from two versions cannot accidentally mix. Float math in devshard settlement is replaced with deterministic integer arithmetic to remove a class of consensus-failure risks. The migration seeds DevshardEscrowParams.ApprovedVersions with the initial v1 binary (sha256 15f72244...d36d4715) so versiond has something to run from block one of the upgraded chain.
Impact
For Hosts, action is required after the upgrade lands. Each Host must explicitly pick a participation mode for every active governance-approved model. NONE is a non-decision and accumulates a penalty once the grace period ends. Hosts also deploy the new versiond service and reconfigure their proxy with VERSIOND_SERVICE_NAME=versiond and GONKA_API_EXEMPT_ROUTES=chat inference poc/proofs devshard so devshard traffic is routed correctly. Existing api and node containers do not need to be replaced as part of the upgrade itself.
For developers, the most visible change is that running inference no longer requires registering as a Participant — an account with a public key on chain is enough. The DAPI also accepts multipart-encoded OpenAI requests alongside JSON and returns more accurate HTTP status codes (including 400 and 422 for malformed payloads), which fixes a long list of small incompatibilities with upstream OpenAI SDKs.
For users and validators, immediate behaviour does not change. min_gas_price_ngonka is 0, the new PoC v2 RNG is in code but not yet active, and the legacy /v1/devshard/* route stays live during the transition. The mechanisms are in place; turning them on is a governance decision.