The Puck is the membership card. $NET does the work.
Mint proceeds and secondary trading fees both end up in the same place: $NET, staked, in a pool that only ever grows. Here's the actual loop, in order. Each step's tag is the real math it runs, not a code reference.
Plug in a trading-fee scenario and see what actually reaches a holder, after the 2-of-3 pay pattern, split across every Puck that's minted. Every field is editable; nothing here is a promise.
Every field is editable. Plug in any trading-volume scenario you want to stress-test.
USDG is a real, live USD-pegged stablecoin (confirmed exchange rate 1.0, $3.3B+ circulating), so fees above are already dollars, no ETH-price conversion needed.
Assumes full mint-out (3,333). Now, what's yours?
≈ 0 $NET · 0 of 0 Pucks active · 0x what you sunk into them
What you sunk into your Pucks vs. what you'd actually take home vs. the 10 workers' combined donated total, at this scenario.
Why this is built the way it is, now that you've seen how it works.
Net Pucks plugs straight into $NET's own staking mechanics. No separate system, just participation at scale. The more this collection does, the more $NET grows. The more $NET grows, the more this collection is worth. Same direction, not opposite ones.
A free mint starts with nothing. The 0.003 $NET mint price funds the treasury and gets it staked and earning before a single secondary trade happens. That's the lowest entry into $NET we could set, and by the protocol's own mechanics it only moves up from here. We ran the numbers: see the real breakeven timeline →
At no time do you need to stake your NFT. Only $NET gets staked, in your own wallet. Your Puck never moves. List it, sell it, hold it, whenever. That's activation, not staking.
No trading fees. No new mints, ever again. Just $NET's own native staking yield, compounding on the $NET that's already locked in. Here's the real point where that alone crosses what a Puck cost, using only $NET's confirmed live rate, nothing projected.
Every Puck's own staked 0.003 $NET, compounding alone (no trading fees, no epoch payouts, nothing else counted) doubles fast enough to cover its full 0.006 $NET all-in cost in under two months. This is true for any Puck: one of the 10 project-owned workers, or the one an outside buyer minted.
There's a real, standard formula for this. It's just compound interest, solved for time instead of for final value:
Because the mint price and the stake are both exactly 0.003 $NET, the all-in cost is exactly double the staked amount, so this reduces to the plain "time to double your money" question, just solved with $NET's real rate instead of a guess: 0.003 × (1.0045)n ≥ 0.006.
| Epoch | Day | Staked value (per Puck) |
|---|---|---|
| 0 | 0 | 0.003000 $NET |
| 30 | 10 | 0.003433 $NET |
| 60 | 20 | 0.003928 $NET |
| 90 | 30 | 0.004494 $NET |
| 120 | 40 | 0.005142 $NET |
| 150 | 50 | 0.005883 $NET |
| 155 | 51.7 | 0.006017 $NET ← crosses the 0.006 all-in cost |
| 180 | 60 | 0.006731 $NET |
| 270 | 90 | 0.010083 $NET |
| 365 | 121.7 | 0.015447 $NET |
The 10 workers vs. the 1 outside buyer, concretely: both collect on the same 2-of-3 epoch pattern, and both stake the same 0.003 $NET per Puck, so this exact ~51.5-day timeline applies to each of them individually, whether it's one of the project's 10 or the outsider's 1. Scale doesn't change a percentage-based breakeven; 10 Pucks just means 10× the absolute $NET, on the same clock.
The 10 workers get one real edge on top of this, deliberately left out of the number above: their claimed share of Net Pucks' own epoch payouts (step 05 in the flywheel) auto-restakes instead of sitting idle, which can only pull their breakeven earlier, never later. It isn't included in the 51.5-day figure because its size depends on real trading volume and how many other Pucks are active at the time. Both are real variables, not something to fake a number around. The 51.5 days above is the honest floor: what compounding alone guarantees, with zero assumptions about anyone ever trading a Puck.
$NET's own site is explicit about this rate: "Distributions are algorithmic and may be zero." 0.450%/8h is real and live as of this writing, at what NetNet describes as its formula maximum, not a fixed promise going forward.
Eligibility isn't a snapshot taken once at the end of an epoch. It's tracked continuously, down to the exact second, and split at every real balance change. Selling, buying, or moving a Puck mid-epoch doesn't zero anyone out; it just divides that epoch's share between whoever actually held it, for exactly as long as they held it.
A concrete walk-through, using a full 8-hour epoch (28,800 seconds):
| Event | Seconds held | Share of that Puck's epoch |
|---|---|---|
| You hold it (staked and active) for the first 6 hours, then sell | 21,600 | 75% |
| Buyer holds it for the remaining 2 hours (and already has $NET staked) | 7,200 | 25% |
That second row only happens if the buyer is already staked. Holding the Puck alone isn't eligibility. It's min(staked units, Pucks held), same formula as always. A buyer who picks up a Puck with zero $NET staked earns nothing on it until they stake enough to activate it; that 2-hour slice doesn't get redirected to you as the seller either, it just goes unearned by anyone. The clock rewards being staked and holding, not one or the other.
Listing doesn't touch this at all. Listing a Puck on a marketplace is just an approval. Nothing leaves your wallet, so nothing changes for eligibility. It's only an actual transfer (a completed sale, or moving it yourself) that changes the clock, and only from that exact second forward.
The same precision applies on the $NET side. Let your staked balance drop below 0.003 $NET for a Puck mid-epoch (unstaking, or just not topping up after a rebase-unrelated withdrawal) and that Puck's eligibility stops accruing for the rest of that window, down to the same second. Restake back above the threshold and it starts again from there.
All of this happens off-chain, computed from the real on-chain transfer and balance history for the epoch, then published as a Merkle root on-chain: a calculation anyone with that history can recompute and check, not a trust-us number.
The mechanics behind every number above.
min(sNET held / 0.003, Pucks held) per wallet. Holding 5 Pucks with 1 Puck's worth of stake earns 1 unit, not 5.Two real, live-verified lists feed the allowlist phases, in order: Button Presser NFT holders mint first, then $NET / sNET / wsNET holders, then it's open to the public. Paste any address, or connect a wallet, to check both at once.
Don't want to paste it?
Net Pucks is built on NetNet Capital Management's real protocol, not affiliated with or run by them. These are their own links, pulled straight from their canonical page, current as of today, not guessed or remembered.
A real collection already trading in this ecosystem, worth knowing about even though it's not a NetNet Capital product itself: