跳至主要內容

地址监控 🔥

tokenview大约 6 分钟

地址监控 🔥

「地址监控」功能应用场景 当被监控地址的交易成功上链后,会发生余额变化。Tokenview 的后台系统就会通过 webhook 的方式,把此交易的相关消息 POST 到您设置的Webhook URL 上。

支持公链 BTC, ETH (ERC20 token), TRX (TRC20 token, TRC10 token), LTC, BCH, DOGE, ETC, DASH, OMNI-USDT, RVN, BSC, ARB。其他公链数据也可以根据客户需要开通支持。

备注:

  1. 需指定公链名称和地址 hash
  2. 地址规则
    • ETH的地址中大写字母需全部转成小写;
    • 监控 USDT ERC20 地址, 公链简称是 eth
    • 监控 USDT TRC20 地址, 公链简称是 trx

Webhook 签名 & 安全

为了确保您的 Webhook 安全,您可以使用您唯一的 Webhook 签名密钥生成 HMAC SHA-256 哈希码来验证它们是否来自 Tokenview。

如何获取 signing key

导航至 services 后台的项目设置open in new window页面。 单击“获取”:将显示签名密钥并可以复制以供使用。

获取SignKey
获取SignKey

验证收到的签名

每个出站请求的header中都包含经过哈希处理的身份验证签名(X-Tokenview-Signature)。它是通过将您的签名密钥和请求正文连接在一起来计算的。 然后使用 HMAC SHA256 哈希算法生成一个哈希值。
为了验证签名来自 Tokenview,您需要生成 HMAC SHA256 哈希并将其与收到的签名进行比较。

请求头示例
Content-Type: application/json;charset=UTF-8
X-Tokenview-Signature: your-hashed-signature

签名验证示例(python)
import hmac
import hashlib
# abcde是要加密的内容,即webhook消息的body
data=bytes('abcde','utf-8')
key=bytes('signkey string','utf-8')
# digest为signature,即X-Tokenview-Signature的值
digest=hmac.new(key,data,digestmod=hashlib.sha256).hexdigest()
print(digest) 

设置 webhook URL

POST https://services.tokenview.io/vipapi/monitor/setwebhookurl?apikey={apikey}

参数

被监控地址余额发生变化后,Tokenview 后台系统会把消息POST到您设置的 Webhook URL。您的服务器收到通知后,响应码需是200,并且应答body里必须返回非空文本信息,比如ok。如发送失败,会自动重试3次。

备注:

  1. 请在API 服务系统后台获取自己激活状态的 APIKEY,网址: https://services.tokenview.ioopen in new window

  2. 不同项目的APIKEY不通用。

余额变化推送的消息为 json 文本, 格式如下
{
    "address":"0xab5c66752a9e8167967685f1450532fb96d5d24f", // 被监控地址hash
    "txid":"0xdf244cbc60f4220e5d90de0833b647bd7f376f5132314a1672dd9b5128302659", // 交易hash
    "time": 1592015420, // 交易发生时间UTC
    "confirmations": 1, // 通知第一次发出时此交易的确认数
    "value": "-0.002135942", // 余额变化数量
    "coin": "ETH",  // 交易发生在哪条链上
    "height": 10254665, // 交易被打包的区块高度
    "tokenAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7", // 如果是token余额发生变化,这个字段就不是null, 表示token的地址
    "tokenSymbol": "USDT", // token的符号单位
    "tokenValue": "-159" // token的数量变化
}

Request

curl --location 'https://services.tokenview.io/vipapi/monitor/setwebhookurl?apikey={apikey}' \
--header 'Content-Type: text/plain' \
--data 'https://9aa90255-9cde-45e-83a6-2916cd2c3725.mock.pstmn.io/webhook'

Response

{
    "code": 1,
    "msg": "success",
    "data": null
}

查询 webhook URL

GET https://services.tokenview.io/vipapi/monitor/getwebhookurl?apikey={apikey}

参数

不同项目APIKEY不通用。

Request

curl --location https://services.tokenview.io/vipapi/monitor/getwebhookurl?apikey={apikey}

Response

{
    "code": 1,
    "msg": "success",
    "data": "https://9aa90255-9cde-453e-83a6-2916cd2c3725.mock.pstmn.io/webhook"
}

增加监控地址

GET https://services.tokenview.io/vipapi/monitor/address/add/{公链简称小写}/{地址}?apikey={apikey}

参数

  • {公链简称小写}:btc, eth, trx, ltc, bch, doge, etc, dash, usdt, rvn, bsc, arb。其他公链数据也可以根据客户需要开通支持。
  • {地址}:对应公链的地址哈希;
  • {apikey}: 可在Tokenview API 后台管理系统获取激活状态的 APIKEY: https://services.tokenview.ioopen in new window
不用项目APIKEY不通用。

Request

curl --location https://services.tokenview.io/vipapi/monitor/address/add/eth/0x21c0afc5d6110323f04b369788e78fb60bfa02b8?apikey={apikey}

Response

{
    "code": 1,
    "msg": "success",
    "data": null
}

删除监控地址

GET https://services.tokenview.io/vipapi/monitor/address/remove/{公链简称小写}/{地址}?apikey={apikey}

参数

  • {公链简称小写}:btc, eth, trx, ltc, bch, doge, etc, dash, usdt, rvn, bsc, arb。其他公链数据也可以根据客户需要开通支持。
  • {apikey}: 可在Tokenview API 后台管理系统获取激活状态的 APIKEY: https://services.tokenview.ioopen in new window

备注:

需指定公链简称小写和地址哈希

Request

curl --location https://services.tokenview.io/vipapi/monitor/address/remove/eth/0x21c0afc5d6110323f04b369788e78fb60bfa02b8?apikey={apikey}

Response

{
    "code": 1,
    "msg": "success",
    "data": null
}

查询监控地址列表

GET https://services.tokenview.io/vipapi/monitor/address/list/{公链简称小写}?page={页码}&apikey={apikey}

参数

  • {公链简称小写}:btc, eth, trx, ltc, bch, doge, etc, dash, usdt, rvn, bsc, arb。其他公链数据也可以根据客户需要开通支持。
  • {apikey}: 可在Tokenview API 后台管理系统获取激活状态的 APIKEY: https://services.tokenview.ioopen in new window

备注:

需指定公链简称小写和页码。

Request

curl --location https://services.tokenview.io/vipapi/monitor/address/list/eth?page=0&apikey={apikey}

Response

{
    "code": 1,
    "msg": "success",
    "data": {
        "page": 1,
        "size": 3,
        "total": 3,
        "list": [
            "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c",
            "0xab5c66752a9e8167967685f1450532fb96d5d24f",
            "0xea674fdde714fd979de3edf0f56aa9716b898ec8"
        ]
    }
}

查询 webhook 调用历史

GET https://services.tokenview.io/vipapi/monitor/webhookhistory/{公链简称小写}?page={页码}apikey={apikey}

参数

  • {公链简称小写}:btc, eth, trx, ltc, bch, doge, etc, dash, usdt, rvn, bsc, arb。其他公链数据也可以根据客户需要开通支持。
  • {页码}:1,2,3,... 50
  • {apikey}: 可在Tokenview API 后台管理系统获取激活状态的 APIKEY: https://services.tokenview.ioopen in new window

备注:

  • 需指定公链简称小写和页码。
  • 返回某个公链所有的调用记录,不能指定查询单个地址调用记录。
  • 每页返回固定100条调用记录。

Request

curl --location https://services.tokenview.io/vipapi/monitor/webhookhistory/eth?page=1&apikey={apikey}

Response

{
    "code": 1,
    "msg": "success",
    "data": {
        "page": 1,
        "size": 2,
        "total": 2,
        "list": [
            {
                "coin": "ETH",
                "url": "https://8c986322-5e36-4169-b05e-3b40a04e5a.mock.pstmn.io",
                "txid": "0xad0fe776f17f4e217af51661dd2cb5d8bfb7b5eddd1a6356c3ba2cf07ea937a5",
                "response": "ok",
                "request": "{\"address\":\"0x2eaa82538bc040e2df9196208d23b87958a99bb6\",\"coin\":\"ETH\",\"confirmations\":1,\"height\":16502465,\"time\":1674874571,\"txid\":\"0xad0fe776f17f4e217af51661dd2cb5d8bfb7b5eddd1a6356c3ba2cf07ea937a5\",\"value\":\"-0.00585248433044248\"}",
                "amount": null,
                "time": 1674874571,
                "address": "0x2eaa82538bc040e2df9196208d23b87958a99bb6",
                "confirmations": 0,
                "tryTimes": 0,
                "height": 16502465,
                "statusCode": 200
            },
            {
                "coin": "ETH",
                "url": "https://8c986322-5e36-4169-b05e-3b40a04e5a.mock.pstmn.io",
                "txid": "0xad0fe776f17f4e217af51661dd2cb5d8bfb7b5eddd1a6356c3ba2cf07ea937a5",
                "response": "ok",
                "request": "{\"address\":\"0x2eaa82538bc040e2df9196208d23b87958a99bb6\",\"coin\":\"ETH\",\"confirmations\":1,\"height\":16502465,\"time\":1674874571,\"txid\":\"0xad0fe776f17f4e217af51661dd2cb5d8bfb7b5eddd1a6356c3ba2cf07ea937a5\",\"value\":\"-0.00585248433044248\"}",
                "amount": null,
                "time": 1674874571,
                "address": "0x2eaa82538bc040e2df9196208d23b87958a99bb6",
                "confirmations": 0,
                "tryTimes": 3,
                "height": 16502465,
                "statusCode": 200
            }
        ]
    }
}

应答字段说明

{
    "coin": "ETH",  // 公链种简称
    "url": "https://8c986322-5e36-4169-b05e-3b40a04e5a.mock.pstmn.io", // webhook URL
    "txid": "0xad0fe776f17f4e217af51661dd2cb5d8bfb7b5eddd1a6356c3ba2cf07ea937a5", // 余额变化时的交易hash
    "response": "ok", // 调用webhook后,收到的响应内容
    "request": "{\"address\":\"0x2eaa82538bc040e2df9196208d23b87958a99bb6\",\"coin\":\"ETH\",\"confirmations\":1,\"height\":16502465,\"time\":1674874571,\"txid\":\"0xad0fe776f17f4e217af51661dd2cb5d8bfb7b5eddd1a6356c3ba2cf07ea937a5\",\"value\":\"-0.00585248433044248\"}", // webhook的消息内容
    "amount": null,  // 已弃用该字段
    "time": 1674874571,  // 交易发生的时间戳
    "address": "0x2eaa82538bc040e2df9196208d23b87958a99bb6", // 发生余额变化的地址hash
    "confirmations": 0, // 发出通知时交易hash的确认数
    "tryTimes": 3,  // 值为0表示第一次发出通知,您的服务器就已经返回200 OK,值大于0,表示重试的次数
    "height": 16502465, // 交易所在的块高
    "statusCode": 200   // 您的服务返回的http 应答代号
}

上次编辑于: