Wolfage is a free-to-play, off-chain pet game on WolfSwap. Hatch a pup bound to your Wolfie NFT, train it, equip it, and fight other pups in a seasonal arena. The game runs entirely off-chain — no gas fees, no transactions, no smart-contract risk. Your Wolfie NFT stays in your wallet; the pup is just gameplay state on WolfSwap's servers.
This guide covers everything: hatching, stats, XP, training, food, arena combat, gear, the shop, seasons, and the full economy.
TL;DR — Hatch a pup → train it once an hour to level up → equip gear that drops in training → feed it daily so it doesn't starve → climb the arena leaderboard → collect season prizes.
To play, you need to hatch a pup against a Wolfie NFT you own. Hatching:
hatchCostDexPoints (default: free).chain:collection:tokenId.A pup is bound to its Wolfie NFT — if you sell or transfer the Wolfie, the pup transfers with it. The new owner sees the pup automatically in their picker (no re-hatching needed).
Default cap is 1 pup per account, configurable by admins. The cap is enforced only at hatch time — buying an already-hatched Wolfie on the secondary market doesn't re-check the cap, so the buyer always gets to play their bought pup.
Every pup has 6 stats, all visible on the Overview tab:
| Stat | Base → Each Point | What It Does |
|---|---|---|
| HP (Hit Points) | 50 → +5 per point | Total health pool in arena fights |
| Power | 10 → +1 per point | Damage dealt per strike |
| Defense | 10 → +1 per point | Reduces incoming damage; chance to block |
| Speed | 10 → +1 per point | First-strike priority + dodge chance + extra strikes |
| Crit Chance | 5% → +1% per point | % chance per strike to deal double damage (capped at 50%) |
| Stamina Cap | 10 → +1 per point | Max stamina pool size |
Damage formula: power − floor(defense / 2) per strike (with ±10% variance).
You get 5 skill points per level. Spend them on whichever stats fit your playstyle. The Allocate dialog lets you preview the changes before confirming.
Got a build wrong? Buy a Respec Scroll in the shop (500 Bones) to refund every spent point. You can re-allocate freely afterwards.
Cumulative XP needed for level L:
xpForLevel(L) = floor(50 × L^1.95)
This means:
Once at L100, the pup is maxed. XP grants stop, but all other rewards still flow (Bones, items, potions). Stage badges: Pup (L1–4), Young (L5–14), Adult (L15–29), Alpha (L30+).
Every pup has a rolling 24h XP ceiling, configurable by admins (default 2,160 XP/day). The cap blocks XP-only — Bones, drops, item rewards still apply. Resets continuously, not at midnight UTC.
The cap is tuned so perfect daily play hits L100 in roughly 6 months.
| Source | XP per action | Notes |
|---|---|---|
| Training (1h) | 25 × roll × locationMul × collectionMul | Roll: 0.8–1.3. Independent of stats — same XP at L1 and L99. |
| Arena win | 60 × roll × ratingMul | Roll: 0.85–1.15. Rating multiplier ranges 0.5× (much weaker opponent) to 1.5× (much stronger). |
| Arena loss | 60 × roll × consolation | Consolation 0–0.4× depending on rating gap. No Bones on losses. |
| Pet (1× per UTC day) | 10 | Free, no cost. |
| Daily Login | 5 + 25 Bones | Awarded on first action of a new UTC day. |
Stamina gates training and arena attacks.
| Item | Effect | Price (Bones) |
|---|---|---|
| Stamina Potion | +5 stamina (clamped to cap) | 50 |
| Large Stamina Potion | Refills to full cap | 200 |
| Speed-up Potion | Instantly completes 1 training slot | 100 |
Drops: every training has a 5% chance (forest) of dropping a potion. The drop pool is weighted 80% Stamina Potion, 20% Speed-up.
Training is the core grind. Each slot runs for 1 hour, costs 1 stamina, and pays out XP, Bones, and a chance at potion + item drops.
Default cap is 3 concurrent slots per pup (admin-configurable). The slot grid resizes to match the cap. Lowering the cap doesn't cancel in-flight trainings — they finish on schedule and stay collectable, but you can't start new ones until you drop back below the cap.
Each slot picks a location that skews the reward profile:
| Location | XP | Bones | Potion drop chance |
|---|---|---|---|
| Forest | 1.0× | 1.0× | 5% |
| Arena | 1.4× | 0.5× | 3% |
| Den | 0.7× | 0.7× | 12% |
Forest is the default, balanced choice. Arena maximizes XP. Den maximizes potion drops.
Independent rolls, stack on top of potion drops:
A single training can drop at most one item (rare wins over uncommon). The drop pool is the live catalog of dropOnly items.
Some special "training collections" (other NFT collections WolfSwap partners with) have an XP multiplier that stacks with location. Available collections show a per-token cooldown so you can't farm the same Wolfie endlessly.
Pups need to eat. If you stop feeding, they starve, then they die.
Sold in the shop, stored in inventory, applied via the Feed action:
| Food | Fed buff duration | Price (Bones) |
|---|---|---|
| Kibble Bits | 4h | 1 |
| Meat Stew | 12h | 5 |
| Royal Feast | 24h | 10 |
While Fed, your pup has +10% HP and +10% Power in arena fights. Feeding stamps lastFedAt = now, resetting any starvation debuff.
Always-available Free Feed action — no inventory cost, 12h cooldown. It resets lastFedAt so your pup doesn't starve, but it does not apply the +10% Fed buff (only paid food sets feedExpiresAt). Free Feed exists so a player who's broke or AFK can keep their pup alive.
If lastFedAt is more than 24h ago, every passing day adds a 10% debuff to every combat stat (HP, Power, Defense, Speed, Crit) — capped at 90% just before death. The debuff is shown as a "Starving −X%" pill on the Overview tab.
Stamina is never debuffed by starvation — so a starving player can always Free Feed.
After 240h (10 days) without feeding, the pup dies. Every action except revive is blocked: no training, no arena, no shop, no allocations, no presets, nothing. The pup's combat stats are pinned at the 90% debuff visually but it doesn't matter — it can't fight anyway.
Two paths out:
ceil(reviveCostKibble / kibblePerShard) Shards (~100 Shards at default rate). When your balance is short the death banner swaps the CTA for Get Shards, which opens the Convert / Exchange / Buy card without leaving the page.Either way, the starvation timer resets (lastFedAt = now) so the pup walks out alive with a fresh 24h grace window.
Click the pencil icon next to your pup's name on the Overview tab. Costs 100 Shards by default (admin-tunable via nameChangeCostShardsOverride). Same rules as hatching: 1–20 characters, letters / numbers / spaces only, profanity blocklist. Saving the same name (post-trim) is a no-op and doesn't charge. If your Shards balance is short, the Save button flips to Get Shards so you can top up without leaving the dialog.
Bones is the in-game currency. Per-pup (not per-account).
| Source | Bones |
|---|---|
| Training (forest, per slot) | 5–15 |
| Training (arena, per slot) | ~3–8 |
| Training (den, per slot) | ~4–11 |
| Arena win | 5–15 × CR multiplier |
| Daily login | 25 |
| Season-end prizes | 50 / 250 / 1000 / 2500 (see Seasons) |
If you've traded on WolfSwap, you've earned DEX points. The shop has an exchange to convert them into Bones at a configurable rate (default: 50 DEX points per 1 Bone), with a per-pup daily cap (default: 5,000 DEX pts/day) so it can't be abused.
Don't want an item? Disenchant it from the shop for 50% of its base price in Bones. Useful for burning duplicates or unwanted drops.
Items are gear you equip on your pup to boost combat stats. They drop from training (rare/uncommon) or are bought / awarded.
ring)rusty → common → uncommon → rare → epic → legendary → set
Higher tiers have larger stat bonuses. Set items belong to a named set and unlock additional bonuses when worn together (e.g. 2-piece, 4-piece, full-set bonuses).
Each equipped item adds flat stat bonuses (HP / Power / Defense / Speed / Crit) and may also carry special effects on the Weapon/Shield slots:
Some items are admin-flagged with a minimum pup level. Buying is always allowed — you can stock up on gear before you've leveled into it — but the equip action is gated. Items below your level show a yellow "Lv X" pill; items at or above your level show a neutral pill. The picker dialog disables the Equip button on locked items and explains why.
When unset, an item has no level requirement (minLevel defaults to 0).
Admins can flag any item as hidden. Hidden items are stripped at the catalog endpoint, so the frontend never sees them — they disappear from the shop, the training drop pool, the inventory panel, and the equipment picker in one go. They also stop contributing stats / effects in fights even if previously equipped: combat-stat derivation does its catalog lookup on the same filtered map, so a slot pointing at a hidden item resolves to nothing.
Set views still list the piece (so the set composition stays intact) but show "unavailable" instead of a buy button until the item is unhidden. Use this when you want to retire a piece of gear without leaving its stats live in the wild.
Every equipped item has durability that ticks down as you fight. Defending doesn't wear gear — only attacks roll for damage.
| Tier | Max durability |
|---|---|
| Rusty | 20 |
| Common | 25 |
| Uncommon | 30 |
| Rare | 40 |
| Epic | 50 |
| Legendary | 60 |
| Set | 50 |
Average item lifespan at full gear is around 150 attacks per item — casual players barely notice, daily grinders burn through gear in roughly a week per piece.
When durability hits 0, the item is broken:
Tap the small wrench icon on a damaged equipment slot (paper-doll or list view) to repair it back to full durability.
(max − current) × 5 Bones per missing point (admin-tunable).Save up to 5 named loadouts ("Glass Cannon", "Tank", "Crit Build", etc.) and swap between them with one click. Presets reference items by id, so swapping doesn't require unequip/re-equip clicks.
Note: every owned copy of an item tracks its own durability. Unequipping a damaged item leaves it on the shelf at its current condition — re-equipping it later picks up exactly where it was. The inventory shows one row per copy so you can pick the freshest one when equipping (and disenchant the worst one when clearing junk).
The shop has tabs for each item category:
Buff potions stack with the Fed buff (multiplicative). Drinking a second buff while one is active just resets the timer — it doesn't stack the bonus.
The shop's Extras tab holds QoL services priced in Shards. Today there's one entry; more will land here as the game grows.
Vacation insurance. Buying it sets a shield that lasts 7 days + 12h from purchase, during which:
Buying again while still active stacks — the new expiry is (current shield end) + 7d12h, not (now) + 7d12h. Top up before a long trip.
When the shield ends, the pup gets a fresh 24h grace before the starvation debuff kicks in (no "snap to tier-7 starving" cliff).
The summary bar shows an Auto-fed chip with "shield ends in X" while it's active.
You can send Shards from your pup to any other pup. The entry point is the Send gift button in the shop's left rail, just below the Shards balance pill.
Both sides see the gift in their activity feed: shards_gift_sent on the sender, shards_gift_received on the recipient. Either row carries the counterparty's pupId and name so the feed is self-contained.
Notes:
The arena is where pups fight other players' pups for rating, XP, and Bones.
You can attack the same opponent at most once per hour (ATTACK_COOLDOWN_MS = 1h). You can't attack yourself, dead pups, or anyone outside ±200 rating from you.
The Quick Fight button at the top of the Arena tab finds an opponent for you and runs the standard attack against them. Same 2-stamina cost, same per-defender 1-hour cooldown — it's a shortcut, not a power boost.
Matchmaking rules (server-side):
(power − floor(defense / 2)) × variance, where variance is ±10%.The rating multiplier rewards punching up (1.5× for upsets) and softens losses (0.4× consolation when you punched up and lost).
Level-gap penalty. Picking on much lower-level pups pays out less. For each 2 levels the attacker is above the defender, all rewards (XP + Bones, win or loss) take a flat −10%, capped at −50%. Punching up (attacking higher-level pups) is unaffected.
| Attacker − Defender | Multiplier |
|---|---|
| 0–1 lvl | ×1.00 |
| 2–3 lvl | ×0.90 |
| 4–5 lvl | ×0.80 |
| 6–7 lvl | ×0.70 |
| 8–9 lvl | ×0.60 |
| 10+ lvl | ×0.50 |
Starts at 1000. Floor is 500 (you can't drop below). Rating resets every season.
Rating changes use a standard Elo formula with K-factor 24:
expectedAttacker = 1 / (1 + 10^((defenderRating − attackerRating) / 400))
attackerDelta = round(24 × (score − expectedAttacker)) // score = 1 if won, 0 if lost
defenderDelta = −attackerDelta
The bigger the gap, the smaller the underdog's loss (and the larger their win) — so punching way above your weight is genuinely cheap to try. Sample swings:
| Attacker | Defender | If wins | If loses |
|---|---|---|---|
| 1000 | 1000 | +12 | −12 |
| 1000 | 1200 | +18 | −6 |
| 1200 | 1000 | +6 | −18 |
| 810 | 1320 | +23 | −1 |
| 1500 | 800 | +1 | −23 |
Follow up to 50 pups to track them in your Rivals list. Useful for grudge matches, watching strong opponents, or just keeping tabs on friends. Following doesn't notify the other player.
If a followed pup is reset and re-hatched, the follow stays attached to the same Wolfie NFT — when the new pup hatches, your Rivals list shows it again. If they're reset and not re-hatched, the row appears in a "Pup deleted" section so you can unfollow.
The arena runs in seasons. Each season has its own leaderboard, rating reset, and prize payout. Admins advance seasons manually (no auto-timer) so prize pools and timing stay aligned with WolfSwap events.
When a season advances, every leaderboard row gets finalized in place with a final rank, prize Bones, and badge:
| Rank | Bones | Badge |
|---|---|---|
| #1 Champion | 2,500 | champion |
| #2–10 | 1,000 | top10 |
| #11–100 | 250 | top100 |
| #101+ | 50 | — |
The leaderboard then resets — fresh ratings of 1000 across the board, fresh win/loss records. Past seasons stay readable: a dropdown on the Leaderboard lets you browse historical results, and the preview dialog shows a "Past season" badge with the prize earned.
A "perfect-play" day looks roughly like:
If you want to start over (rebuild your pup from scratch), the Reset action wipes everything tied to the pup:
After reset, you can hatch a fresh pup on the same Wolfie or a different one. The pup-cap check passes because the pup doc is gone.
Reset is irreversible. There's a confirmation dialog asking you to type the pup's name to continue.
Got more questions? Drop them in the WolfSwap Discord or reach out on X. Common ones are answered in the FAQ at the top of this page.