Docs

How the protocol is put together, in more detail than How it works needs to give. Anything not yet decided says so rather than being filled in.

Overview

Sponsor turns a collection of NFTs into a claim on real, tokenized stocks. You mint a pig with $SPONSOR. The protocol collects fees into a pool. At each round the pool buys stocks, and every pig receives a share of what was bought, sized by its own weight.

The pig is not a coupon you hand back for shares. It stays in your wallet and keeps receiving from every round that follows, for as long as you hold it — and if you sell it, the buyer receives from every round after that.

The pig

A pig is one NFT out of a planned 2,000. It is tied to exactly one stock, fixed at mint, and it carries one trait per category — backdrop, body material, outfit, companion, extra.

Those traits are what set its weight. The whole collection is generated in advance as a “deck” of 2,000 entries (stock + traits + weight), packed and committed on-chain with a hash before minting opens. Each reveal draws a uniformly random unassigned entry, so the split across the thirteen stocks is fixed in advance — 154 pigs each, 153 for the last two, because 2,000 does not divide evenly — and no one, not even the team, can steer which pig you get.

Minting and the burn

A mint is paid in $SPONSOR, and the tokens paid are burned rather than sent to a treasury: supply only ever falls, and no wallet accumulates tokens it could later sell into the market. Alongside them you send a small ETH reveal fee, which pays the randomness provider for drawing your pig. Paying for a mint in ETH is switched off.

One pig per mint. The artwork is not shown before the mint lands — the tile stays blank until the transaction confirms, then the pig is revealed with its traits.

Mint price
Set on the contract and shown live on the Mint page
Paid in
$SPONSOR, plus a small ETH reveal fee
Where fees go
Split on chain: 60% to the reward pool, 40% to the treasury
What happens to $SPONSOR
Burned in full
Per transaction
1 to 10 pigs
Supply
2,000 pigs across 13 stocks — 154 each (153 for the last two), guaranteed by the deck

The pool and rounds

Fees collected by the protocol accumulate in the pool. The pool is not distributed continuously; it is spent in rounds. When a round closes, the pool buys baskets of tokenized stocks of equal value, and those holdings are split across the pigs.

Equal value per basket is the point: a round does not favour the stock that happens to be cheapest at that moment. What differs between pigs is not which basket they get but how large a share of it their weight earns.

Every round is meant to be read straight off chain — the amount spent, what was bought, the transaction — which is what the Pool page is for.

Weights and distribution

Each trait is scored against the other traits in its own category, so a trait held by few pigs counts for more than a common one. A pig's trait scores add up to a single number: its weight.

Weight is the pig's share of every distribution. A pig holding twice the weight of another receives twice as much from the same round. Weight is fixed at mint and travels with the NFT, not with the wallet that minted it.

Set by
Trait rarity, scored per category over the full deck: weight = Σ 1 / p(trait) × 10
Fixed at
Reveal — it never changes
Applies to
Every distribution after the pig is revealed
Rarity shown
Immediately at reveal, since the deck is pre-computed

Staking

Staking locks a pig for a window you choose, between one and twenty-four hours. If the pig's stock rises over that window, the pig takes a bonus from the pool. If it does not, you lose nothing — there is no penalty and no slashing.

The one cost is liquidity: a staked pig cannot be sold until its window ends.

Window
1 to 24 hours, your choice
Prices
Start = oracle price when you stake; end = oracle price at the scheduled window end, not when you unstake
Upside
bonus = your share of the stock's reserve × min(gain, 5%)/5% × hours/24 × 50%
Reserve
20% of every stock delivery goes to that stock's bonus reserve
Downside
The pig is locked for the window: no sale, no transfer, and no bonus if the stock did not rise
Escape hatch
emergencyUnstake after the window needs no oracle and pays no bonus

Claiming and selling

What a pig has collected sits in the pool until you claim it. It does not expire and there is no deadline, so claiming is a question of when gas is cheap, not of when you might lose it.

You can claim every pig at once from My Pigs, or one at a time from its card. Selling is on the Market tab: name a price in ETH from the pig's card, and when someone pays it the pig moves to them and the ETH reaches you in the same transaction. Nothing is escrowed — the pig stays in your wallet, still earning, until it actually sells, and you can reprice or cancel for free. Pigs also sell on OpenSea like any other NFT. Either way the weight goes with the pig, and whoever holds it collects from the rounds that follow.

The $SPONSOR token

$SPONSOR is how a mint is paid, bought on ponsfamily. Because a mint burns what it is paid, the token's supply falls with every pig minted. The token path is switched on by the protocol owner once the token exists; until then minting is closed.

Holding $SPONSOR does not earn from rounds on its own — the pig is what receives.

Contracts and network

The app talks to the wallet directly over EIP-1193, discovering wallets through EIP-6963. There is no connector service and no project id: what your browser announces is what you can connect with.

When a wallet is on the wrong chain the app says so and offers a one-click switch. Every contract is a UUPS proxy owned by the protocol admin, with an emergency-withdraw so no asset can ever be stranded.

Network
Robinhood Chain (chain id 4663)
Collection (PigNFT)
0x8E59CD53E0638c18D3a9Ec83ff696ef8E3428707
Mint payment
$SPONSOR (burned), plus an ETH reveal fee
Reward pool
0xb95567F1Ac6DD98E92A35E465950365D01b959D8
Staking
0x3f90E074BD3CF49B2aD24d2889b7655F2F326FE8
Price oracle
0x583e3e971c0C023710a9BE463a009223D6DD32b7
Lens (reads)
0xD47eb7DF972Fc7407472874B617c9019328786A1
$SPONSOR
0xe3dfb88ea7a6508181202dbd6cbc023da702f63f

Open the collection on the explorer