FOUNTAIN

Contract deployer · BNB Smart Chain Testnet only (chain 97)

1 · Connect wallet

On a phone, open this page inside your wallet's browser (MetaMask, Trust Wallet, Binance Web3 Wallet, OKX…).
Wallet
Network
Balance
Need tBNB? Get some free from the BNB Chain testnet faucet. Deploying uses roughly 0.01–0.03 tBNB.

2 · Settings

For testing, you can leave Admin and Treasury as your own wallet. On mainnet, both must be Safe multisigs.
For testnet, start WL ~20 min from now so there's time to add test wallets. WL then runs 1 hour, and public runs 30 days after that. A 300 s timelock lets you test upgrades quickly (mainnet: 172800 = 48 h).
Chainlink VRF v2.5 wrapper (BSC Testnet): 0x471506e6ADED0b9811D05B8cAc8Db25eE839Ac94

3 · Deploy (3 transactions)

1
Timelock (controls upgrades)
2
FOUNTAIN implementation (the code)
3
FOUNTAIN proxy (the address you use), initialised with your settings

4 · Deployed

Save these addresses. They're also kept in this browser.

5 · Verify on BscScan (needed for Read/Write tabs)

BscScan's API verification needs a paid plan, but the website form is free. Do this once for each contract:
a
Download the file for the contract below.
b
On BscScan, open the contract's address → Contract tab → Verify and Publish.
c
Compiler type: Solidity (Standard-Json-Input) · Compiler: v0.8.24+commit.e11b9ed9 · License: MIT.
d
Upload the JSON file and paste the constructor arguments shown (if any), then submit.
e
Finally, on the proxy page: Contract → More Options → Is this a proxy? → Verify → Save. Then Read as Proxy / Write as Proxy appear.

6 · Test on BscScan

Use Write as Proxy with your wallet connected on BscScan:
1
addToWhitelist (admin, before WL start): e.g. ["0xYourTestWallet"]
2
At WL start: whitelistMint qty 1, value 0. A second try must fail.
3
After WL end: mint qty 1–5, payableAmount = 0.0003 × qty. A wrong amount must fail. A WL wallet that didn't claim must fail.
4
Admin: setPublicPrice, setPublicWalletLimit, pause/unpause, setBurnEnabled, then burn your token.
5
From a non-admin wallet, every admin function must fail. withdraw sends funds to the treasury.
6
Read: phase, mintInfo(wallet), totalMinted, isWhitelisted, missedWhitelist.
The reveal works only after the 30-day public window ends or after all 999 are minted. On testnet, that's best tested with a fresh deployment and a WL start a few minutes away.

FOUNTAIN contract v1.1 · not audited · testnet use only