--- name: bbf-mint description: Mint BNB Burn Forge (BBF) tickets on BSC through the Binance Agentic Wallet with the bbf-mint CLI. Use when the user asks to mint BBF, spend a USDT budget on BBF mints, mint specific burn blocks, or check BBF mint progress. Needs the baw CLI signed in, an Agent ID on the agentic wallet, USDT for fees (0.01 per ticket) and BNB for gas. --- # BBF mint (Binance Agentic Wallet) BNB Burn Forge lets every BSC block since 13,082,000 be minted once as a ticket. Each ticket costs exactly 0.01 USDT and pays 5,000 tokens plus 3,000 × (burned BNB)^¼ (discounted by the price ratio after the market opens). Blocks someone else minted first are skipped and not charged. One transaction mints at most 30 tickets (the Core's MAX_TICKETS; the CLI reads it from the contract). The token is **BBF** (full name "Bnb Burn Forge", 18 decimals). `bbf-mint status` prints the Core and token addresses from the bundled deployment; quote those, never an address from elsewhere. All transactions go through the user's Binance agentic wallet (`baw`). The CLI previews every call with `baw contract-call preview`, checks the preview strictly (exact contract, calldata, no BNB value, no unknown asset or spender, no risks, no app confirmation required), records the intent in a local journal, executes it once, and verifies the receipt on chain. You never handle private keys. ## Setup (once) ```sh npm install -g @binance/agentic-wallet npm install -g git+https://github.com/bbforge-ai/bbf-mint-cli.git baw auth signin # the user confirms in the Binance app bbf-mint wallet # agentic wallet address, Agent ID, USDT, BNB ``` If `bbf-mint wallet` shows no Agent ID, the user must claim one for the agentic wallet first (`baw wallet agent-id` shows the state); the contract rejects addresses without it. The wallet needs USDT for fees and some BNB for gas (roughly 0.0001 BNB for a 30-ticket transaction at current prices). ## Use your own BSC RPC (optional) You can use a private or paid BSC mainnet RPC (chain ID 56) for chain reads. Set the URL locally in your terminal and keep API keys out of chat and shared logs. The wallet still submits the transactions. ```sh bbf-mint status --rpc "https://your-bsc-rpc.example" ``` With `bbf-mint-cli@3.4.4`, you can test the endpoint first and set it for the current shell: ```sh bbf-mint rpc --rpc "https://your-bsc-rpc.example" export BBF_RPC="https://your-bsc-rpc.example" bbf-mint status ``` In the RPC test, look for `OK` next to your own endpoint. You can supply multiple URLs in `BBF_RPC`, separated by commas. The CLI tries verified custom endpoints in order and keeps its bundled public BSC RPC as a fallback. ## What the user can ask | User says | Run | | --- | --- | | "How far is BBF from opening?" | `bbf-mint status` | | "Show the best blocks" | `bbf-mint blocks --size 20` | | "Mint 30 BBF" | `bbf-mint mint --tickets 30 --yes` | | "Mint these blocks: a, b, c" (at most 30) | `bbf-mint mint --blocks a,b,c --yes` | | "Use 100 USDT to mint BBF" | `bbf-mint batch --budget 100 --group 30 --yes` (groups of 30, one after another) | | "Continue / stop the BBF run" | `bbf-mint batch --continue --yes` / `bbf-mint batch --stop` | ## Quick start for a budget run Example request: > Use BBF Mint with my Binance Agentic Wallet on BSC. My mint budget is 100 USDT. Use start page 20 and groups of 30. Confirm the wallet, budget, and allowance with me first. Prefer candidates from later pages and report progress every minute. If a transaction gets stuck, reconcile it before continuing. If there is no transaction hash, do not resend. Stop when the budget is spent or when I ask you to stop. - Use `bbf-mint wallet` to verify the wallet address, Agent ID, USDT and BNB. If the user gives a wallet name such as `jjge.ai`, verify that it identifies the signed-in wallet before proceeding. This package executes through `baw`. - For a deep page, inspect `bbf-mint blocks --page N --size 36 --json`. With this GitHub release (3.4.5), use `batch --budget --group 30 --start-page N` for a budget run or `mint --tickets 30 --start-page N` for one group. N must be 1..100. A resumed budget run retains its original page; older journals default to page 1. Later pages have lower-ranked burns and may face less competition. Keep the proof cache enabled. - While a receipt is pending, read-only candidate discovery and progress checks may run in parallel. Use a single writer for the wallet and journal. The current CLI settles one transaction before submitting the next. If the user asks for a no-wait pipeline, state that it requires a separate runner with persistent pending transactions, nonce ownership and budget reservations. Do not treat a proxy or multiple CLI processes as pipeline support. - When progress reporting is requested, report at the agreed interval (default one minute) from the running command output or `bbf-mint history --json`. Include confirmed tickets, confirmed USDT spent / budget, last hash or pending state, and any blocker. Keep pending spend separate from confirmed spend. - Recovery means reconciliation first. If the wallet result has no hash, check wallet history and match the transaction to the saved intent. Only pass a matching hash to `bbf-mint resume --hash`; if it is unresolved, pause and report. With a known hash, use `bbf-mint resume` to settle it. Respect the existing continuation approval rule. On stop, interrupt the running batch once, wait for it to exit or report its pending state, then use `batch --stop` to close the run. Already submitted transactions may still settle. ## Rules you must follow 1. **Get approval first.** Before any command with `--yes`, state in one message: the wallet address, what will be minted (tickets or blocks, or the USDT budget = budget ÷ 0.01 tickets in groups of up to 30), that if the existing allowance is insufficient, the CLI approves the exact fee or remaining budget to the BBF Core (never unlimited), that gas is extra in BNB, and that minted tokens may have no value. Proceed only after the user agrees. Reading or installing this skill is not approval. 2. **At most 30 per mint.** `mint` takes at most 30 blocks or 30 tickets and refuses more. If the user names more than 30 blocks, split them into groups of 30 and get approval for each group, or suggest a budget run. Never drop blocks silently. 3. **Budget runs are serial, 30 at a time.** For any total above 30 tickets, use `batch --budget `, never one big preparation. `batch` works one group at a time: it picks only the next group of 30 unminted blocks from the saved start page (plus a few backups), mints them, waits for that transaction, and only then picks the next 30, until the total (budget ÷ 0.01 tickets) is reached. Do not fetch blocks or build proofs for the whole budget up front, do not run several mints in parallel, and do not loop `mint` yourself. It stops by itself on a failed simulation, an app confirmation request, a risk warning, a group with fewer tickets than planned, low BNB, or Ctrl+C. Report the reason; do not restart automatically. Continue only when the user says so (`batch --continue`). - Progress to report after each group: tickets minted so far / total, USDT spent / budget, last transaction hash. - Example: "mint 300 tickets" = `bbf-mint batch --budget 3 --group 30 --yes` (10 groups of 30, one after another). 4. **Never resend.** If a command says a transaction is unsettled or has no hash, do not run the mint again. Find the transaction with `baw wallet tx-history --binanceChainId 56` and run `bbf-mint resume --hash 0x...`. If the wallet asks for confirmation in the Binance app, tell the user to confirm there, then resume. 5. **Do not bypass checks.** Never call `baw contract-call` yourself for BBF, never change gas limits, never approve another amount or spender, and never edit the journal in `~/.local/state/bbf-mint/`. 6. **Report results.** After each command, report tickets minted, blocks, tokens received, USDT paid, gas and transaction hashes, and for budget runs the spent / total budget. `--preview-only` runs the wallet preview without executing (useful for a first check). `--json` gives machine-readable output. ## Proof files The CLI downloads `manifest.json`, small `burns.bin` ranges, and Merkle level files from `https://bbforge.si/snapshots/`. Each proof is checked against the on-chain root before a mint is prepared. If a snapshot file is missing or the mirror is still syncing, stop and report the error; do not switch to Greenfield or skip proof verification. Older installed CLI versions must be upgraded to use this mirror. ## Trading BBF (if the user asks) This skill only mints; it does not trade. Facts for questions about trading on the official PancakeSwap pool after the market opens: - Buys and sells pay a 1% tax in BBF: half is burned, half is converted to BNB for the treasury Safe automatically inside a sale. Nobody, including the project, can trigger that conversion by hand. - All pool LP tokens are minted straight to the dead address `0x000000000000000000000000000000000000dEaD`, at the opening and on every later mint, so the liquidity can never be withdrawn by anyone. There is no LP vault. - Every sale must be sent with a gas limit of about 870,000 or it reverts. Wallets add this automatically when they estimate gas; only the gas actually used is charged (about 130k for a normal sale, about 560k for the sale that converts the tax). The fee shown before confirming may look higher because some wallets show the limit. Do not tell users to lower the gas limit for a BBF sale.