How Territoria Works
A complete technical and gameplay reference. Everything described here is enforced by the smart contracts — not by us.
Overview
Territoria is a fully on-chain territory-conquest game on Robinhood Chain. The world map has 180 real countries, each one a claimable territory. Players lock $TORIA tokens to plant a flag on a country, defend it during a protection window, and can lose it to anyone willing to pay the steal price — or burn their way in early.
There is no backend server and no database. Every balance, every territory's owner, every steal, and every reward is stored and computed entirely by the smart contracts. This site is a static frontend that reads and writes directly to those contracts.
Getting Started
- Install a wallet extension (MetaMask or any injected EVM wallet).
- Click Connect Wallet — the site will prompt you to add/switch to Robinhood Chain automatically if you're on the wrong network.
- Make sure your wallet has ETH on Robinhood Chain — bridge it in via the official Robinhood Chain bridging guide, or buy directly if your exchange supports it.
- Buy $TORIA from the Buy/Sell panel on the homepage, or from the navbar's Buy / Sell shortcut.
- Tap any unclaimed ("No Man's Land") country on the map to plant your flag.
The Bonding Curve
$TORIA isn't pre-priced — it trades against a quadratic bonding curve held by the BondingCurve contract. The price per token rises as more tokens are bought (and falls as tokens are sold back), following:
price(x) = basePrice + curveSlopeK × x² / 1e18
where x is the number of tokens sold so far. Early buyers get a much lower price than latecomers, since the curve starts near zero and rises quadratically.
Buying
Send ETH to buy() and receive $TORIA immediately, priced along the curve at that moment.
Selling
Send $TORIA to sell() (after approving the contract) and receive ETH back — the exact symmetric inverse of buying, with no fee. You can sell anytime before graduation.
Graduation
Once the curve collects a fixed ETH threshold (visible live in the "Graduation Progress" bar on the homepage), it graduates: buy() and sell() both stop working, 10% of the collected ETH goes to the Treasury, and the rest is set aside for a future Uniswap V4 liquidity pool (see Risks & Limitations — this part isn't live yet).
Claiming a Territory
Any country showing "No Man's Land" can be claimed by anyone. Claiming requires:
- A minimum of 500 $TORIA locked into the territory (you choose to lock more if you want a stronger claim — see Stealing).
- A fixed, one-time ETH fee, paid directly to the Treasury the moment you claim.
Your locked $TORIA isn't spent — it stays escrowed in the contract for as long as you hold the territory, and comes back into play (to whoever claims/steals it next) when ownership changes.
Protection Window
The moment you claim or successfully steal a territory, it enters a 6-hour protection window that decays in four tiers:
| Time held | Override cost (% of steal price) |
|---|---|
| 0 – 1.5h | 40% |
| 1.5 – 3h | 30% |
| 3 – 4.5h | 20% |
| 4.5 – 6h | 10% |
| After 6h | No protection — steal directly |
During the window, anyone attempting to steal must first call overrideBurn() and pay that tier's percentage of the current steal price in $TORIA. This $TORIA is burned and distributed — see the split below.
Stealing
Once protection has expired (or been paid off via override), anyone can call stealTerritory(). The cost is 1.5× the current locked amount, paid in $TORIA:
- 70% is refunded to the previous owner.
- 30% goes to the Treasury.
Rapid-Steal Multiplier
If the same territory is stolen again within 1 hour of the last steal, the multiplier climbs by +10% per rapid steal, capping at 2.0×. This discourages wash-trading a territory back and forth between wallets to farm activity. The multiplier resets to the base 1.5× once an hour passes without a steal.
Every ownership change (claim or steal) resets the 6-hour protection window for the new owner, and clears any customization (empire name, color, logo) the previous owner had set.
Staking & Rewards
Locking $TORIA into a territory is also a stake. Every time someone pays an override-burn fee (see Protection Window), that burned $TORIA splits three ways:
| Share | Destination |
|---|---|
| 50% | Burned permanently (deflationary) |
| 40% | Rewards Pool — shared by every current territory holder, weighted by locked amount |
| 10% | Treasury |
You don't need to do anything to start earning — simply holding a territory makes you eligible for a share of every override-burn happening anywhere on the map. Open your own territory's panel to see your accrued rewards and claim them.
Customization
Every territory owner can set (and update anytime) three things, saved directly on-chain:
- Empire Name — up to 32 characters, shown on hover and in your territory panel.
- Color — tints your territory on the map.
- Logo URL — a link to an image (max 200 characters). We don't store the image itself on-chain (too expensive) — just the link, the same pattern NFT metadata uses. Your logo appears both on the map (small badge over your territory) and in the hover tooltip.
All customization is wiped when a territory changes hands — the new owner starts with a blank flag.
Tokenomics
| Parameter | Value |
|---|---|
| Max supply | 1,000,000,000 $TORIA (fixed, only decreases via burns) |
| Bonding curve allocation | 950,000,000 (95%) |
| Treasury allocation | 50,000,000 (5%), no vesting |
| Steal fee split | 70% previous owner / 30% Treasury |
| Override-burn split | 50% burned / 40% Rewards Pool / 10% Treasury |
| Rapid-steal multiplier | 1.5× base, +10% per rapid steal, 2.0× cap, 1h cooldown |
| Protection window | 6 hours, 4 decaying tiers |
| Sell fee (curve phase) | 0% — fully symmetric with buying |
| Sell fee (post-graduation, planned) | 3%, via a Uniswap V4 hook — not live yet |
Contract Addresses
Not published yet. Contracts are currently deployed and tested on a private testnet during development — addresses will be published here once the mainnet deployment goes live.
Status & Roadmap
| Component | State |
|---|---|
| Core contracts (7) | Live on testnet |
| Bonding curve buy/sell | Live on testnet |
| Claim / protect / steal | Live on testnet |
| Staking rewards | Live on testnet |
| Uniswap V4 graduation | Tested live, real pool created |
| Mainnet deployment | In preparation |
| Sell-fee hook (post-graduation) | Not yet built |
| External security audit | Not yet commissioned |
Risks & Limitations
- Not deployed on mainnet yet. Everything above has been tested extensively on testnet and, in the case of Uniswap V4 graduation, verified live against real deployed infrastructure — but no contract discussed here currently holds real value.
- Sell-fee hook not yet live. A planned 3% post-graduation sell fee via a Uniswap V4 hook has not been built yet.
- Price approximation. Buy/sell pricing uses a numerical approximation (see The Bonding Curve), not an exact closed-form integral. The error margin is small (~0.25%) but non-zero.
- Not audited. These contracts have a full automated test suite but have not been through an external security audit. Trade and stake at your own risk.
FAQ
Do I need to do anything to earn staking rewards?
No — just hold a territory. Rewards accrue automatically from override-burns happening anywhere on the map, proportional to your locked amount.
What happens to my $TORIA if I lose a territory?
If you're stolen from, you receive 70% of the steal price paid by the attacker, refunded directly to your wallet in the same transaction.
Can I hold more than one territory?
Yes — there's no limit. Your total holdings across all territories determine your rank on the "Top Holders" leaderboard.
Why does the map show real countries instead of made-up regions?
It's more fun to fight over Brazil than "Region 47." All 180 countries and their claim states are pulled live from the contracts — nothing on the map is decorative or fake.
Where can I see the source code?
Contract addresses and a block explorer link will be published here once the mainnet deployment is live.
TERRITORIA DOCS