Resources
Wood, food, and the on-chain resources your village holds — how they work as tokens and what "soulbound" means.
Your village's resources — wood and food — are real on-chain tokens. They live in a single
ERC-1155 contract, WatchfireResources, where each resource is its own token id (wood is 0, food
is 1). Everything in the game that moves a resource — chopping, gathering, stoking, raiding —
moves the matching token on-chain.
Soulbound by default
Wood and food are soulbound: they belong to your village and cannot be transferred or sold. They can still be raided — a neighbor who beats your defense takes a cut — but they never leave the game to a marketplace. This keeps the core loop (gather, build, defend) about playing, not trading.
Soulbound is set per resource, not baked into the contract. That leaves room for future resources that behave differently: a resource could be minted as tradeable, so it can move between wallets or list on a marketplace, while wood and food stay locked to your village.
Built to grow
The game refers to every resource by its token id, end to end — the contracts, the activity feed, and your village screen all speak in ids and resolve the name and art at the edge. Adding a new resource is a single registry entry plus its metadata; the rest of the system recognizes it with no other changes. If your client is ever ahead of a freshly-added resource it doesn't know yet, it shows it as "Unknown Resource" rather than hiding it.
Metadata
Each resource publishes standard ERC-1155 metadata (name, description, image) at
watchfire.one/resources/{id}.json, so wallets and explorers can display it like any other token.