Toccata status

Kaspa Toccata status

Toccata is live on Kaspa mainnet. It activated at DAA score 474,165,565 on June 30, 2026, and brought covenant-style programmability to Kaspa's L1.

Summary: Rusty Kaspa v2.0.1 is the current upgrade release; v2.0.0 set the activation parameters. Next to check: upgraded-node behavior, wallets, explorers, SDKs, examples, real app use.

Direct answer

Does Kaspa have smart contracts?

Yes, on L1: covenant rules, covenant IDs, ZK proof checks, and sequencing commitments all activated with Toccata. Native DeFi, audited apps, broad wallet support, and full vProgs are separate claims that still need their own evidence. Kaskad- and Igra-style L2 ecosystem activity is real context, but it isn't native Kaspa L1 DeFi.

Current state

Status by area

AreaStatusWhat it means
Mainnet releaseReleasedRusty Kaspa v2.0.1 published June 15, 2026 as a Toccata maintenance release. v2.0.0 published June 5, 2026 as the Mainnet Toccata Release, carrying the activation parameters listed above.
Mainnet activationActivatedToccata is live: mainnet REST checks read virtual DAA past the activation score, with block and header counts climbing past it too. Node upgrades and accepted mainnet transactions using the new fields are the next layer to verify.
TN10 activation testsTestnetThe tn10-toc2 pre-release put Testnet-10 activation at DAA score 467,579,632. tn10-toc3 scheduled final Toccata ZK hardening at DAA score 476,232,000. A July 9 check of the Testnet-10 REST API read virtual DAA 512,574,907, well past both scores.
TN12 covenant testingTestnetDeveloper-flow and opcode testing evidence. It does not change mainnet status.
SilverscriptTargetedA high-level scripting language and examples for native Kaspa Script work.
Toccata KIPsActivation bundleKIP-16, KIP-17, KIP-20, and KIP-21 are the activated bundle, and all four raw files now read Status: Active. They moved together in kips commit e4ae2332 on July 15, 2026, two weeks after mainnet activation. Until then they were still scoped to TN10.
ArgentPre-auditMichael Sutton's Argent is an actor-based language and compiler that turns .ag source into plain Silverscript contracts and portable artifacts consumed by argent-runtime. Its README lists the main pieces as already present: compiler, generated Silverscript, runtime transaction building, multi-actor routing, and closed and open Inter-Covenant Communication. The gate the README sets for itself is an audit. A production path opens once Silverscript completes its audit and is released, and Argent needs further audit and hardening after that. Zero releases, zero tags.
ZK SDKToolingThe merged Rusty Kaspa ZK SDK PR adds an R0ScriptBuilder wrapper for RISC Zero proof scripts. It improves builder ergonomics; production ZK apps still need their own receipts and user flows.
zk verification hooksProtocol surfaceA script can verify a proof. It still can't anchor external facts on its own.
Transaction v1 / KIP-24Open PRKIP-24 is open for transaction version 1 fields and hashing: compute budgets, covenant bindings, user lanes, and a BLAKE3 payload/rest txid split for ZK and based-executor workflows.
Full vProgs compositionRoadmapLater architecture for richer app-to-app behavior. Toccata's activated surface is narrower than that.

What changes

What an L1 script can enforce now

Four new things. A script can require the next output to preserve a rule, carry a consensus-tracked identity through valid continuations, verify a proof about chosen public inputs, and commit to one app's lane of activity instead of the whole DAG. Those are the rules under vaults, escrow paths, asset rules, and standalone based apps. Building the apps is a separate job.

None of that makes Kaspa an EVM. There is no account layer, no deployment step, and no shared global state for apps to sit in. Toccata Explained takes the four KIPs one at a time; Covenants, explained covers the spend-rule mechanism on its own.

Operator checklist

Who needs to check their path

The remaining work is field checks rather than upgrade readiness. Find your row.

Ordinary users

If you hold or send KAS from a normal wallet, there is nothing to do. Node upgrades are for people running infrastructure.

Node operators

Run Rusty Kaspa v2.0.1 or newer. The node database upgrade only goes one way: the only path back is a resync.

Wallets and submitters

Use fee estimation, or update fixed-fee code to 100 sompi * max(compute grams, 2 * transaction bytes). Before activation that floor bound only direct RPC submissions. The guide says relayed transactions are rejected under the same rule after activation, so it now binds both paths.

Exchanges and indexers

Update SDKs or regenerate bindings, then handle transaction version 1, storageMass/storage_mass, computeBudget, output covenants, and UTXO covenant_id.

Miners and pools

Test block templates, job distribution, solved block reconstruction, and SubmitBlock against Testnet-10. A block that strips post-Toccata fields can turn invalid after the activation score.

Pool accounting

Check GetBlockRewardInfo, and GetSeqCommitLaneProof where lane-proof data matters. Infrastructure detail, but the kind that breaks payouts if skipped.

Operator references: Toccata node setup guide and Go Kaspad v0.12.23.

Sources

Where this status comes from

Primary references: Toccata guide, mainnet REST status, tn10-toc3, tn10-toc2, TN10 REST status, the KIP status index, KIP-16, KIP-17, KIP-20, KIP-21, KIP-24 PR, ZK SDK PR, Silverscript, and Argent.