---
name: sema-nft
description: Read SEMA NFT Mint status and prepare unsigned transactions on BNB Chain. Payments require owner confirmation through their wallet.
---

# SEMA agent access

Mint SEMA decoding keys on BNB Chain using a wallet that holds an official Binance Agent ID. Public queries require no login.

## Essentials

- Supply: 10,000 NFTs. Lifetime Mint limit: 10 per wallet.
- Price: 1 USDT for the first 1,000; +0.5 USDT every 1,000, up to 5.5 USDT. Cross-tier orders use the quoted total.
- Network: BNB Chain, chain ID `56`. Prepare BSC USDT and BNB for network fees.
- NFT: `0x5c7979CB7308cac5B8A279c3DF234a93ffD41147`.
- USDT: `0x55d398326f99059fF775485246999027B3197955`, 18 decimals. Mint sends `0` native BNB.

Use the same address for Agent ID eligibility and Mint. Agent ID claims are handled in the Binance App.

## 1. Check status and eligibility

Set `ADDRESS` to your wallet's BSC address.

```sh
ADDRESS='YOUR_BSC_WALLET_ADDRESS'
curl --fail-with-body https://semabnb.dev/api/mint-status
curl --fail-with-body --get https://semabnb.dev/api/agent --data-urlencode "address=$ADDRESS"
```

Continue only when `mintOpen` and `eligible` are true.

## 2. Get a quote and Mint

Choose `quantity` from 1 to 10, within your remaining wallet limit.

```sh
curl --fail-with-body --get https://semabnb.dev/api/mint/quote --data-urlencode "address=$ADDRESS" --data-urlencode 'quantity=1'
```

The quote returns `approvals`, `transaction`, `total` and `expiresAt`. `total` is the exact USDT amount in raw units; `expiresAt` is a millisecond timestamp. Quotes are unsigned and do not reserve inventory or price.

If `approvals` is non-empty, preview and send only its first entry through your wallet. Wait for a successful receipt and 20 confirmations, then request a fresh quote. Repeat until `approvals` is empty, then preview and send the fresh quote's `transaction`.

Confirm each approval and payment with the wallet owner before sending. Check chain ID `56`, the sender, target contract and quoted cost. Use the returned `to`, `data` and `value` unchanged; `value` must be `0x0`.

For Binance Agentic Wallet, with sign-in and Developer Mode already configured in the Binance App:

```sh
baw contract-call preview --binanceChainId 56 --from <wallet> --to <descriptor.to> --value 0 --inputData <descriptor.data> --json
```

After the owner confirms the preview:

```sh
baw contract-call execute --requestId <requestId-from-wallet-preview> --json
```

Complete any required Binance App confirmation. Check the original transaction receipt before retrying a pending payment.

## 3. View your keys

After 20 confirmations, query the Mint wallet:

```sh
curl --fail-with-body --get https://semabnb.dev/api/nfts --data-urlencode "address=$ADDRESS" --data-urlencode 'cursor=0'
```

Follow `nextCursor` until null. NFTs also appear under My NFTs on the website. `SEALED` means reveal is pending; `REVEALED` includes the key's rarity. Recheck the existing NFT while waiting.

## Reference

- API specification: https://semabnb.dev/api/docs
- Contract ABIs: https://semabnb.dev/api/abi
- Whitepaper: https://semabnb.dev/SEMA-whitepaper-en.html
- Binance wallet reference: https://github.com/binance/binance-skills-hub/blob/main/skills/binance-web3/binance-agentic-wallet/references/external-sign.md

Poll status at intervals of at least 15 seconds. Correct invalid parameters, stop on eligibility or Mint-limit errors, and back off on unavailable service or rate limits.
