Resource Terminal is a browser-based MMORPG (inspired by the 2004-era RuneScape engine) with a live Bitcoin Layer 1 token economy. Players earn $RST through genuine gameplay — chopping trees, mining ore, killing monsters, skilling — and convert that effort into a real on-chain asset via OPNet.
RST is not a points system. It is an OP20 token on Bitcoin L1 & a wrapped token on Ethereum. Players claim it to their own wallets and swap it for BTC or ETH via LP pools found on both chains.
Resource Terminal is a fully functional MMORPG running in-browser with no download required. A Bitcoin wallet (OP_WALLET) or Ethereum wallet (Phantom, MetaMask, etc.) is required to claim RST.
| Property | Testnet | Mainnet |
|---|---|---|
| Symbol | RST | |
| Chain | Bitcoin L1 via OPNet (OP20 / AssemblyScript) | |
| Total Supply | 1,000,000 RST | 1,000,000,000 RST |
| LP Allocation | 500,000 RST | 500,000,000 RST |
| └ wRST Backing Burn (from LP) | (80,000) | (80,000,000) |
| └ Team LP Share (from LP) | TBD | |
| Claim Pool | 500,000 RST | 500,000,000 RST |
| Transfer Burn | 1% on every transfer (activates after LP pair set) | |
| Conversion Fee | 10% at earn time only — no claim fee | |
| Team / VC / Pre-mine | LP share only — no separate mint | |
| Property | Value |
|---|---|
| Symbol | sRST |
| Chain | Bitcoin L1 via OPNet (OP20) |
| Minted by | Staking RST 1:1 into the sRST contract |
| Reward source | 5% of every RST claimWithVoucher globally — distributed on-chain atomically |
| In-game multiplier | Flexible |
| 1× multiplier | No lockup — 20% early exit penalty |
| 30-Day | 5× multiplier — 4,320 block lockup — 10% early exit penalty |
| 90-Day | 4× multiplier — 12,960 block lockup — 1% early exit penalty |
| 180-Day | 2.5× multiplier — 25,920 block lockup — 0% early exit penalty — Unlocks Phase 3 (Full World) for Phase 2 holders |
| No lock required to stake | Stake any amount, any time — 20% exit fee |
| Property | Testnet | Mainnet |
|---|---|---|
| Symbol | wRST | |
| Chain | Ethereum (ERC-20 / Solidity) | |
| Total Supply | 80,000 wRST | 80,000,000 wRST |
| LP Allocation | 40,000 wRST | 40,000,000 wRST (Uniswap V2 wRST/ETH → wRST/sBTC mainnet) |
| Claim Pool | 40,000 wRST | 40,000,000 wRST (earned by players via gameplay) |
| Backed by | Equivalent RST burnt on BTC L1 at deploy | |
| Conversion Fee | 10% at earn time + 10% at claim time = ~20% total | |
| GP cost per token | ~125 GP gross per 1 wRST (vs ~111 GP for RST) — higher floor value per token | |
| Team / VC / Pre-mine | None | |
| Property | Value |
|---|---|
| Symbol | swRST |
| Chain | Ethereum (ERC-20 / Solidity) |
| Minted by | Staking wRST 1:1 into the swRST contract |
| In-game multiplier | 2.5× RST earn rate while staked (server-side, tracked by swRST balance) |
| Reward source | 5% of every ETH-side wRST claim fee — accumulated in swRST contract |
| Lock period | 60 days |
| Early exit fee | 10% (before 60 days) |
| Normal exit fee | 1% (after 60 days) |
| No world-gating connection | Independent of BTC Phase system — ETH wallet only |
The claim pool depletes as players earn. No fixed emission schedule — pools drain on demand, driven entirely by gameplay activity. The 80K RST burnt on BTC at wRST deploy ensures total cross-chain supply never exceeds 1M (testnet) / 1B (mainnet).
RST is earned through gameplay. The server tracks GP (Gold Pieces) via skilling XP, monster kills, and boss kills. GP Converted shown in your sidebar is your gross earnings before any fees.
There are two fee events in the RST economy:
| Event | Fee | Where it goes |
|---|---|---|
| 1. Native conversion — happens at every sale | 10% | Grant pool + staker pool |
| 2. Claim fee — BTC (RST) | 0% additional | — |
| 2. Claim fee — ETH (wRST) | 10% additional | wRST grant pool + swRST stakers |
| Step | BTC (RST) | ETH (wRST) |
|---|---|---|
| Gross GP earned | 125 GP | 125 GP |
| After 10% native fee | ~113 GP — your “tab” | ~113 GP — your “tab” |
| After claim fee | ~113 GP (no extra fee) | ~102 GP (another 10%) |
| Tokens received | ~1.13 RST | ~1.02 wRST |
| Total fee on gross | ~10% | ~20% |
Your GP tab (the pending balance shown as wRST Pending or RST Pending) is your native balance before claiming. This tab holds more intrinsic value per unit than the token — it has not yet been reduced by a claim fee and can be spent directly on in-game cosmetics, boosts, and future unlocks without ever touching a wallet. Think of it as your in-game credit line backed by earned GP.
When you claim on ETH, wRST tokens represent a higher gross GP cost per token than RST on BTC — each wRST required ~125 GP gross to produce vs ~111 GP for RST. This makes the wRST grant contract harder to drain and gives wRST tokens a larger native GP footprint per unit.
/playclaimWithVoucher/playclaimWithServerSigThe grant pool is self-refueling — fees from every claim flow back in, sustaining the economy without deployer intervention.
RST balance gates access to the game world. World gating is enforced server-side via real-time balance checks. Players automatically unlock new areas as their RST grows — no manual action required.
| Phase | RST Required | World Access |
|---|---|---|
| Phase 1 — Misthalin | 0 RST | Starting area only |
| Phase 2 — Asgarnia | 1,000 RST | Falador, Port Sarim, Taverly, Burthorpe |
| Phase 3 — Full World | 10,000 RST or any sRST staked | All regions |
Players stake RST to earn rewards funded by the 5% staker fee on every player claim worldwide. In RST v15, staker rewards are distributed atomically on-chain inside every claimWithVoucher transaction — no server-side flush timer, no separate addRewards TX.
This means staking rewards work even if the server goes offline. They are a permanent on-chain primitive.
| Condition | Button |
|---|---|
| RST balance < 1,000 (Phase 1) | Hidden — earn more RST first |
| RST balance 1,000–9,999 (Phase 2) | Visible — ⚡ STAKE RST — UNLOCK FULL WORLD |
| RST balance ≥ 10,000 (Phase 3 by balance) | Visible — unlimited, no cap |
| Any sRST staked (Phase 3 by staking) | Hidden — replaced by ✅ STAKED badge + UNSTAKE button |
The stake button shows from Phase 2 onward with no upper cap. Staking 10+ RST unlocks Phase 3 for Phase 2 players. Phase 3 players can continue to stake any amount to compound rewards.
| Condition | Button |
|---|---|
| ETH wallet connected, swRST balance < 10 | Visible — ⚡ STAKE wRST → swRST (2.5×) |
| swRST balance ≥ 10 | Hidden — replaced by UNSTAKE button |
| BTC wallet connected | Not shown — ETH wallet required for swRST |
ETH staking has no world-gating connection. It is an independent yield product for wRST holders on Ethereum.
sRST staking requires 5 cold-wallet admin transactions post-deploy, each confirmed before the next:
| # | Action | Effect |
|---|---|---|
| 1 | setMinter | Authorizes hot wallet to sign claims |
| 2 | setMinterTweakedKey | Enables claimWithVoucher verification |
| 3 | setMinterMLDSAKey | Stores 1312-byte MLDSA key on-chain (41 storage slots) |
| 4 | setGrantPoolAddress | Points grant pool to RST contract pubkey |
| 5 | setStakingContract | Wires RST v15 → sRST V9 so notifyReward fires on every claim |
At character creation, players permanently choose a difficulty mode that multiplies all RST earnings for that character. This choice cannot be changed.
| Mode | RST Multiplier | Play Style |
|---|---|---|
| Hardcore | 5× | Maximum risk/reward |
| Normal | 2× | Standard |
| Easy | 1.5× | Casual |
Hardcore players earn significantly more RST but face higher death risk, harder content, and greater danger from the Orange Pill world event.
Every 8 hours, a powerful creature called the Orange Pill spawns in the world. It roams, attacks players on sight, and cannot be soloed at typical levels. The community must band together to kill it.
A dedicated spend page lets players use RST/wRST to unlock in-game features. Spent tokens re-enter the grant pool — recirculating supply, not burning it. The economy is designed to be perpetual.
| Feature | Price |
|---|---|
| Boat to Karamja (roundtrip) | 30,000 RST |
| Makeover Mage (character customization) | 500 RST |
| Future: premium areas, cosmetics, services | TBD |
$GP is an experimental side-chain token concept. Think of it as a second layer of in-game economy — a separate OPNet OP20 that may be deployed alongside RST if the demand warrants it. No commitment to a timeline or deployment.
| RST | $GP | |
|---|---|---|
| Supply | Fixed (1B, decaying via burn) | Infinite |
| Earned by | XP / gameplay effort | Spending in-game GP |
| Value role | Scarcity + access layer | Activity + participation layer |
| Long-term | Emissions slow, burn accelerates | Earnable forever |
$GP is earned by spending in-game gold pieces (shop purchases, travel, construction fees) — not by earning them. It is proof of economic participation, not proof of effort.
RST holders earn more $GP than non-holders because they can access more of the game. When RST emissions eventually approach zero, $GP keeps the game economy incentivized forever.
Seasons 2 and beyond are future development and will only proceed if the community votes to activate them. Season 1 is the current live state.
| Season | State | Description |
|---|---|---|
| Season 1 | LIVE | Admin runs the server and moderates manually |
| Season 2 | FUTURE | Merlin moderates autonomously via Claude Haiku — bans, blacklists, chat moderation. All actions logged and human-reversible. Requires community vote. |
| Season 3 | FUTURE | Merlin generates his own wallet. Community donates BTC to Merlin's Treasury. Merlin pays his own VPS + API costs. No human in the loop. Requires community vote. |
After Merlin dies, a 3-of-5 multisig DAO of community-elected keyholders calls setMinter on the RST contract, pointing it to a new community-hosted server.
| RST Balance | Bot Access |
|---|---|
| 0 RST | No bot access |
| 1,000 RST | Basic scripts (woodcut, mine, fish) |
| 10,000 RST | Full scripts + combat |
| 50,000 RST | Multi-account / faster tick tolerance |
| Chain | Token | Status | Exchange |
|---|---|---|---|
| Bitcoin L1 (OPNet) | RST (OP20) | LIVE | MotoSwap NativeSwap |
| Ethereum | wRST (ERC-20) | LIVE on testnet | Uniswap V2/V3 |
| Solana | wRST (SPL) | FUTURE | Raydium / Jupiter |
Each chain uses the same server-signed claim pattern. The server key is the trust anchor on every chain. No traditional bridge infrastructure needed — the server already IS the trust layer that players accept by playing on it.
// wRST.sol (core pattern)
function claimWithServerSig(uint256 amount, bytes32 nonce, bytes calldata sig) external {
require(!usedNonces[nonce], "already claimed");
bytes32 hash = keccak256(abi.encodePacked(msg.sender, amount, nonce, block.chainid));
bytes32 ethHash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
require(recover(ethHash, sig) == serverSigner, "bad sig");
usedNonces[nonce] = true;
_mint(msg.sender, amount);
}
The long-term price anchor between BTC L1 and ETH is sBTC (Slohm BTC — a reserve token on BTC L1 built using OPNet smart contracts, paired on both BTC L1 and Ethereum):
BTC L1 MotoSwap: RST / BTC ← RST priced in BTC ETH Uniswap: wRST / sBTC ← wRST priced in BTC (same unit) → sBTC is the balancer. One price. Two chains. Auto-synced by arbs.
Until the sBTC ETH pool is live: wRST/USDC is the initial ETH pool — functional, just floats independently vs. BTC price.
| Chain | Pool | Purpose |
|---|---|---|
| BTC L1 | RST/BTC (NativeSwap) | Bitcoin-native exit |
| Ethereum | wRST/sBTC | Cross-chain anchor — THE balancer (long-term/TBD) |
| Ethereum | wRST/USDC | Stable exit, retail friendly |
| Solana | wRST/USDC | Mobile/retail exit |
| Metric | Testnet | Mainnet |
|---|---|---|
| RST Total Supply | 1,000,000 | 1,000,000,000 |
| LP Allocation | 500,000 | 500,000,000 |
| └ wRST Backing Burn (from LP) | (80,000) | (80,000,000) |
| └ Team LP Share (from LP) | TBD | |
| Claim Pool | 500,000 | 500,000,000 |
| Transfer Burn | 1% per transfer (post LP) | |
| Conversion Fee (earn time) | 10% → grant pool + staker pool | |
| Claim Fee (BTC) | None — 90% of tab minted to player | |
| sRST Staking Reward | 5% of every global RST claim, distributed on-chain atomically | |
| Emission | Demand-driven — pool shrinks as players earn | |
| Team / VC / Pre-mine | LP share only — no separate mint | |
| Metric | Testnet | Mainnet |
|---|---|---|
| wRST Total Supply | 80,000 | 80,000,000 |
| LP Allocation | 40,000 | 40,000,000 |
| Claim Pool | 40,000 | 40,000,000 |
| Conversion Fee (earn time) | 10% (same as BTC) | |
| Claim Fee (ETH) | +10% at claim → ~20% total | |
| GP cost per 1 wRST | ~125 GP gross — higher floor value per token than RST | |
| swRST In-game Multiplier | 2.5× RST earn rate while staked | |
| swRST Reward Source | 5% of ETH-side claim fees → swRST contract | |
| swRST Lock | 60 days — 10% early exit, 1% after | |
| Team / VC / Pre-mine | LP share only — no separate mint | |
Claim pools are fixed at deploy. As players earn they shrink. The 1% burn applies to every RST transfer. Early players earn more (larger pool, lower price). Later players earn less per GP but at higher market price. Emissions naturally slow as pools decrease — mirroring Bitcoin's supply curve at the application layer.
To be updated on mainnet launch day.