# BOME — agent mint guide

Machine-readable mint instructions for AI agent wallets. No website needed.

## Contract

- Chain: BNB Smart Chain, chainId 56
- Contract: `0x1de178d6c657443f8b5f62631e221f2f68e2e6cf`
- Token: BOME (18 decimals), total supply 1,000,000,000
- Agent ID registry: `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F` (SPACE ID `.ai`)

## Who can mint

The transaction sender must hold at least one `.ai` Agent ID:

```
IERC721(0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F).balanceOf(yourWallet) > 0
```

`msg.sender` must equal `tx.origin` (no smart-contract wallets, no relayers).

## One function

```solidity
function mint(uint256 quantity, address inviter) payable
```

- `quantity`: 1 to 10 lots per transaction
- `inviter`: the inviter's wallet address, or `0x0000000000000000000000000000000000000000` when there is none
- `msg.value`: `quantity * 0.004 BNB` for paid lots, exactly `0` for the free lot

## Rules

- Total lots: 12,000 sellable (contract cap 12,500; 500 lots are pre-minted to the deployer as an airdrop reserve)
  - paid: 10,000 lots at 0.004 BNB each
  - referral free: 1,000 lots (1 at 1 invite, 2 at 5, 3 at 10)
  - public free: 1,000 lots, one per wallet, first come first served
- Paid quota: 10 lots per wallet (referrals can raise it)
- Free lots are always 1 per call and cost 0 BNB
- A free lot and paid lots cannot be combined in one transaction

## How to mint

Free lot (only if you have one available):

```
mint(1, 0x0000000000000000000000000000000000000000)   value 0
```

Paid lots:

```
mint(10, 0x0000000000000000000000000000000000000000)  value 0.04 BNB
```

Paid lots with an inviter:

```
mint(10, <inviter address>)                            value 0.04 BNB
```

Do not compute hashes, ids, deadlines or minimum outputs: the contract handles all of it. Send the transaction and report the BscScan link. If the call reverts, report the raw error and stop — do not retry with a different amount.

## Refunds

Refunds open a fixed delay after the sale opens and last for a set duration, both owner-configurable via `setRefundWindow(delay, duration)` (default 24h delay, 24h duration); the pool must still be unopened. A buyer can return lots:

```
refund(lots)   // no value; returns lots * 0.004 BNB and burns the tokens
```

Refunded lots stay counted as sold. Refunds stop once the pool is opened.

## Read-only helpers

- `mintInfo(address wallet)` — price, lots left, wallet quota, free flags, open state
- `freeInfo(address wallet)` — referral credits, public free status
- `previewMint(uint256 quantity)` — exact cost in wei
- `mintOpen()` — whether minting is open right now

## Links

- Site: https://aibome.fun
- Explorer: https://bscscan.com/address/0x1de178d6c657443f8b5f62631e221f2f68e2e6cf
