Economy Integrity · Built on Aurora DSQL

Duplication,
made unrepresentable.

Duped is an economy kernel for online games. It removes item dupes, gold double-spends, and cross-region trade exploits — by making every economic action one atomic, idempotent transaction. The bug that's wrecked game economies for 25 years, gone at the data layer.

We threw 10,000 bots at one legendary sword across two regions. It stayed exactly one — and you can run the SQL proof yourself.

01The Problem

A dupe bug is counterfeiting.

When a player duplicates a legendary or spends the same gold twice, the economy inflates and trust collapses. This isn't a fringe glitch — it has shipped in the biggest games ever made.

New World(2021)

Amazon repeatedly froze all trading and gold transfers to stop item and gold dupes.

Diablo II

Item and gold dupes defined its black market for roughly 20 years.

RuneScape

Dupe incidents forced full economy rollbacks.

Teams of hundreds keep shipping dupes — because the root cause is distributed-systems correctness, not bad luck.

02The Insight

A dupe isn't a game bug. It's a double-commit bug.

Every classic dupe is the same database failure in disguise.

ExploitCorrectness property
Trade-window raceExactly-once — version-guarded transfer
Drop-and-relogAtomicity — all-or-nothing
Disconnect mid-tradeAtomic rollback
Cross-region dupeActive-active strong consistency
Gold double-spendConditional atomic debit

Fix the consistency, and duplication has nowhere to live.

03How It Works

A sword is not money — so we protect them differently.

UNIQUE ITEMS

Every unique item is exactly one row with one owner and a version. Moving it is a conditional UPDATE that must match the current owner + version — two concurrent transfers can't both match, so exactly one wins. “Owned twice” has no representation.

UPDATE item_instances SET owner_id=:to, version=version+1
 WHERE instance_id=:id AND owner_id=:from AND version=:expected;
-- rowCount must be 1
GOLD

Balances are sharded and can't go negative; every transfer writes a balanced double-entry ledger. Supply in = supply out, to the minor unit. No inflation.

balance_minorCHECK ≥ 0
ledger Σ(signed)= 0
supply in= supply out
04The Proof

One query proves it.

No dashboards to trust — the invariants are runnable SQL against the live truth core. Here's the same check the demo runs on camera.

pnpm reconcile
legendary count=1
gold supply== minted (drift 0)
ledger drift=0
every txn balanced=true
ALL INVARIANTS PASS
Run it yourself in the live demo ▸
05Built On
Aurora DSQL

Strongly-consistent, active-active multi-region truth core. The single source of authoritative economy state.

DynamoDB

The live world read model — written only by the outbox projector, never inside a trade.

Vercel

Edge deploy with OIDC auth — no credentials in code, from local dev to production.

agentstrade kernelAurora DSQLDynamoDBlive world

Ready to make dupes impossible?

▸ Try the live demoRead the docs

Built for the H0 hackathon · Million-Scale Global App (gaming)