# NFT Bot 监控

### NFT Bot 监控是什么？

NFT Bot 监控主要围绕着 NFT 价格变更，订单变更，以及所属权的转移而设计的。

### NFT Bot 监控典型场景

1. 监控 NFT 地板价的变更
   1. BAYC NFT 地板价大于 100E
   2. BAYC NFT 地板价小于 100E
2. 监控 NFT 的转移
   1. BAYC #1 从 A 地址转移到 B 地址
3. 监控指定 NFT 的所有者收到的 offer
4. 监控目标地址买入 NFT 的行为

**支持的数据源**

| 数据源      | 类型       | 稳定性 |
| -------- | -------- | --- |
| Ethereum | on chain | 极高  |

#### 支持的数据源

| 数据源      | 类型 | 稳定性 |
| -------- | -- | --- |
| Ethereum | 链上 | 极高  |

#### 支持的 Market

| Market  | 稳定性 |
| ------- | --- |
| OpenSea | 高   |

*\*我们正在计划支持更多的 Market。*

### 如何配置 NFT Bot 监控？

登录 ChainBot 平台后，右上角 "Create Bot" -> "NFT Monitor"。

<figure><img src="/files/OT8MKHdFtS8FqIWAG4Bj" alt=""><figcaption><p>Create a NFT Bot</p></figcaption></figure>

#### Info 说明

| 字段名      | 说明                           | 是否必填 |
| -------- | ---------------------------- | ---- |
| Name     | Bot 监控名称                     | 是    |
| Chain    | 选择已支持的链                      | 是    |
| Contract | 选择 NFT 合约，ERC 721 或 ERC 1155 | 是    |
| Market   | NFT 交易市场                     | 是    |
| Event    | NFT 行为类型                     | 是    |
| Tags     | Bot 监控 tags，利于搜索             | 是    |

#### Event 类型

<table><thead><tr><th width="313">类型</th><th>说明</th></tr></thead><tbody><tr><td>Listed</td><td>NFT上架</td></tr><tr><td>MetadataUpdated</td><td>NFT 的 metadata 更新</td></tr><tr><td>Sold</td><td>NFT 被卖出</td></tr><tr><td>Transferred</td><td>NFT 所有权被转移</td></tr><tr><td>ReceivedBid</td><td>收到的竞价</td></tr><tr><td>ReceivedOffer</td><td>收到的出价</td></tr><tr><td>Cancelled</td><td>NFT 被取消上架</td></tr><tr><td>FloorPrice</td><td>collection 地板价</td></tr></tbody></table>

#### Conditions 说明

| 参数           | Symbol       | 说明                 |
| ------------ | ------------ | ------------------ |
| makerAddress | ==           | maker 地址           |
| takerAddress | ==           | taker 地址           |
| price        | >, >=, <, <= | NF                 |
| token\_id    | ==           | 目标 NFT 的 token\_id |

#### 模板变量

<table><thead><tr><th width="283">变量</th><th width="467">说明</th></tr></thead><tbody><tr><td>$taker.address</td><td>taker 地址</td></tr><tr><td>$maker.address</td><td>maker 地址</td></tr><tr><td>$collection.slug</td><td>交易平台的nft 标识</td></tr><tr><td>$item.opensea_link</td><td>到 OpenSea 的 item 页面的链接</td></tr><tr><td>$item.token_id</td><td>需要从 item.nft_id 中取出来最后的token id</td></tr><tr><td>$payment.symbol</td><td>支付 Symbol 一般为 WETH</td></tr><tr><td>$payment.price</td><td>取 sale_price 或者 base_price ，需要用户处理 decimals ；</td></tr><tr><td>$payment.usd_price</td><td>对应原始的 payment.usd_price 字段</td></tr><tr><td>$quantity</td><td>token 的数量，721协议都是1，1155可能是多个</td></tr><tr><td>$transaction.hash</td><td>链上 transaction hash</td></tr><tr><td>$transaction.timestamp</td><td>RFC3339</td></tr><tr><td>$subscriptions.name</td><td>Bot 监控名称</td></tr><tr><td>$monitor.market</td><td>Bot 监控的 market，目前为 OpenSea</td></tr><tr><td>$event.type</td><td>取值 Listed 等</td></tr><tr><td>$event.timestamp</td><td>RFC3339</td></tr><tr><td>$chain.explore</td><td>公链的浏览器前缀，<a href="https://etherscan.io/">https://etherscan.io/</a></td></tr></tbody></table>

#### 默认告警模板

{% code overflow="wrap" lineNumbers="true" %}

```shell
[{$bot.name}]
New {$nft.event} event for {$nft.slug} #{$nft.token_id} at {$nft.market}
View : {$nft.market_link}
Time: {$alert.time}
```

{% endcode %}

[了解告警通知模板？](/zh/advanced-features/alarm-notification-template.md)

#### 通知消息示例

> \[ Listed monitor for BAYC ]\
> New Listed event for friendship-bracelets-by-alexis-andre #24805 at opensea\
> View : <https://opensea.io/collection/friendship-bracelets-by-alexis-andre>\
> Time: 2022-11-30T14:07:23+08:00\
> Created By [ChainBot.io](https://www.chainbot.io)

#### NFT Bot 监控案例

[NFT Bot 监控](/zh/basic-usage/bots/nft-bot.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chainbot.io/zh/basic-usage/bots/nft-bot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
