Documentation

How Vendor works

Vendor is a launchpad for Solana games: one shared, config-driven engine that lets anyone launch a game without building an engine. Pick a genre, drop in your token, and go live.

Overview

Instead of building a game engine, creators reuse Vendor's. Branding, token, tiers, economy, and packs are configuration, not a rebuild. A launch flows in a few steps:

Connect walletPick a genreConfigurePay launch feeGo live

Self-serve launching is on the way; today you join the waitlist for early access.

Play models - hold-to-play & play-to-earn

Two independent levers. A game can use one, both, or neither:

  • Hold-to-play (H2P)- holding the game's token unlocks play and grants discount tiers. Pure read-only: the server reads your SPL balance to compute your tier and price. Nothing moves.
  • Play-to-earn (P2E) - players earn a share of real game revenue. In-game rewards run today; claimable on-chain payouts are on the roadmap (see P2E payouts).

Custody

Vendor is non-custodial: it never holds, escrows, or pools your funds, and keeps no signing keys in the engine. There is no deposit route, so there is nothing to rug.

Hold-to-play moves nothing. When value does move - buying a pack, paying a launch fee, or (later) claiming an on-chain reward - it is a direct, you-signed, wallet-to-wallet transfer that Vendor never takes custody of. Here is the money path for a pack purchase:

Player walletbuys a pack · SOLplayer-signedcreator keeps the rest5% platform feeCreator treasuryVendorWallet-to-wallet and player-signed · Vendor never holds, escrows, or pools funds

“Custody-free” means Vendor never holds your tokens, not that no transaction ever happens.

Fees

Vendor earns three ways:

FeeAmountPaid in
Launch fee - one-time, to make a game liveSet per launch$VENDOR
Platform fee on packs - a cut of pack sales5% (cap 20%)SOL
Trading fees - Vendor is the bonding-curve fee-claimerPer the curve configtoken / SOL

Packs are priced in SOL and paid directly to the creator's own treasury - Vendor never custodies pack revenue; it is a wallet-to-wallet transfer. The platform fee is fixed platform-wide (creators cannot change it).

Fees roll out alongside self-serve launching and on-chain token launches. See the roadmap for what is live today versus on the way.

How play-to-earn payouts work

Real cash to players has to come from real revenue, not minted tokens, or the economy collapses. So play-to-earn is a revenue share:

  • A fixed, configurable % of real revenue (pack sales + trading fees) funds a reward pool.
  • Players earn a share by playing - leaderboard rank, achievements, and holdings.
  • Payouts are claimed, not pushed: each epoch the earned amounts are posted on-chain and players claim with a proof - a direct, you-signed transfer.
  • Custody: the reward pool is creator-funded, held in a vault the creator controls - Vendor never holds it. Because it is the one place value is pooled, on-chain payouts roll out after a security and legal review.

In-game rewards run today; claimable on-chain payouts are on the roadmap.

Configuration

A game is a single validated config object - identity, token, play model, tiers, and packs. There is no engine code to write; the schema range-checks every field on save (tiers must ascend, the platform fee is capped, slugs are normalized):

// A whole game is one config object, validated by Vendor's GameConfig schema.
// (Shown trimmed; every field is type- and range-checked when you save.)
const config = {
  meta:      { name: "Crystal Keep", slug: "crystal-keep", signInApp: "Crystal Keep" },
  module:    { id: "rts" },                       // the genre / template
  chain:     { tokenSymbol: "KEEP", platformFeeBps: 500 },   // 5% platform fee, fixed
  playModel: { holdToPlay: true, playToEarn: true },
  tiers: [
    { id: "bronze", name: "Bronze", minHold: 0,       discount: 0    },
    { id: "silver", name: "Silver", minHold: 50_000,  discount: 0.10 },
    { id: "gold",   name: "Gold",   minHold: 250_000, discount: 0.25 },
  ],
  packs: [
    { id: "starter", name: "Starter Pack", priceLamports: 100_000_000, grants: { coins: 500 } },
  ],
};

The genre lives in module; its own options are validated by that template's schema.

Templates

Every genre runs on the same wallet, economy backbone, and low-poly toolkit:

  • Garden - live.
  • RTS and Shooter - playable demos against bots; real-time PvP is on the roadmap.
  • Arena, RPG, Idle / Tycoon, Survivors - planned.
  • Card / Gacha - on the roadmap.

Launching a game

  1. Connect your wallet.
  2. Pick a template (genre).
  3. Choose your play model (H2P and/or P2E) and configure tiers, economy, and packs.
  4. Pay the one-time launch fee in $VENDOR.
  5. Your game goes live on its own surface - no rebuild.

Self-serve launching is on the roadmap - join the waitlist for early access.

Roadmap

The flagship game is live today, with on-chain payments and hold-to-play tiers. Next up is self-serve launching, then on-chain play-to-earn rewards, higher-fidelity visuals, and more genres. The roadmap is the source of truth for what is live versus on the way.