---
name: miner
description: >-
  Mint and stake Miner NFTs on BNB Smart Chain (chainId 56) with a Binance
  Agentic Wallet (baw) that holds a verified SPACE ID .ai Agent ID. Stake to
  earn equal-weight 65% mint-fee dividends (claim anytime) and exclusive hold
  tier pools (4%/6%/10%) that settle every 5 minutes; empty tier (0 wallets for 1 continuous hour) rolls accrued BNB into the 65% stake pool. Max 30 miners per wallet.
---
# Miner FOMO — Agent mint & stake on BNB Chain

- **Website:** `https://minerfomo.xyz` (Pages: `https://minerfomo.pages.dev`; Hostinger DNS pending)
- **Skill URL:** `https://minerfomo.xyz/skills/miner/SKILL.md`
- **Chain:** BNB Smart Chain Mainnet (`chainId: 56`)
- **Eligibility:** Wallet must hold a verified Binance **`.ai` Agent ID** NFT (`0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F`, `balanceOf > 0`) to **mint** or **stake**. Ordinary wallets cannot mint.
- **Verified Mainnet Contracts (BSC 56):**
  - **Miner NFT:** `0xE865a0383A2647a8313D420436324eF5e10Acf75`
  - **Agent registry:** `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F`
  - **Owner fee (15%):** project owner address (not displayed on site)
  - **Owner (admin):** `0x8B10e7FcD836237CAf53bc0e6760c5F6AEA304ec`
  - **Deploy tx:** `0x19518b6969d1d63736316e38de8b3d2696bb0f9c04e03391ab93b52ed8e2d9eb`

## Economics

- **Mint price:** `0.001` BNB per miner.
- **Supply:** `10,000` miners.
- **No rarity:** every miner has equal weight.
- **Per wallet:** max **30** minted (`.ai` Agent wallet).
- **Fee split per mint:**
  - **15%** → project owner (immutable in contract)
  - **65%** → staked dividend pool (equal per staked miner; **real-time accrual; claim anytime**)
  - **4%** → tier10 pool (holders with `balanceOf` 10–19)
  - **6%** → tier20 pool (holders with `balanceOf` 20–29)
  - **10%** → tier30 pool (holders with `balanceOf` ≥30)
  - Tiers are **mutually exclusive** for receiving: a wallet only shares the pool matching its current holding bracket; under 10 → no tier share.
  - Tier pools **settle every 5 minutes**, then accrued share is **claimable** via `claimTiers()`.
  - **Empty-tier rollup:** if a tier has **0 wallets for 1 continuous hour**, its accrued BNB **rolls into the 65% stake pool**.
- **Dividends:** only **staked** miners earn the **65%** pool. Unstaked = **zero** from 65%.

## Prerequisites

1. Install / use Binance Agentic Wallet CLI (`baw`) with **Developer Mode** enabled (`baw wallet settings --json` → `devMode.enabled`).
2. Sign in: `baw auth signin` → `baw auth verify` (as needed).
3. Confirm BSC address: `baw wallet address --json` (EVM / chainId `56`).
4. Fund that address with enough BNB for `0.001` BNB + gas.
5. Confirm Agent ID: `balanceOf(yourAddress) > 0` on `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F`.

## One-shot Agent mint (`baw` + `mint()`)

`mint()` selector: `0x1249c58b`. Pay **exactly or more than** `0.001` BNB (wei `1000000000000000`).

```bash
node -e '
const { execSync } = require("child_process");
const NFT = "0xE865a0383A2647a8313D420436324eF5e10Acf75";
const MINT_SELECTOR = "0x1249c58b";
const PRICE_WEI = "1000000000000000"; // 0.001 BNB
(async () => {
  const addrOut = JSON.parse(execSync("baw wallet address --json").toString());
  const wallet =
    addrOut.data?.address ||
    addrOut.data?.addresses?.find((a) => String(a.binanceChainId) === "56" || a.chainType === "EVM")?.address ||
    addrOut.address;
  if (!wallet) throw new Error("no baw wallet address");
  console.log("from", wallet);
  const preview = JSON.parse(
    execSync(
      `baw contract-call preview --binanceChainId 56 --from ${wallet} --to ${NFT} --value ${PRICE_WEI} --inputData ${MINT_SELECTOR} --json`,
      { maxBuffer: 10 << 20 }
    ).toString()
  );
  console.log(JSON.stringify(preview, null, 2));
  const requestId = preview.data?.requestId || preview.requestId;
  if (!requestId) throw new Error("preview failed — check Agent ID, BNB balance, Developer Mode, mint cap");
  console.log("Review risks with the user, then run:");
  console.log(`baw contract-call execute --requestId ${requestId} --json`);
})().catch((e) => {
  console.error(e);
  process.exit(1);
});
'
```

After the user explicitly confirms the preview risks:

```bash
baw contract-call execute --requestId <requestId> --json
```

Never auto-execute without confirmation. Never print or store private keys.

## Stake / claim (after mint)

| Action | Selector | Notes |
| --- | --- | --- |
| `stake(uint256 tokenId)` | `0xa694fc3a` | Requires `.ai` Agent ID + ownership. Unstaked = no 65% dividends. |
| `claim(uint256 tokenId)` | `0x379607f5` | 65% pool; real-time accrual. |
| `claimAll()` | `0xd1058e59` | Claim all staked token rewards. |
| `claimTiers()` | `0x26ac13c9` | After 5-minute settlement, claim exclusive-tier share. |
| `settleTiers()` | `0x9135d40a` | Anyone can call when due. |
| `unstake(uint256 tokenId)` | `0x2e17de78` | Claims then unstakes. |
| `liveBoard()` | `0x1c544d1e` | View helper for site (minted, pools, tier counts, nextSettle). |

Pack `inputData` as `selector + BigInt(tokenId).toString(16).padStart(64, "0")` for tokenId methods, then `baw contract-call preview ... --value 0`.

## Safety

- Always `preview` → show `parsedTx` / `risks` → user yes → `execute`.
- Mint / stake **require** `.ai` Agent ID on the registry above.
- Max **30** miners per `.ai` wallet.
- This Skill does not open mint on your behalf beyond preparing the reviewed `baw` call.
