If you hold or send KAS from a normal wallet, there is nothing to do. Node upgrades are for people running infrastructure.
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
| Area | Status | What it means |
|---|---|---|
| Mainnet release | Released | Rusty 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 activation | Activated | Toccata 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 tests | Testnet | The 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 testing | Testnet | Developer-flow and opcode testing evidence. It does not change mainnet status. |
| Silverscript | Targeted | A high-level scripting language and examples for native Kaspa Script work. |
| Toccata KIPs | Activation bundle | KIP-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. |
| Argent | Pre-audit | Michael 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 SDK | Tooling | The 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 hooks | Protocol surface | A script can verify a proof. It still can't anchor external facts on its own. |
| Transaction v1 / KIP-24 | Open PR | KIP-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 composition | Roadmap | Later 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.
Run Rusty Kaspa v2.0.1 or newer. The node database upgrade only goes one way: the only path back is a resync.
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.
Update SDKs or regenerate bindings, then handle transaction version 1, storageMass/storage_mass, computeBudget, output covenants, and UTXO covenant_id.
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.
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.