Denara — Sanctuary of Aden

A Lineage world running on the original client, rebuilt to play in a browser. No download, no install. The items you earn can be yours on-chain — and still swung at monsters.

What it isThe real game, in a tab

Not a remake or a tribute — the original 2002 client's own art, decoded straight out of its archives and drawn in a canvas.

The original artwork

Every sprite, tile and interface panel is read live from the game's own .pak archives. The inventory frame you see is the one from 2002, not a recreation of it.

A real server

An unmodified l1j server decides everything — movement, combat, drops, trade. The browser is a client, not a simulation, so the rules are the ones the game has always had.

Nothing to install

It runs in any modern browser. No launcher, no patcher, no twenty-year-old executable asking for administrator rights.

OwnershipYour sword, actually yours

Put an item on-chain and it stays in your bag. You still equip it, still fight with it — it simply also exists as something you can sell to anyone, anywhere, without asking a server for permission.

Inventory with token-backed items outlined in green

It stays playable

A token-backed item is marked with a green frame and keeps working exactly as before. It is also safe from being dropped or lost on death.

One item, one owner

While the token exists, the item trades on-chain rather than in the game's trade window — the same thing cannot change hands in two places at once. Release the token and it goes back to normal trade.

MintedItems already on chain

Rendered from the game's own icons, with the stats the server actually resolves combat with — not invented rarity.

CharactersPeople, as tokens

A character keeps being played while its token exists — it levels, earns and fights normally, and these cards read the live stats rather than the ones frozen at mint.

BestiaryThe creatures, as tokens

One token per kind of creature, drawn with the sprite the game actually uses. 245 of the world's 834 are minted — these are the highest level of them.

The worldWhere people are standing

Rendered from the live server: real ground, and every character drawn where the world actually has one. Re-taken as the towns change.

Right nowThe world, live

Read from the server and the chain when this page loaded. Nothing on this page is a decorative number.

in the world now
characters
items on chain
holders

The BestiaryOwn a creature, earn from the hunt

One token for one kind of monster — its real sprite, its real stats, straight from the server's own tables. 245 of the world's 834 creatures are minted.

Proposed, not live. What follows is a design. Nothing on the server or on chain pays it yet and no DNR has been emitted for it. The numbers come from the live spawn tables, so they are real, but this is a plan published for scrutiny — not a feature you can use today.

The idea is simple: hold a creature's token and earn a small bounty in DNR whenever anyone in the world kills that creature. A passive royalty on the hunt. The hard part is making it fair, because monsters are not equally farmable — and the gap is not close.

CreatureSpawnsRespawnKills/hour ceiling
Cruel Snow Tiger (lvl 48)612instant73,440
Cimaera (lvl 39)611instant73,320
Corrupted Skeleton Knight (lvl 55)110 min6
Jeb Requie (lvl 70)17 hours0.14

The most farmable creature is 6,100,000× the least. So the obvious design — pay per kill, scale by level — fails badly. Give the level 70 boss ten times the rate and a Snow Tiger still earns fifty thousand times more. The rarest token in the set would be worthless and a trash mob would be a money printer. Any workable system has to neutralise farmability, not reward it.

Four rules

1. Each token has a daily bounty budget, set only by the creature's level. Level is fixed game data — it cannot be farmed, inflated or influenced by a holder, which is exactly why it is the only input.

2. The per-kill payout is that budget divided by how often the creature actually dies. This is the part that does the work, and it is self-normalising: a boss's two kills a day each pay a lot, a trash mob's hundred kills each pay a sliver, and both fill about the same budget.

CreatureBudget / dayExpected killsPer kill
Jeb Requie (70)1.446320.781091
Guardsman of Yahee (65)1.22871310.009347
Abyss Ghoul (45)0.54711860.002943
Bandit (32)0.25841420.001820

3. The budget is a hard daily ceiling. Kills past it earn nothing. Farming one creature around the clock does not create more DNR — it exhausts that token's budget faster and then stops. Total emission is bounded by the set, not by anyone's effort.

4. A kill only counts if the creature was worth killing. A budget bounds how much DNR exists; it says nothing about who collects it. Without this rule one level 99 character sweeps the low-level maps and takes the whole set's emission in an afternoon, risking nothing. So the bounty scales with the gap between killer and creature: within 5 levels pays in full, 15 levels or more pays nothing, tapering between. A level 99 killing a level 32 Bandit earns zero — collecting that Bandit's budget takes somebody for whom a Bandit is still a fight. Killing something far above your level pays in full; that is earned.

The two rules point the same way. The easy creatures are only farmable by the characters they are meant for, and the rare high-level ones — the ones a strong character can still earn from — carry the largest per-kill bounty.

What it would emit. Across all 245 minted creatures: 141.86 DNR a day, 51,780 a year — 0.0052% of supply per year, or 193 years to emit 1%. Deliberately, almost absurdly conservative. Bounties would accrue to the address that held the token at the moment of the kill, so buying a token never buys its history, and claims would run through the existing rewards contract whose per-claim and daily caps are already in deployed bytecode.

On-chainContracts, in the open

Live on Abstract mainnet (chain 2741). Every address is readable on the explorer — nothing here asks you to take a screenshot's word for it.

ContractAddress
Denara (DNR) 0xe08a8a8fd38b7acfc47dcdb90de26be05d039424
Rewards 0xd5fB8F36289d533941158A4c0B3A472844F4d11B
Items 0x2A13b1aDF2FD77E01FE4FD617Dd9b70cb04cd9d3
Characters 0x1ce13f0B52590d419d839aa4871Bf88081C23986
Bestiary catalogue 0x6176FD2681446B1444A15f0226E5C5bC34cBef0A
Bundles 0x35d02Ef89F723e063E909dE0743707f4F275a374
Market 0xB5CF4085B37A1Ef30BdD9327DEA35f39747Ff8F9
The Bestiary is a catalogue, not a claim. Every other token here follows one rule: the token id is the game object's id, so a sword's token is that sword, in that bag, on that character. A monster has no such id — Demon of Varlok is a species, not an instance. So a Bestiary token is one entry for one KIND of creature, drawn with the sprite the game uses and carrying its real stats. It grants no monster, changes nothing in play, and cannot be redeemed. Nothing on the server reads it. 245 of the world's 834 creatures are minted.
What the operator can and cannot do. The token's minter is locked to the rewards contract and can never be changed, so no key — including the owner's — can print supply. Every cap has a hard ceiling above it that the owner cannot raise. Ownership can be handed on but never abandoned, because an ownerless contract could never be paused again. These are properties of the deployed bytecode, not promises.
Early, and honest about it. This is a small world run by one person. Contracts are live and audited but unaudited by a third party; the on-chain layer is new. Treat anything you mint as something you might lose, until it has proved otherwise.

PlainlyAn experiment, not a product

This began as a question rather than a plan: could a 2002 Lineage client be made to run in a browser, and could the things you earn in it be made real on a chain without hollowing out the game that gives them meaning? It got answered over a run of evenings and weekends, mostly for the pleasure of finding out.

There is no roadmap and no launch. It may never open to the public. Nothing here is a promise, a sale, or an invitation to buy anything — the tokens exist because minting them was the only honest way to test whether the idea worked, not because anyone should want them.

What is true is on this page and checkable. The contracts are deployed and verified on Abstract, and their addresses are above. The screenshots are rendered from the running server, not mocked up. Where something is only designed — the bestiary bounties, for one — it says so in the same breath as the numbers.

Curious, or think something here is wrong? Both are welcome.

Get in touch