zkEMBERS docs_
Everything about how zkEMBERS work: what a mint does on-chain, where the money comes from, how it becomes shielded Zcash, and what you can verify yourself.
01Overview_
zkEMBERS is a collection of 3,333 pixel identities on Solana. You mint one by burning $EMBERS, the project's pump.fun coin. Every $EMBERS trade pays a creator fee, and all of it goes to holders: the fees are converted into native, shielded Zcash and paid out per NFT to each holder's Zcash address.
At a glance_
| Chain | Solana (NFTs, token, fees) → Zcash (payouts) |
| Supply | 3,333 zkEMBERS, never more |
| Mint | Burn 100,000 $EMBERS + 0.1 SOL fee, one transaction |
| Yield source | 2% pump.fun creator fee on every $EMBERS trade |
| Payout asset | native ZEC, via NEAR Intents |
| Split | Equal share per NFT, every round |
| Cadence | Keeper runs every 60 seconds |
The loop_
$EMBERS trades on pump.fun
│ 2% creator fee (ZEC on Solana, or SOL)
▼
creator vault ──collect──▶ keeper ──NEAR Intents──▶ native ZEC pool
│
snapshot of every zkEMBER owner ◀──┘ (round)
│
equal share per NFT ─────────────────┘
▼
your u1… / zs1… / t1… Zcash address02The collection_
zkEMBERS are chunky 24×24 pixel busts on black, each one a single colour family, with the crown burning off and rising as embers: the burn that minted it.
Generative art_
Nobody draws an individual zkEMBER, and nobody can choose one. Each image is generated deterministically from the NFT's asset address, a fresh keypair created at mint time. The same address always draws the same image, so the art can be re-rendered and checked by anyone, forever. Wallets and marketplaces load a 1000×1000 PNG from /api/nft/<asset>/image.
Traits_
| Trait | Options |
|---|---|
| Hue | Signal, Cobalt, Orchid, Bone, Lime, Tangerine, Ice, Slate, Rose, Mint, Gold (rare), Inferno (rarest) |
| Head | Round, Tall, Wide, Square |
| Headgear | None, Beanie, Bucket, Headphones, Horns, Halo, Flame Crown |
| Eyes | Blocks, Slits, Visor, Tall, Cyclops, Hollow |
| Mouth | None, Line, Mask, Grill |
| Outfit | Tee, Hoodie, Jacket, Chain |
| Burn | Smoulder, Burning, Ablaze (always Ablaze with a Flame Crown) |
That is roughly 97,000 trait combinations for 3,333 pieces. Two pieces can share every trait and still differ: the burn pattern, embers and smoke are placed pixel by pixel from the address.
Token standard_
Every zkEMBER is a Metaplex Core asset in one collection, the current Solana NFT standard supported by Phantom, Solflare, Backpack, Tensor and Magic Eden. One account per NFT, cheaper rent and lighter transactions than legacy Token Metadata.
03Minting_
What it costs_
| Item | Amount | Goes to |
|---|---|---|
| Burn | 100,000 $EMBERS | Destroyed. Supply goes down permanently |
| Mint fee | 0.1 SOL | 100% to the project wallet |
| Asset rent | ≈ 0.003–0.004 SOL | Solana rent for the NFT account (stays with the NFT) |
| Network fee | < 0.0001 SOL | Solana validators |
One atomic transaction_
A mint is a single Solana transaction. Its instructions either all succeed or all fail, so you can never burn without receiving the NFT, or the reverse.
compute budget 150k CU, priority fee
system::transfer 0.1 SOL you → project wallet
token::burnChecked 100,000 $EMBERS from your token account
core::createV2 new zkEMBER in the collection, owner = you
signers: you (fee payer, token owner)
the new asset keypair (server)
collection authority (server)Step by step_
- 1ConnectAny Solana wallet through the connect dialog. The site checks you hold enough $EMBERS and SOL before building anything.
- 2PrepareThe server reserves the next free number, generates the asset keypair, builds the transaction above and signs it as the asset and as the collection authority.
- 3SignYour wallet shows one transaction. Signing adds your signature as fee payer and token owner. Nothing moves until it is broadcast.
- 4SubmitThe server checks the transaction is byte-for-byte the one it prepared for that asset, then broadcasts and waits for confirmation.
- 5RevealYour zkEMBER appears in your wallet and on the site. Its art is drawn from the asset address.
Numbers & reservations_
Numbers run from #0001 to #3333. Prepare reserves the lowest free number under a database lock, so two people can never get the same one. A reservation that is not confirmed within about three minutes (longer than a Solana blockhash lives) is checked on-chain: if the asset exists it is marked minted, otherwise the number is freed for the next minter. A wallet can hold at most two mints in flight.
When a mint fails_
| Message | Why | What to do |
|---|---|---|
| $EMBERS has not launched yet | The CA is still pending | Wait for launch |
| You need 100,000 $EMBERS | Balance below the burn amount | Buy on pump.fun |
| You need about … SOL | Not enough SOL for fee + rent | Top up SOL |
| The transaction expired | Signed after the blockhash ran out | Mint again; nothing moved |
| Mints in flight | Two unconfirmed mints already | Wait a minute |
| Sold out | All 3,333 numbers are taken | Buy on a marketplace |
04Earning ZEC_
Creator fees_
$EMBERS carries a 2% creator fee, paid by pump.fun on every buy and sell, on the bonding curve and after graduation to the AMM. The fee accrues in a creator vault that only the launch wallet can collect. When the coin trades against ZEC, the fee is already ZEC on Solana (A7bd…XaS); a SOL-paired coin pays it in SOL.
The keeper_
A keeper process runs a pass every 60 seconds. Each pass, in order:
- 1SettlePoll open NEAR Intents swaps and payouts. Credit the pool with what actually landed; mark payouts paid with their Zcash transaction.
- 2CollectOnce at least 0.002 ZEC (or 0.02 SOL) has accrued, claim the creator fees, including fee buckets left on the curve or pool by newer trades. Only what the claim measurably added is credited.
- 3SweepOnce 0.005 ZEC (or 0.05 SOL) is collected, send it through NEAR Intents into native ZEC held in the keeper's intents account: the pool.
- 4RoundOnce the pool holds 0.01 ZEC, snapshot every zkEMBER and split the pool equally per NFT.
- 5PayEvery holder with an address and at least 0.005 ZEC unpaid gets a withdrawal straight to their Zcash address.
NEAR Intents_
The conversion uses NEAR Intents (1Click), a cross-chain settlement network. The keeper asks for a quote (1% slippage cap), sends the collected ZEC or SOL on Solana to a one-time deposit address, and solvers deliver native ZEC into the keeper's intents account. Payouts run the same way in reverse: ZEC moves from that account to a withdrawal intent that delivers it to the holder's address on the Zcash chain. No wrapped token, no bridge to babysit. If an intent is refunded, the amount returns and is retried.
Rounds_
A round takes a snapshot of every live zkEMBER and its current owner from Helius (DAS). The pool is divided by the number of NFTs, and each owner is credited one share per NFT. Shares below 0.00001 ZEC roll into the next round instead of being lost.
per_nft = pool / nfts_in_collection your_share = per_nft × nfts_you_hold
Payouts_
Credits add up across rounds. When your unpaid total reaches 0.005 ZEC and you have a payout address, the keeper sends it in one withdrawal. Payouts are automatic; there is nothing to claim. You can track each one, with its Zcash transaction, on the Rewards page.
Worked example_
An illustration, not a forecast. Yield depends entirely on trading volume.
| Value | |
|---|---|
| $EMBERS daily volume | $500,000 |
| Creator fee (2%) | $10,000 per day |
| Per NFT (all 3,333 minted) | $3.00 per day |
| In ZEC | 0.00228 |
| Holding 5 NFTs, 30 days | $450 |
ZEC at $1316.46 (live). Before 1% swap slippage cap and NEAR Intents fees.
05Payout addresses_
Address types_
| Prefix | Type | Privacy |
|---|---|---|
u1… | Unified address | Shielded. Recommended |
zs1… | Sapling address | Shielded |
t1… / t3… | Transparent address | Public, like Bitcoin |
Getting one_
Install a Zcash wallet that supports shielded addresses (Zashi, YWallet and others), create a wallet, and copy its receiving address. Most modern Zcash wallets show a unified address (u1…) by default.
Setting it_
- 1Open RewardsConnect the Solana wallet that holds your zkEMBERS.
- 2Paste the addressThe site checks its shape, then asks NEAR Intents (a dry-run withdrawal quote) whether it can deliver to it.
- 3Sign a messageYour wallet signs a text message naming your wallet, the address and a timestamp. This is not a transaction: no fee, nothing moves, and the signature expires after 10 minutes so it cannot be replayed.
zkEMBERS payout address wallet: <your Solana wallet> asset: ZEC to: <your Zcash address> issued: <timestamp>
You can change the address any time the same way. The newest one is used for every payout that has not been sent yet.
No address yet_
Your shares still accrue every round. They wait under your Solana wallet until you set an address, and the next keeper pass then pays the whole balance. Rewards follow the wallet that held the NFT at each snapshot.
06Transparency_
What is on-chain_
| Event | Where to see it |
|---|---|
| Mint (fee, burn, create) | One Solana transaction: Solscan |
| Creator fee collection | Solana transaction from the creator wallet |
| Sweep into ZEC | Solana deposit + NEAR Intents settlement |
| Payout | Zcash transaction (shielded amounts stay private) |
| NFT ownership | Metaplex Core asset: any explorer or marketplace |
Explorers_
The home page activity feed lists mints, rounds, payouts and fee sweeps as they happen, each linking to its transaction: Solana on solscan.io, Zcash on mainnet.zcashexplorer.app. Every NFT page links its asset and its mint transaction.
07Security & trust_
Keys we hold_
| Key | Can | Cannot |
|---|---|---|
| Keeper | Pay keeper gas · hold the ZEC pool on NEAR Intents · co-sign mints as collection authority | Move your NFTs, tokens or SOL · mint without your signature |
| Creator | Collect $EMBERS creator fees from pump.fun | Touch anything you own |
As collection update authority the keeper could change collection metadata; it never transfers or burns assets, which only the owner can do in Metaplex Core.
Guarantees_
- 1Atomic mintFee, burn and NFT are one transaction. Partial outcomes are impossible.
- 2Exact relayThe server only broadcasts the exact message it prepared for that asset; a modified transaction is rejected.
- 3No custodyThe site never holds your NFTs or tokens. Your wallet signs every action that touches your assets.
- 4Measured creditsThe keeper credits only what each fee claim measurably added, never more than pump.fun reports owed.
Risks_
08Fees summary_
| Fee | Rate | Paid by | Goes to |
|---|---|---|---|
| Creator fee | 2% of each trade | $EMBERS traders | zkEMBERS holders, as ZEC |
| Mint burn | 100,000 $EMBERS | Minter | Burned |
| Mint fee | 0.1 SOL | Minter | Project wallet (100%) |
| Swap / withdrawal | ≤ 1% slippage + NEAR Intents fees | Deducted from the pool | Solvers |
| Keeper gas | Network fees | Keeper wallet | Solana |
| Royalties | None | — | — |
09FAQ_
Do I need to do anything to get paid?+
What happens to my rewards if I sell my zkEMBER?+
Does holding more NFTs earn more?+
Why Zcash?+
What sets the floor price?+
Are there royalties on resales?+
What if the keeper goes offline?+
Can the team mint for free or pick rare ones?+
What happens after all 3,333 are minted?+
Is my payout address public?+
10Glossary_
- Burn
- Permanently destroying tokens, lowering supply.
- Creator fee
- A percentage of each pump.fun trade paid to the coin's creator vault.
- Keeper
- The automated process that collects, converts and pays.
- NEAR Intents
- Cross-chain settlement where solvers fill swaps; used here to deliver native ZEC.
- Round
- One snapshot and equal split of the pool across all NFTs.
- Shielded address
- A Zcash address (u1/zs1) whose amounts stay private on-chain.
- Metaplex Core
- Solana's single-account NFT standard.
- DAS
- Digital Asset Standard API (Helius) used to read every NFT and its owner.
- Bonding curve
- pump.fun's launch pricing before a coin graduates to its AMM.
- CA
- Contract address: the $EMBERS mint on Solana.