1000 minted on demand · ERC-721 ·

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.

1000Anglers
13Layers
Trait options

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.

Rarest at the bottom
common uncommon rare epic legendary

How it works

Four steps, no waiting room. The wallet is the only account you need.

copy share link
01

Connect

Any EIP-1193 wallet on the network. Connecting only reads an address — it signs nothing and spends nothing.

02

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.

03

Mint

One transaction, paid in ETH plus gas. The token lands in your wallet immediately, with no reveal delay.

04

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.

back to the four steps

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.

Background 12Aura 4 Back Gear 5Pants 6 Outfit 10Skin 6 Eyes 8Mouth 6 Hair 7Neckwear 7 Headwear 12Tool 9 Companion 8

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.