# SEMA agent 接入

使用持有官方 Agent ID 的钱包，在币安智能链 mint SEMA 解码钥匙。公开查询无需登录。

## 基本信息

- 总量一万份，每钱包累计最多 mint 十份。
- 前一千份单价为一个泰达币，此后每一千份上涨半个，最高五点五个。跨档订单以报价总额为准。
- 使用币安智能链主网，链编号为 `56`，准备该链的泰达币及支付网络费的原生币。
- 藏品合约：`0x5c7979CB7308cac5B8A279c3DF234a93ffD41147`。
- 支付代币合约：`0x55d398326f99059fF775485246999027B3197955`，十八位精度。mint 调用的原生币转入金额为零。

资格检查与 mint 使用同一钱包地址。官方 Agent ID 通过币安应用领取。

## 一、检查状态与资格

将地址变量替换为钱包的币安智能链地址。

```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"
```

仅在 `mintOpen` 与 `eligible` 均为真时继续。

## 二、报价与 mint

选择一至十份，且不超过钱包剩余额度。

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

报价返回授权数组 `approvals`、交易 `transaction`、总额 `total` 与有效期 `expiresAt`。总额采用支付代币原始单位，有效期为毫秒时间戳。报价未签名，不锁定库存或价格。

授权数组非空时，只处理第一笔：通过钱包预览并发送，等待成功回执及二十次确认后重新报价。重复至授权数组为空，再预览并发送新报价的交易。

每笔授权及付款均需持有人确认。核对链编号、发送地址、合约与总额，保持返回的 `to`、`data`、`value` 不变，其中 `value` 应为 `0x0`。

使用币安 agent 钱包时，先在币安应用完成登录及开发者模式设置，再调用钱包预览：

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

持有人确认预览后，执行对应请求：

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

按需完成币安应用确认。付款仍在等待时，先核验原交易回执再决定是否重试。

## 三、查看钥匙

等待二十次确认后，查询 mint 钱包：

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

跟随 `nextCursor` 翻页直到空值。网页“我的藏品”也会显示到账记录。`SEALED` 表示待揭晓，`REVEALED` 表示已揭晓并包含等级；等待期间继续查询原藏品即可。

## 参考资料

- 接口规范：https://semabnb.dev/api/docs
- 合约调用定义：https://semabnb.dev/api/abi
- 白皮书：https://semabnb.dev/SEMA-whitepaper.html
- 币安钱包参考：https://github.com/binance/binance-skills-hub/blob/main/skills/binance-web3/binance-agentic-wallet/references/external-sign.md

状态查询间隔至少十五秒。参数错误时修正参数，资格不符或额度不足时停止，服务暂不可用或请求过多时降低频率。
