1000 voxel anglers
A dozen of them, reshuffling as you watch. Every one is the game's hero re-rolled across 13 layers.
Reel Fortune
Anglers
The hero of Reel Fortune, a thousand times over — hats, gear, skins, companions and skies from four islands, composited into one-of-a-kind pixel anglers. Pick a quantity, mint, and it's yours to keep or trade.
Your anglers
Everything this wallet holds, straight from the contract.
Traits & rarity
Thirteen layers, each rolled with its own weights. Bars are relative to the commonest option in that layer; the colour is the rarity tier.
How it works
Four steps, no waiting room. The wallet is the only account you need.
Connect
Any EIP-1193 wallet on the network. Connecting only reads an address — it signs nothing and spends nothing.
Pick a quantity
Ids are handed out in order as they are minted. Which angler you get is whatever that id already is — nothing is rerolled afterwards.
Mint
One transaction, paid in ETH plus gas. The token lands in your wallet immediately, with no reveal delay.
Wear it in game
Sign in to Reel Fortune with the same wallet and your angler becomes your character. The server checks ownership on chain, so it is genuinely yours.
Documentation
The long answers. Every number here is read off the contract and the collection files, not written by hand.
What an Angler is
A cosmetic collectible, and nothing else.
Every Angler is the hero of Reel Fortune re-rolled across thirteen drawn layers — a different island behind them, a different hat, tool, outfit and companion. The art is generated once, stored as a flat PNG, and never changes after minting.
It gives you no advantage in the game. It does not raise your odds, your prices, your yields or your luck. The game's economy has no idea the collection exists — an Angler cannot be won by a catch, a spin, a dig or a drop, and nothing you own changes a single roll. It is bought at the dock and worn, the way a hat is worn.
The numbers
All of it fixed in the contract at deploy time.
- Collection
- Reel Fortune Anglers (RFA)
- Standard
- ERC-721 + ERC-2981
- Supply
- 1,000 — a hard cap, never raisable
- Price
- —
- Per wallet
- —
- Minted so far
- —
- Royalty
- 5% (500 bps), signalled by ERC-2981
- Reveal delay
- none — the token is its art the moment it lands
Ids are handed out in order. Which Angler you get is whichever one that id already is; nothing is shuffled or rerolled after the fact, and every image in the gallery above is on this page before anybody has bought it.
The contract
Dependency-free, and short enough to read in one sitting.
- Address
- —
- Network
- —
- Explorer
- —
The only payable function is mint(uint256 quantity). It
checks that the sale is open, that the quantity is sane, that the supply and your wallet cap
both have room, and that the value sent is exactly price × quantity — then it mints, and
touches nothing else. Everything the owner can change is a named function
(setSaleActive, setMintPrice, setMaxPerWallet,
setBaseURI, setRoyalty) and none of them can mint to you, take from
you, or move a token you hold.
When a mint is refused, the reason comes back as a named error rather than a bare revert:
SaleNotActive, InvalidQuantity, SoldOut,
WalletLimit, WrongPayment. This page turns each of those into a
sentence instead of a hex string.
Getting on the network
If your wallet has never seen this chain, the Connect button offers to add it. These are the same values, in case you would rather type them yourself.
- Chain name
- —
- Chain id
- —
- Currency
- —
- RPC
- —
This page only ever reads through that RPC — the supply counter, the price, your balance. The mint transaction itself is built and signed by your wallet, through whatever endpoint your wallet is configured to use.
Traits & rarity
Thirteen layers, one hundred options between them.
Those multiply out to 175,575,859,200 possible anglers. One thousand were rolled, each checked unique against every one before it. Rarity is not a grade anybody assigned — it is simply how often a trait was drawn, and the traits panel above counts it straight out of the minted thousand.
An Angler with rare traits is not worth more in the game, because the game does not read traits at all. What it is, is rarer.
Metadata & art
Plain files on this domain, served as-is.
Every token's tokenURI(id) resolves to a JSON file with the shape below. Both the
JSON and the PNG it points at are static — no gateway, no indexer, no marketplace in the loop.
GET /nft/json/1.json
{
"name": "Reel Fortune Angler #1",
"description": "…",
"image": "https://reelfortune.xyz/nft/images/1.png",
"dna": "1c9dca47f6b26e81fed34f93338afde0b009dd9e",
"edition": 1,
"attributes": [ { "trait_type": "Background", "value": "…" }, … ]
}
Images are 1024×1024 PNGs with a transparent-composited voxel render. dna is
the hash of the trait combination that produced the edition, which is what made the uniqueness
check possible while the collection was being rolled.
Wearing it in the game
Optional, cosmetic, and checked on chain.
Sign in to Reel Fortune with the same wallet and your Angler becomes your character on the isle. The server reads ownership from the chain rather than trusting the browser, so an Angler you do not hold cannot be worn — and one you sell stops being yours the moment it moves.
The wallet sign-in is an identity only. It signs a plain-text message to prove an address is yours. No transaction is built, no funds are touched, and nothing about your balance is read.
What this page will never do
Worth knowing, so anything that does it is a fake.
It will never ask for your seed phrase or private key. It will never ask you to approve a
token, sign a blank message, or grant an allowance. The only transaction it will ever build is
a mint for a quantity you picked, at a price shown before you press the button.
There is no allowlist, no presale, no Discord role, no airdrop, and no marketplace link. If you are reading otherwise anywhere, it did not come from here. The only address that matters is the one printed in this page's footer.
When something goes wrong
The five refusals that actually happen.
The button says the sale is not open
Either the contract's saleActive is false, or this site's own
switch is off. The second one is a server setting and closes the buy path while leaving the
gallery, the traits and this documentation up. Nothing is for sale in that state, and no
transaction can be built.
My wallet is on the wrong network
Connect will offer to switch, and to add the chain if your wallet has never seen it. If the prompt does not appear, add it by hand from the values in Getting on the network above, then reconnect.
The transaction was rejected or reverted
A rejection is you declining in the wallet — nothing was sent and nothing was spent. A revert means the contract refused, and the page will name which of the five errors it was. The most common is simply not having enough for price plus gas.
I hit the per-wallet limit
The cap is counted per address across every mint that address has ever made, not per transaction. It cannot be reset by minting from a second wallet and moving them together afterwards — but that also means the cap only limits minting, never holding.
I minted but I cannot see it
Connect on this page and it appears under Your anglers, read straight from the contract. Wallets and explorers that index NFTs may take longer, and some do not index this chain at all — that has no bearing on whether the token is yours.