---
name: lumen-genesis-mint
description: |
  Use when the user wants to mint a Lumen Genesis NFT on BNB Chain with their Binance Agentic Wallet.
  Lumen Genesis is 3,333 generative studies of light on black. The mint is free (gas only), 1 per wallet
  and 1 per X account, and only Binance Agentic Wallets holding a .ai Agent ID can mint.
  Triggers: lumen, lumen genesis, mint a lumen, LumenGenesisNFT, lumen mint prompt, lumen referral.
metadata:
  version: '0.1.0'
  requires:
    bins: [baw]
  install:
    - kind: node
      package: '@binance/agentic-wallet'
      bins: [baw]
      label: Binance Agentic Wallet CLI
---

# Lumen Genesis mint skill

Lumen Genesis is an NFT collection on **BNB Smart Chain (chainId 56)**: 3,333 generative studies of light, in seven
lights (Gold, Aurora, Prism, Violet, Azure, Ember, White). The mint is **free: the user pays network gas only**.

| | |
|---|---|
| Supply | **3,333** Lumens. 333 are a team reserve (33 tradable at launch, 300 locked 180 days in the contract) |
| Price | **Free**, gas only. The mint sends **0 BNB** and needs **no token approvals** |
| Limit | **1 per wallet** and **1 per X account** |
| Who can mint | **Binance Agentic Wallets holding a .ai Agent ID** (checked by the contract) |
| X check | Follow **@LumenGenesisNFT** (x.com/LumenGenesisNFT); verified by entering your X handle on the site |
| Referral | Each friend who mints from the user's link earns the user **50,000 LUMEN** (only if the user already minted, and while the 150,000,000 LUMEN pool lasts) |
| Market | On the site, in BNB. Minimum listing **$0.50**; **5% royalty** on every sale |
| LUMEN | 1,000,000,000 fixed supply, **0% trade tax**: 30% (300,000,000) NFT holder airdrop, 30% (300,000,000) liquidity (PancakeSwap, LP burned; held in a 30-day timelock first), 15% (150,000,000) referral pool, 12% (120,000,000) ecosystem & market rewards (locked 6 months), 3% (30,000,000) community X airdrop (launch post, unlocked in the project wallet), 10% (100,000,000) team (locked 12 months) |
| Holder airdrop | **300,000,000 LUMEN** to wallets holding **2 or more Lumens at the snapshot** (1 Lumen gets none). Share scales with count and rarity: Common 1, Uncommon 2, Rare 4, Epic 8, Legendary 20. Claim opens **after the snapshot**, once per wallet |

You, the agent, run the whole mint. The only thing the user does is follow @LumenGenesisNFT on X and send you
their X username. You check the follow with the Lumen API, get a one-time voucher (valid 30 minutes) with ready
calldata, then preview and send that one call through the user's Agentic Wallet with `baw`.

## Rules for you, the agent

- **Only act when the user asks.** Never mint, buy, list or sign anything on your own initiative, and don't schedule repeat runs.
- **Get an explicit "yes" before signing.** Show the user the preview (to, value, function) and wait for a clear yes before `baw contract-call execute`.
- **Never ask for a private key or seed phrase**, and never paste one anywhere. `baw` signs inside the Agentic Wallet.
- **No profit promises.** Lumens are collectibles and LUMEN is a referral reward. Never promise a price, floor, resale, value or rewards. The contracts are unaudited.
- Stop and tell the user if anything looks different from this page: a value above 0 BNB, an approval request, a different contract than the one on the site, or a chain other than BNB Smart Chain (56).

## 0. Preflight

```bash
npm i -g @binance/agentic-wallet   # once
baw auth signin --json             # follow the sign-in steps it prints
baw wallet address --json          # the wallet that will mint
```

The wallet must hold a **.ai Agent ID**. Without one the contract refuses the mint (`NoAgentId`): tell the user to
claim a .ai Agent ID in Binance Wallet first. It also needs a little BNB for gas.

## 1. Follow on X and verify (do this first, every time)

1. **Right away, send the user this link** and ask them to follow, then reply with their X username:
   `https://x.com/LumenGenesisNFT` (opens the X app on phones)
2. When they send the username, check the follow:

```bash
curl -s -X POST <API>/api/x/verify -H 'Content-Type: application/json' -d '{"handle":"<username>"}'
```

   - `"following": true` → tell the user "✓ @username is following" and keep the `session` value.
   - `"following": false` → tell them they're not following yet, resend the link, and check again after they follow
     (the follower list refreshes about every minute; respect `retryIn`).
   - `x_used` / `alreadyClaimedBy` another wallet → this X account already minted; stop.

## 1b. Get the voucher and calldata

```bash
curl -s -X POST <API>/api/voucher -H 'Content-Type: application/json' \
  -d '{"session":"<session>","wallet":"<agent wallet>","referrer":"<optional 0x referrer>"}'
```

**Referral:** if the user came from a referral link (a URL with `?ref=0x…`, e.g. `https://lumen-genesis.pages.dev/?ref=0xABC…`)
or gave you a referrer address, put that address in `"referrer"`. The API then returns `mintRef(...)` calldata with the
referrer inside, and the referrer earns 50,000 LUMEN for this mint. Leave it out if there is no ref, and never use the
user's own wallet as the referrer.

The response has `to` (the Lumen Genesis contract), `value` ("0") and `calldata`. Check that `to` matches the
Lumen Genesis contract published by @LumenGenesisNFT and that the wallet is the user's Agentic Wallet.
`<API>` is the `api` value in `config.js` on the Lumen Genesis site.

## 2. Preview

```bash
baw contract-call preview --binanceChainId 56 \
  --from <agent wallet> --to <Lumen Genesis contract> \
  --value 0 --inputData <calldata from 1b> --json
```

Tell the user in plain words: "Mint 1 free Lumen Genesis NFT to <wallet>. It sends 0 BNB; you pay gas only. Shall I
send it?" Then wait.

## 3. Execute (only after a clear yes)

```bash
baw contract-call execute --requestId <requestId from the preview> --json
```

If the Binance app asks for a confirmation, tell the user to approve it there. Share the transaction hash and the
BscScan link when it lands.

## Errors

| Error | Meaning | What to tell the user |
|---|---|---|
| `MintClosed` | the mint isn't open | wait for the start on @LumenGenesisNFT |
| `VoucherExpired` | more than 30 minutes passed | get a new prompt on the site |
| `AlreadyMinted` | this wallet already minted | 1 per wallet |
| `NoAgentId` | no .ai Agent ID in this wallet | claim one in Binance Wallet |
| `BadSignature` | the prompt was for another wallet, or was changed | get a fresh prompt for this wallet |
| `SoldOut` | all 3,333 are minted | the site's market may have Lumens for sale |

## After the mint

**Holder airdrop.** Wallets that held 2 or more Lumens at the snapshot share 300,000,000 LUMEN, weighted by rarity
(Common 1, Uncommon 2, Rare 4, Epic 8, Legendary 20); a wallet with 1 Lumen gets none. After the snapshot, the claim is
`claimHolder(uint256 amount, bytes32[] proof)` on the Lumen Genesis contract, with the amount and proof published for
each wallet (the site's My Lumens → Claim LUMEN does this). If the user asks you to claim from the Agentic Wallet,
preview that call with `baw contract-call preview` (0 BNB, no approvals), show it, and execute only after a clear yes.
Don't promise what the LUMEN will be worth.

After the mint, give the user their own referral link: `https://lumen-genesis.pages.dev/?ref=<their wallet>` (the site's Mint tab shows it too, with a Copy button). Each friend who mints from it earns the user
50,000 LUMEN while the pool lasts. Buying and listing happen on the site's market in BNB (minimum $0.50, 5% royalty);
only do those if the user asks, and with the same preview-then-yes rule.

Unaudited · No promises · Not financial advice.
