Stank protocol guide

Launch it. Lock it. Let it Stank.

Everything you need to launch a token, trade from day one, earn paired-asset rewards, or build an integration on BNB Smart Chain.

01 / The idea

A permanent market from the first block.

Stank is a BNB Smart Chain launchpad for fixed-supply tokens. Every launch opens a canonical concentrated-liquidity pool with the full launch-token supply on one side of the range. The position is sent to a permanent locker, so there is no graduation event and no later liquidity migration to wait for.

What “universal trading” means

Once a launch confirms, the token is a normal transferable ERC-20 and its canonical pool is available through the Stank router path. Wallets and aggregators may index a new pool on their own schedules.

02 / For traders and holders

Trade the token. Stake when you want rewards.

01

Connect to BNB Chain

Use a compatible wallet on chain 56, choose a token page, and review the pair, fee, pool, and lock details before swapping.

02

Buy or sell

Trades use the selected bStock or BNB asset. The launch token has no transfer tax, blacklist, pause switch, or trading delay.

03

Stake to earn

Stake the launch token in its holder distributor. A 24-hour activation delay helps reduce flash-stake capture, then rewards stream over seven days.

Rewards are paid in the paired asset. Unstaking returns principal; claiming only withdraws earned rewards.

02b / Holder staking

How staking to earn rewards works.

When a token launches with a holder share (its holderRewardBps is above zero), part of every trade's 1% fee is set aside for the people who hold and stake it — paid in the token's paired asset (e.g. TSLAB, WBNB, or a stablecoin), never in the launch token itself. Each launch gets its own HolderRewardsDistributor; holders stake there directly from the token page.

01

Stake your tokens

Approve and deposit your launch tokens into the distributor. Your stake begins in a 24-hour pending state.

02

Activate after 24 hours

Once the activation delay passes, activate your stake so it starts earning. The delay stops anyone from flash-staking right before a big trade and skimming the rewards.

03

Earn, streamed over 7 days

Active stakers share the holder allocation of every trade's fee, split pro-rata by stake size. New fees stream over seven days instead of paying in one lump, so rewards accrue smoothly.

04

Claim anytime

Withdraw your earned paired-asset rewards to your wallet whenever you like. Claiming takes only the rewards — your stake keeps working.

05

Unstake anytime

There is no lock on principal — withdraw your staked tokens whenever you want. Rewards you already earned stay claimable.

Where staking fits in the 80 / 20 split

Every trade pays a 1% fee. The protocol always takes 20%; the remaining 80% is divided at launch between the creator and holders (for example 30% creator / 50% holders). The launch-token side of the fee is burned (deflationary), while the paired-asset side funds the reward vault — which credits the creator's share and the holder distributor. Stakers claim the holder share; the creator claims theirs from the same token page.

A token launched with holderRewardBps = 0 shares nothing with holders, so there is nothing to stake for — the token page says so plainly.

03 / For creators

Your launch, your split, a market that stays open.

01

Choose the pair

Pick an enabled bStock or BNB Chain asset. The pair is the asset used for opening price, trades, and rewards.

02

Set the opening market

Choose a fully diluted opening market cap. Stank derives a non-zero, tick-aligned starting price.

03

Set the split

The protocol always receives 20%. You choose how the remaining 80% is divided between creator and holders.

04

Confirm the pool fee

The current BNB launcher uses the fixed 1% V3 tier. If a future factory exposes 2% or 3%, verify that fee on-chain before signing.

05

Review and launch

The factory deploys the token, pool, locker, vault, and holder distributor in one flow.

06

Share the market

Trading starts in the canonical pool immediately. Send users to the token page using its token address.

Protocol20%

Fixed share of rewards.

Creator0–80%

Choose your share of the 80% community pool.

Holders0–80%

Stakeholders receive the rest of the 80%.

Creator and holder basis points must add up to 8,000. A common split is 3,000 creator / 5,000 holders. The reward recipient can be a separate creator wallet, but the holder distributor is wired automatically.

04 / Market mechanics

One-sided liquidity, permanently held.

01Factory deploys
fixed-supply token
02V3 pool opens
at the chosen price
03Position NFT enters
the permanent locker
  • The launched token is minted once; there is no owner mint path.
  • The pool position cannot be transferred, approved, or decreased.
  • Fees are collected separately from principal. The lock stays in place while rewards are paid.
  • There is no graduation threshold, migration event, or second “official” pool.
05 / For builders

Build on the same primitives Stank uses.

Builders can index launches from events, resolve a launch with getLaunch(token), quote swaps through the configured V3 router, and link users to the token page with the token address. Treat the factory events as the source of truth rather than scraping UI cards.

interface IStankLaunchFactory {
  struct LaunchParams {
    string name;
    string symbol;
    uint256 totalSupply;
    address pairedAsset;
    uint256 initialMarketCapPaired;
    uint16 creatorRewardBps;
    uint16 holderRewardBps;
    address rewardRecipient;
    uint256 initialBuyAmount;
    address buyRecipient;
    string metadataURI;
    bytes32 userSalt;
  }

  struct Launch {
    address token;
    address pairedAsset;
    address creator;
    address rewardRecipient;
    address pool;
    address permanentLocker;
    address rewardVault;
    address holderRewardsDistributor;
    uint256 positionId;
    uint256 totalSupply;
    uint256 launchTokenLiquidityAmount;
    uint256 permanentlyLockedDust;
    int24 tickLower;
    int24 tickUpper;
    uint16 creatorRewardBps;
    uint16 holderRewardBps;
    uint64 launchedAt;
  }

  function launch(LaunchParams calldata params)
    external payable returns (Launch memory created);

  function predictNextTokenAddress(
    address creator, bytes32 userSalt, string calldata name,
    string calldata symbol, uint256 totalSupply
  ) external view returns (address);

  function getLaunch(address token)
    external view returns (Launch memory);
}
Launch from ethers v6illustrative
const tx = await factory.launch({
  name: "Example Token",
  symbol: "EXAMPLE",
  totalSupply: ethers.parseUnits("1000000000", 18),
  pairedAsset: pairAddress,
  initialMarketCapPaired: openingMarketCap,
  creatorRewardBps: 3000, // 30% of total fees
  holderRewardBps: 5000,  // 50% of total fees
  rewardRecipient: creator,
  initialBuyAmount: 0,
  buyRecipient: creator,
  metadataURI: "ipfs://...",
  userSalt: ethers.keccak256(ethers.toUtf8Bytes("my-launch")),
});

const receipt = await tx.wait();
// Index LaunchCreated and LaunchEconomicsConfigured.
// Route users to /token?address=<created.token>.
Index these events

LaunchCreated, LaunchEconomicsConfigured, and InitialBuyExecuted.

Use the returned addresses

Persist token, pool, locker, reward vault, holder distributor, position ID, ticks, and split values from the launch result.

Respect the pair registry

Only launch with assets where isPairAssetActive(asset) is true and the contract has code.

06 / Contract suite

Read the source. Verify every address.

These are the contracts a builder may integrate with. The source links below are the exact files bundled with the app; always compare deployed bytecode and constructor arguments on BscScan before sending a transaction.

StankLaunchFactoryLaunch entry point

Deploys the fixed-supply token, creates the pool, seeds one-sided liquidity, and wires rewards.

Source ↗
StankLaunchTokenThe launched ERC-20

Fixed supply with no owner mint, transfer tax, blacklist, trading switch, or graduation step.

Source ↗
PairAssetRegistryApproved pair list

Admin-curated bStock and BNB asset list. Deactivation affects future launches only.

Source ↗
PermanentLiquidityLockerForever lock

Holds the pool NFT without a liquidity decrease, transfer, approval, rescue, or destroy path.

Source ↗
LaunchRewardVaultFee accounting

Accepts paired-asset rewards and applies the fixed 20% protocol / 80% creator-plus-holder split.

Source ↗
HolderRewardsDistributorHolder rewards

Streams the holder allocation to staked launch-token holders after the activation delay.

Source ↗
StankComponentDeployerPer-launch wiring

Creates the immutable locker, vault, and holder distributor bundle for each launch.

Source ↗
07 / Operations

What protocol operators can change.

Pair registry

Add, label, update, or deactivate pairing assets. Deactivation only blocks new launches; it does not strand historical pools.

Pause new launches

The factory can pause new creation during an incident. Existing transfers, swaps, claims, and exits remain separate.

Treasury and keeper

Protocol treasury and conversion-keeper settings govern future fee routing. Existing launch economics are snapshotted.

The public Admin page is an operations console, not a replacement for multisig controls. Confirm the connected wallet and chain before signing.

08 / Read this first

Smart-contract risk is real.

Stank launches are permissionless markets, not investments or endorsements. Tokenized stocks can have issuer controls, regional restrictions, pauses, or other behavior that a launchpad cannot remove. A permanent pool can remain locked even if a paired asset becomes unavailable.

Never trust a copied address, ticker, screenshot, or private message. Verify the chain, token, pool, pair asset, fee tier, and transaction details in your wallet and on BscScan. Use only funds you can afford to lose.

Release status

The contract source and deployment manifest are provided for integration and verification. Independent audits, exact-core fork tests, and operational review should be completed before treating any deployment as production-safe.