✦ Where Spells Are Cast in Script ✦
Every innovation forged here was once thought impossible. A game that needs no server. Characters that live on-chain. Combat validated by mathematics alone.
In the old world, every game needed a lord — a server, a database, a sysop who held the keys to the kingdom. Your character existed at their pleasure. Your gold was entries in their ledger. Your victories were rows in their tables. One corrupted backup, one unpaid hosting bill, and your knight was dust.
The DAG Gate commits heresy against this order. It declares that a game can run with no server at all. That a character sheet can be a self-sovereign artifact on a blockchain. That the rules of combat can be enforced by mathematics, not moderators. That the BlockDAG itself is the only lord this realm needs.
In the old magic, when a coin was spent it vanished forever. The covenant smiths of Kaspa forged a different enchantment: a UTXO that refuses to die. When spent, it forces the spending transaction to recreate it with updated state. Your character sheet is not a database row — it is a living chain of covenant-enforced outputs, each link a validated state transition. The knight transforms but never perishes. HP changes, gold flows, levels rise — but the UTXO endures, carrying its history in the very fabric of the BlockDAG.
A single covenant acting alone is a sword without a wielder. The true power emerges when covenants speak to one another within the crucible of a single atomic transaction. When a knight purchases a blade at the Hash Bazaar, two covenants — Player and Shop — validate their halves of the bargain simultaneously. Neither executes the other's logic. Neither trusts the other. They verify each other's presence in the transaction, and the atomicity of the BlockDAG guarantees that either both succeed or both fail. This is ICC: trustless commerce between sovereign programs.
The combat rules of The DAG Gate are too complex for raw script execution.
Chess moves, damage calculations, experience curves — these demand
computational space that no L1 should bear. So the computation happens
off-chain, in a RISC Zero guest program, and the result is distilled into
a single cryptographic proof. The L1 verifies this proof in 140 sigops
via OpZkPrecompile. The chain never learns the rules of combat.
It never re-executes the math. It simply confirms that someone, somewhere,
ran the correct program and produced the correct result. The truth of the
proof is all the chain needs.
In the old BBS games, daily fight limits were enforced by the server's clock.
Reset at midnight, central time, because that's when the sysop's cron job ran.
On the BlockDAG, time is woven into the protocol itself. The opcode
this.age reads how many seconds a UTXO has existed. A covenant
can demand require(this.age > 86400) and no force in the realm
can circumvent it. The daily reset is not a feature of the application —
it is a property of the physics of the chain. No server clock. No admin override.
Just the immutable passage of block time.
There is no backend. There is no API server. There is no middleware, no load balancer, no container orchestration. The game runs as static HTML, CSS, and JavaScript on GitHub Pages. The browser loads a WebAssembly SDK, generates a keypair, builds transactions, signs them locally, and submits them directly to the Kaspa network. The entire server infrastructure for this game is a single Kaspa node — the same node every miner already runs. The game is a web page. The server is the BlockDAG. The gap between them is a single WebSocket connection.
The five innovations above work — but building on them raw means wrangling hex offsets, OP_PUSH opcodes, sig_script construction, and manual UTXO scanning. Every game feature required 100 lines of careful byte manipulation. One wrong offset and the covenant rejects your transaction.
We pulled all of that complexity out of the game code and into a separate abstraction layer: the Kaspa World Protocol (KWP). One JS file, no dependencies. Decode covenant state in one call. Build valid transactions from intent. Identify entity types by script hash. Verify randomness from block hashes. The DAG Gate now runs entirely on KWP — no manual hex anywhere in the game code. And because it's a standard, any new game or application can reuse the same layer.
The DAG Gate stands on the shoulders of those who proved this magic real.
Michael Sutton and IzioDev built the first trustless chess game on Kaspa — ZK-verified moves, covenant-enforced board state, real KAS stakes. Their covenants breakdown proved that Kaspa's UTXO model could carry complex application state. The chess demo inspired The DAG Gate's architecture: if a chessboard can live on-chain, so can an entire RPG.
SilverScript — Ori Newman's covenant compiler — transforms high-level contract declarations into native Kaspa script. Our Player covenant compiles from human-readable policy functions into 160 bytes of bytecode that the L1 executes directly. No VM. No interpreter. Pure script.
These are not theoretical claims. Every innovation listed above has been demonstrated on Kaspa Testnet-12:
@kasdk/web WASM SDK
"In 1991, LORD needed a BBS server.
In 2026, the BlockDAG is the server.
Every fight is a state transition.
Every level-up, a covenant-enforced UTXO.
No trusted host. No admin. Just math."