Documentation
The token, the economy, and the on-chain mechanics behind SOLENFROG, for players who want to know exactly how their funds are handled.
$SOLENFROG Token
$SOLENFROG is a standard SPL token launched on pump.fun.
Contract address:
F4Hxe3WEWb4npFGTXVhkha6UmcDUz6N14WZMPPUYpump
Gold vs. $SOLENFROG
The game runs on two separate currencies, deliberately kept apart:
| Gold | $SOLENFROG | |
|---|---|---|
| Controlled by | Game server | The Solana blockchain |
| Earned from | Quests, gathering, selling loot, referrals | Marketplace sales, wager wins |
| Spent on | Common/Uncommon/Rare crafting, healing, common cosmetics | Epic/Legendary crafting, Marketplace, Arena wagers, premium cosmetics |
| Can the server mint it freely? | Yes, it's an internal score | No, real on-chain transfers only |
This split exists so the backend can freely grant Gold for things like referral bonuses without ever needing custody of real tokens to do it.
Marketplace: Atomic On-Chain Trades
Listing and buying items goes through an on-chain escrow program rather than a database table the server could quietly edit. When a buyer fills a listing, a single Solana transaction does all of the following atomically: either everything happens or nothing does.
- 1.25% of the price goes to the treasury
- 1.25% of the price is burned outright (removed from circulation forever)
- The remaining 97.5% goes to the seller
There's no intermediate vault holding the buyer's funds in limbo. The buyer's own transaction moves the money directly, so there's no "stuck funds" failure mode. The game server's only job afterward is to detect the on-chain transfer and release the purchased item.
PvP Wager Escrow
Arena wagers use a dedicated on-chain program with its own vault per match:
- Create match: the creator deposits their stake into a vault only the program controls.
- Join match: the opponent deposits a matching stake into the same vault.
- Report result: a low-value "referee" key the game server holds can only record who won. It has no authority to move tokens.
- Claim payout: the winner withdraws the pot (minus the same 2.5% treasury/burn split as the Marketplace) with their own wallet signature. The server cannot claim on a player's behalf.
- Cancel match: if nobody ever joins, the creator can reclaim their own stake at any time.
Rarity System
Every weapon and cosmetic in the game falls into one of five tiers, in increasing order of power/exclusivity:
Common → Uncommon → Rare → Epic → Legendary
Common through Rare items are obtainable with Gold alone. Epic and Legendary items require a real $SOLENFROG payment on top of crafting materials or a Gold price.
Referral Program
Every player gets a unique referral code and shareable link. The first time someone creates an account using your link, you receive a one-time Gold bonus and so does your friend. Rewards are tracked permanently so the same referred player can never trigger a payout twice.
Fees Summary
| Action | Fee | Goes to |
|---|---|---|
| Marketplace sale | 2.5% of price | 1.25% treasury / 1.25% burned |
| Arena wager payout | 2.5% of pot | 1.25% treasury / 1.25% burned |
| Premium crafting / cosmetics | Listed $SOLENFROG price | 100% treasury |
Wallet & Access Requirements
You need a Solana wallet (Phantom or Solflare) holding $SOLENFROG to log in. Your wallet's signature proves ownership at login, and it's never asked for again except when you explicitly approve a real transaction (a trade, a craft payment, or a wager). The game periodically re-checks your on-chain balance while you play; if you transfer away all of your $SOLENFROG, you'll be logged out.
Troubleshooting & FAQ
I can't connect my wallet.
Make sure your wallet extension is unlocked, refresh the page, and confirm you're holding $SOLENFROG in that wallet before connecting.
Login says "insufficient balance" but I hold $SOLENFROG.
The balance check reads directly from the chain at login, so make sure you're connecting the same wallet address that actually holds the tokens, and that a recent transfer has confirmed.
My on-chain transaction failed or never confirmed.
The most common cause locally is the devnet public RPC rejecting requests, which doesn't happen on the live production site. On the live site, check your wallet has enough SOL for network fees and try again; nothing is deducted unless the transaction actually confirms.