Pre-launch · built and tested

Piggy Banks

A named vault that lives inside an NFT. Anyone can add SOL or coins to it, and only whoever holds the NFT can empty it.

  • Who empties itwhoever holds the NFT
  • VEYDUCT fee0.01 SOL to create
  • Rentabout 0.0024 SOL
  • NFT lookupworks today
A Piggy Bank bound to an NFTExample from the worked example in How it works: the Piggy Bank “Moonrise Bank” is bound to NFT #042. You deposit 0.5 SOL and 100,000 DEMO and a fan adds 0.25 SOL. Holder B, who now holds the NFT, is the only one who can redeem the 0.75 SOL and 100,000 DEMO. NFT · supply 1 #042 Holder B Only the holder redeems 0.75 SOL+ 100,000 DEMO Piggy Bank Moonrise Bank You · 0.5 SOL You · 100,000 DEMO Fan · 0.25 SOL Inside now0.75 SOL100,000 DEMO
Example Anyone adds; only whoever holds the NFT can take it out.

Practice run · simulated · nothing is sent

Practice run

The practice run loads with the page. It needs JavaScript; nothing is signed or sent.

With your wallet

Look up or use a Piggy Bank

Check any NFT first. Then create its Piggy Bank, add to it, or empty it as the holder. Every action is checked against mainnet in a dry run before your wallet is asked to approve it.

Pre-launch

Checking the published deployment…

1Find the NFT

Read-only
What the check reads · where to find the mint

Works today: checks whether the NFT can own a Piggy Bank and who holds it now. Once the program is live, it also shows the name and what’s inside.

Where to find it: open the NFT in your wallet or on its marketplace page and copy its mint (token) address, 32 to 44 letters and digits. Checking reads public data only and needs no wallet.

2Choose what to do

Wallet
No wallet connected.
Action

Anyone can create the Piggy Bank for an NFT. It never gives the creator any control.

3–32 characters

3 to 32 characters: letters, digits, spaces, hyphens and underscores. Names are unique (ignoring capital letters) and cannot be changed later.

Check the plan, then review

The plan lists every step and cost without signing anything. Once wallet approval opens, Review in wallet first runs a dry run against mainnet; if it fails, nothing is signed, and nothing is sent until you approve in your wallet.

Check an NFT to begin.Paste an NFT mint address and press Check NFT.

How it works in depth

Everything the Piggy Bank program does, and does not do

Written from the program source (programs/veyduct-nft-vaults) and the page’s own code. SOL amounts on chain are Lamport The smallest unit of SOL, like a cent but much smaller.: 1 SOL is 1,000,000,000 lamports.

Who can empty it
Whoever holds the NFT, at that moment
Name
Unique, permanent, never released
Costs
0.01 SOL VEYDUCT fee + about 0.0024 SOL rent to create one. Nothing else
NFTs
Classic SPL and Token-2022, supply 1
Example

Accounts the program creates

Every account has an address derived from fixed seeds (a PDA (program-derived address) An address computed from fixed words and other addresses. It has no private key, so only its program can sign for it.), so the page finds a Piggy Bank from the NFT alone and nobody can swap in a look-alike.

Piggy Bank

Bound to one NFT mint: its name, the NFT’s token program, whether it was burned and by whom, the redemption count and the SOL redeemed so far. It holds the deposited SOL itself.

Seeds
"vey-nft-vault", NFT mint
Size
168 bytes
Created by
Create (anyone)

Name record

Proves a name is taken and points at its Piggy Bank. There is no instruction that closes it.

Seeds
"vey-nft-name", sha256(lowercase name)
Size
48 bytes
Created by
Create, in the same transaction

Token accounts

One per coin deposited, owned by the Piggy Bank address. The first deposit of a coin creates it.

Address
Associated token account of the Piggy Bank
Size
165 bytes, 170 for Token-2022
Created by
The first depositor of that coin

Reward pool

In the program and SDK, not on this page yet: a fixed list of up to 24 Piggy Banks with fixed weights that anyone can pay out.

Seeds
"vey-nft-pool", creator, nonce
Size
1,136 bytes
Created by
A project

The Piggy Bank signs for its own token accounts, and only the program can make it sign. Before any redemption the program re-reads the NFT mint and the holder’s token account.

Who can do what

  • ActionWho signsRules the program enforces
  • CreateAnyone; pays the rent and the feeThe NFT has supply 1, 0 decimals and no way to mint more; the name is valid and free; the program is immutable. Creating gives no control.
  • Deposit SOL or a coinAnyoneThe Piggy Bank exists and is not burned. Coins must pass the same token rules as NFTs, minus supply.
  • RedeemThe NFT holder onlyThe signer’s token account holds exactly the NFT, with no delegate (an open listing or lock) and no outside close authority. Everything listed goes to the signer.
  • Burn and redeemThe NFT holder onlySame holder checks, then an SPL burn of the NFT; token accounts are swept and closed and the signer is recorded as the burner.
  • Sweep or close a burned bankThe burner onlyRedeem sweeps anything sent later; Close returns all the bank’s lamports, rent included, to the burner.
  • Take anyone else’s depositNobodyNo creator, admin, VEYDUCT or upgrade path can move what is inside. Depositors cannot withdraw either.

A seller can redeem a Piggy Bank right before the NFT changes hands. If you buy an NFT for its Piggy Bank, check what is inside at the moment you buy, not an older listing.

Names

  • 3 to 32 characters of letters, digits, spaces, hyphens and underscores; no leading, trailing or double spaces.
  • Unique ignoring capital letters. The record’s address comes from the lowercase name, so “Moon Bank” and “moon bank” are the same name and only the first one can exist.
  • Permanent. A name can never be changed and is never released, even after its Piggy Bank is burned and closed.
  • Checked before you pay. Once the program is live the page reads the name record and tells you if a name is taken; the program refuses a taken name either way.

Redemption math, with a worked example

The Piggy Bank keeps exactly its rent-exempt minimum and pays out everything above it. Token balances go out in full.

  1. SOL outSOL to holder = bank lamports − 1,503,680 (the 168-byte rent minimum)The bank account stays open, so it can be filled and redeemed again.
  2. Tokens outeach listed token account → holder’s own account, full balanceUp to 6 coins per transaction. With “close”, the emptied accounts are closed and their rent goes to the holder too.
  3. Something has to moverefused if no SOL above rent, no tokens and nothing to closeEach redemption bumps a counter; a plan made before someone else redeemed is refused.

Example

  1. You create “Moonrise Bank”.0.01 SOL fee + 0.00150368 + 0.00089408 SOL rent + 0.000005 network fee = 0.01240276 SOL.
  2. You deposit 0.5 SOL and 100,000 DEMO; a fan adds 0.25 SOL.The first DEMO deposit also pays 0.00151384 SOL for the bank’s Token-2022 account.
  3. You send the NFT to Holder B.You can no longer redeem. Holder B redeems 0.75 SOL and 100,000 DEMO.
  4. The NFT comes back; you deposit 0.2 SOL, then burn and redeem.You get 0.2 SOL, the DEMO account’s rent and your NFT account’s rent (0.00148844 SOL). Closing the burned bank returns its 0.00150368 SOL.

The Practice tab follows the same rules and the SDK’s own name check, so you will see these numbers.

Costs

VEYDUCT fee to create a Piggy BankPaid once, in the same transaction, to VEYDUCT’s fee wallet. Shown in the review.
0.01 SOL
Rent for the Piggy Bank168 bytes at mainnet rent of 5,080 lamports per byte plus 128 bytes per account. Returned only when a burned bank is closed.
0.00150368 SOL
Rent for the name record48 bytes. Never returned: the name stays taken.
0.00089408 SOL
First deposit of a coinThe Piggy Bank’s token account, paid by that depositor. Returned to the holder if a redemption closes it.
0.00151384 SOL (Token-2022) · 0.00148844 SOL (classic)
Network feePer transaction, one signature.
0.000005 SOL
Percentage feesDeposits, redemptions, burns and closes carry no VEYDUCT fee, and the program takes no cut.
None

Account Rent SOL that Solana requires every account to hold, sized by its bytes. It comes back only when the account is closed. is a deposit, not a fee. If your wallet has no token account for a coin you redeem, the page creates it in the same transaction and shows that rent in the review.

Supported NFTs and coins

  • NFTs: classic SPL and Token-2022 mints with supply 1 and 0 decimals, and no mint authority or only the Metaplex master-edition authority (which cannot mint more).
  • Token-2022 extensions: only metadata and group extensions. Transfer fees, hooks, permanent delegates, mint close authority, non-transferable, default-frozen, confidential and pausable mints are refused.
  • Coins you deposit: the same token rules, so Pump coins (Token-2022 with metadata only) and classic SPL coins work.
  • Burn and redeem: an SPL burn, so not for programmable NFTs (pNFTs, whose token accounts stay frozen) or NFTs frozen by staking or a lock. Check NFT says so; plain Redeem still works for them.

Edge cases and what can go wrong

Listed or locked NFT

A marketplace listing or staking lock sets a Delegate Permission for another program (a marketplace or a staking lock) to move the NFT out of your token account. The Piggy Bank refuses to pay out while one is set.. Redeem and burn are refused until it is cancelled.

Empty Piggy Bank

A redemption that would move nothing is refused, so you never pay a fee for nothing.

Someone redeemed first

Each redemption carries the counter it was planned at. If it changed, the program refuses and the page asks you to check again.

More than 6 coins

One transaction sweeps at most 6 token balances. Redeem in parts, then burn.

After a burn

Deposits are refused. SOL sent with a plain transfer can still be swept by the burner, then the bank closed.

Name taken

Names ignore capital letters and are never released. Pick another; nothing is charged for a refused create.

FAQ

Where do I find my NFT’s mint address?

Open the NFT in your wallet or on the marketplace that lists it and look for its mint or token address in the details. Paste it into step 1 of Use it; checking it is read-only.

If I create a Piggy Bank for my NFT and sell the NFT, who gets what is inside?

The buyer. Only the wallet holding the NFT can redeem. If you want the contents, redeem before you sell.

Can I take back SOL I deposited?

Only if you hold the NFT. There is no depositor withdrawal; SOL and coins leave only through a redemption by the holder.

Can the creator, VEYDUCT or anyone else empty it?

No. The program has no admin, creator or upgrade withdrawal, and the release only switches it on for a program deployed without an upgrade authority.

Can I rename a Piggy Bank?

No. The name is written once at creation, and its name record is never closed, so the name stays reserved for good.

What happens to the Piggy Bank if the NFT is burned some other way?

If nobody used burn and redeem, the Piggy Bank has no burner recorded and no holder can sign, so its contents stay locked. Use burn and redeem instead of a plain burn.

Does it cost anything to redeem?

Only the network fee, plus rent for a token account in your wallet if you do not have one for a coin inside. There is no VEYDUCT fee.

Can a Piggy Bank be part of a reward pool?

The program supports pools of up to 24 Piggy Banks with fixed weights, paid out by anyone, with rounding dust kept in the pool. This page does not create or pay pools yet.

Tested in this release

Test results are published with each release

Every release build runs the Piggy Bank program’s exact pinned bytes and this page’s own code in an isolated Solana runtime (LiteSVM), with the mainnet token programs captured read-only. This copy of the site has no build results attached; Release status lists the latest release.

  • Create with a unique name and the exact 0.01 SOL VEYDUCT fee; case-variant and malformed names refused by the page and the program.
  • Deposits of SOL, classic SPL and Token-2022 coins from any wallet; redemption only by the current holder, including after a transfer.
  • Burn and redeem, deposits refused after a burn, and only the burner can sweep or close the burned bank.