BitLab
BitLab Locker
Advanced Locker for Token & Liquidity Non-custodial · Multi-chain
Open API Docs in the locker Same API docs live at locker.bbspectrum.com/#docs
Mainnet live

Solana, BNB Chain, Polygon, and Cronos are live on the mainnet. Remaining EVM networks are still in testing mode.

BitLab Locker · V1

BitLab Locker and API Guide

BitLab is a non-custodial token and liquidity locker. Your wallet signs. The smart contract holds the asset until the unlock time. This website cannot move funds, rewrite dates, or rescue a lock if you lose the owner wallet.

This guide walks through every action the product supports: create, vest, unlock, extend, transfer, and renounce — plus the security rules that make those actions safe. The same page now includes the BitLab Web3 Security API so aggregators (CoinGecko, CMC, DexScreener, DEXTools, GoPlus, RugCheck) can read on-chain lock proof without scraping the site.

Welcome

Projects lock team tokens, treasury, investor allocations, and AMM liquidity so the market can see a public, on-chain commitment. BitLab is built for that job on BNB Chain, Ethereum, Arbitrum, Polygon, Cronos, Base, Robinhood Chain, and Solana.

The blockchain is the source of truth. The site prepares the transaction and shows explorers, QR codes, and history. If this website disappeared tomorrow, locks already on V1 would still follow V1 rules.

Start at Create lock. Explore public lists at Token locked and Liquidity locked. Aggregators: API docs on this page or API Docs.

Before you start

Connect a wallet

  1. Click Connect wallet in the header.
  2. Pick one wallet — MetaMask, Trust, Coinbase, Rabby, Brave, Phantom, Solflare, Backpack, or WalletConnect. Each row is a single app, not a group.
  3. On a phone, that tap opens the installed app and loads BitLab inside it. Safari/Chrome cannot see MetaMask or Phantom until you are in the wallet’s built-in browser.
  4. Approve the connection. BitLab never sees seed phrases or private keys.
  5. When connected, the button reads Disconnect or Switch Wallet. Use it to change accounts.
If a phone tap does not jump, open BitLab from that wallet’s Browser / Discover tab and paste the site URL.

Create a token lock (simple date)

Use this for team, treasury, marketing, or investor tokens that should all unlock on one date.

  1. Open Create lock and choose the network (BNB Chain for BEP-20).
  2. Choose Token lock.
  3. Paste the token contract / mint. The Token snapshot loads name, symbol, decimals, supply, and Your balance.
  4. Confirm “Wallet that holds the token” is the address that actually holds the coins (the Solscan/BscScan account, not a different Phantom account).
  5. Enter the amount, or click Use wallet balance.
  6. Give the lock a title (for example “Team allocation Q3”). Optional: project name and website (metadata only).
  7. Click the unlock field or Calendar and pick date and time. Unlock must be more than one hour in the future. You can later move this date only forward.
  8. Leave “Use a different owner wallet” unchecked unless another address should own the lock. If you check it, that address is required.
  9. Click Review lock. The app blocks you if the connected wallet has 0 of the token.

Create a liquidity lock

V2 / AMM / CPMM LP tokens are fungible. You lock the LP token the same way you lock any ERC-20 or SPL mint. The pool stays in the DEX; you are locking the receipt that controls that liquidity.

  1. Choose Liquidity lock and the DEX adapter (PancakeSwap V2, Uniswap V2, Raydium AMM/CPMM, and so on).
  2. Paste the LP token address, not the project token. Snapshot should show the pair if the contract is a V2 pair.
  3. Enter the LP amount you hold. Unlock date works like a token lock.
  4. V1 does not lock Uniswap V3/V4 or Raydium CLMM / Meteora DLMM position NFTs. Those need a later version. Do not paste an NFT id expecting V1 to vault it.
Locking LP is not the same as locking the project token. If you paste the wrong address you may lock the team supply instead of the pool — or the transaction will fail.

Create a vesting lock

Vesting releases tokens over time. Unclaimed amounts accumulate; you do not need to click Claim on the exact second a cycle opens.

Six models:

  1. Choose Vesting lock, paste the token, set the total amount.
  2. Pick the model. For TGE models, TGE percent + (cycles × cycle percent) must cover 100%.
  3. Review. Vesting locks call claimVested later, not a single withdraw.
Rebasing and some taxed tokens break vesting math. Exclude the locker from fees. Vesting is not for rebase supplies.

Approve and confirm

  1. On Review, click Approve. MetaMask asks you to allow the locker to move the amount. This does not lock yet.
  2. Click Lock. MetaMask shows the locker address, the BNB/ETH/SOL service fee, and gas.
  3. Confirm. Wait until the page shows a lock ID and QR. If you reject in the wallet, nothing is locked and no fee is taken.

BNB Chain TokenLocker: 0xc829e04acAe9A9E36D44E01e0a7Af51393D148Ee

Cronos TokenLocker: 0xc829e04acAe9A9E36D44E01e0a7Af51393D148Ee

Polygon TokenLocker: 0xc829e04acAe9A9E36D44E01e0a7Af51393D148Ee

Fee controller (unchanged): 0x6E8bEFC5F762A9B02FB698ccdB8BC9DE5c255697 (BNB) · 0x8a14D04BD04b20f9dD0b3FE954EBE742b32C2Ab4 (Polygon / Cronos)

After the lock is live

A short link without the extra payload can show “lock not found” in a different browser. Always copy the link from the lock page after creation.

Unlock and claim

Simple lock

  1. Connect the owner wallet on the same network.
  2. Open the lock page (from your saved URL, QR, or the explorer).
  3. When the unlock time has passed, click Claim / unlock.
  4. MetaMask must ask you to confirm withdraw on the locker. If it does not pop, the claim did not go on-chain.
  5. After the tx succeeds, tokens return to the owner wallet. Check the token (not only BNB) in MetaMask.

Vesting lock

Use the same button. The contract runs claimVested and sends only the amount that is currently releasable. You can claim again after later cycles. You do not need to claim at the exact timestamp.

If unlock time is still in the future, the contract reverts (BG: locked). The website will warn you. Do not expect tokens back early.

Extend the unlock date

Only the owner. Only forward. The contract requires newUnlockTime > currentUnlockTime. Nobody — not you, not BitLab — can shorten a live lock.

  1. On the lock page click Extend unlock.
  2. Enter a later datetime.
  3. Confirm extendUnlock in the wallet.

Transfer ownership (two-step)

A one-click transfer to a mistyped address would brick the lock. BitLab requires initiate + accept.

  1. Owner clicks Transfer ownership and pastes the new 0x / Solana address. Double-check it.
  2. Confirm in the wallet. The lock now has a pending owner. The old owner still controls it until accept.
  3. The new wallet connects, opens the same lock, and clicks Accept ownership.
  4. After that tx, only the new owner can withdraw, extend, or transfer.
If you type a dead address and they never accept, you still own the lock. If they accept, you cannot reverse it without them transferring back.

Renounce ownership

This sets the owner to the zero address. Nobody can withdraw after that. Use it only if the tokens are meant to stay locked forever (for example burned-from-circulation LP).

  1. Click Renounce.
  2. Check the warning box and type RENOUNCE.
  3. Confirm on-chain. Irreversible.
BitLab cannot undo a renounce. Tokens may be permanently unclaimable.

Fees

The service fee is never taken from the locked asset. You pay native coin to the FeeController’s treasury.

How the fee arrives: the locker forwards BNB to feeRecipient with an internal call. MetaMask Activity on the treasury often does not list that transfer. Check the native BNB balance and BscScan Internal Txns.

Fee changes: owner of FeeController calls proposeFees, waits 5 minutes, then applyFees. There is no max-fee cap. The website always reads the live on-chain fee before you sign.

0.1 BNB in wei: 100000000000000000

What you can lock

Same product surface on every supported chain. DEX support is adapter-based.

ERC-20 / SPL / Token-2022 — Token locks

Team, treasury, investor, and ecosystem allocations. Simple date release or the full vesting engine. You deposit the tokens into the BitLab vault. They cannot be moved until unlock (or each vesting claim).

V2 LP tokens — AMM liquidity

PancakeSwap V2, Uniswap V2, Sushi, Raydium AMM/CPMM and other fungible LP tokens move into the locker. The DEX pool continues to hold the underlying pair; you lock the LP receipt that represents your share.

V3 / V4 / CLMM / DLMM — Position locks

Uniswap V3/V4, Pancake V3, Raydium CLMM, and Meteora DLMM positions are designed to be locked as NFTs so the pool stays intact. V1 ships token + V2/AMM LP vaults. Position NFT locking is reserved for a later version — V1 will not accept those NFTs. Existing V1 token/LP locks are unaffected when V2 ships.

Security model

Designed so a website breach cannot drain locks. If an attacker replaced this UI, they still could not call withdraw on your lock: only the owner wallet can, and only after unlock time.

Immutable locker cores

V1 rules cannot be upgraded. There is no proxy, no upgradeTo, no admin that can point the vault at new code. All upgrades are deployed as the next version (V1 → V2, then V3). Existing locks stay on the version that created them. BitLab cannot silently rewrite unlock dates, seize locked tokens, or change withdrawal rules on a lock that is already live. A compromised admin key or a later “upgrade” cannot reach funds sitting in V1.

No admin rug switch

There is no BitLab emergencyWithdraw on customer assets. Rescue is limited to untracked dust that is not part of a lock’s accounting. The owner of FeeController can change fees (after a 5-minute public timelock) and the fee recipient. They cannot pull your locked tokens.

Two-step ownership transfer

Transfers require initiate + accept so a typo cannot send a lock to a dead address. Until the new wallet accepts, the original owner still owns the lock.

Forward-only extensions

newUnlockTime must be greater than the current unlock. Even the owner cannot shorten a commitment. That is how a public lock stays a commitment instead of a promise.

Other contract rules

What this website cannot do

Public verification

Every lock has a permanent page with owner, amount, unlock time, history, and a QR code. Embed a widget:

Read API shape: GET /locks/{chain}/{id} and GET /api/public-locks. That legacy Read API is kept. Aggregators should use GET /v1/token/{chain}/{address} or GET /v1/aggregator/token/{chain}/{address}. Full spec is in the API section below and at API Docs.

Always compare the page to the locker on the explorer. If they disagree, the explorer wins.

Records you must keep

Locks are enforced by strict smart contracts. Remember your lock information and keep it safe.

FAQ

Does BitLab hold my keys?

No. Non-custodial. If you lose the owner wallet, BitLab cannot recover the tokens.

Can I lock one token on BNB and another on Ethereum with the same locker?

You deploy the same Solidity on each chain. One TokenLocker per chain serves every ERC-20 / BEP-20 on that chain. BNB mainnet locker is the address above.

Why did MetaMask on the treasury not show the fee?

Fees are internal BNB transfers. Open Internal Txns on BscScan and check the native BNB balance on the correct network.

Can I use a Safe as treasury?

Only if that Safe is already deployed on that chain. An Ethereum-only Safe does not receive BNB Chain fees in a way you can operate.

Will new locks show in Token locked for other people?

Yes when the public lock record is saved (this host’s API or the share URL payload). Always keep the share link.

Is Solana live?

The UI supports Solana reads. The Anchor program must be deployed and its id placed in BG_CONTRACTS.solanaProgram before Solana locks move coins.

Troubleshooting

Create a lock · Security snapshot · © 2026 BitLab Token & Liquidity Locker