观察账号接入方式二(藏品系列接入)
接入要求
1、Web3资产支持 GET 请求方式
2、接⼝可使⽤ curl 访问
3、图⽚需要可使⽤提供的地址访问,且必须为 https,否则可能会造成图⽚显示异常
4、若您的地址有防⽕墙,请将以下IP加入白名单中:
101.132.77.44 101.132.122.106 101.132.122.49
106.15.91.193 139.196.124.185 120.55.190.164
47.100.240.73 47.100.1.155 47.100.54.9 47.101.31.59
139.224.235.230
1、接入效果
图1:Web3资产对接完成后,会在“资产-Web3”界面内显示所有已接入的平台
图2:接入后,用户在导入观察账号时,只需选择平台,填写正确的账号地址,即可查看该账号下的所有资产
图3:导入成功后可查看该地址下的所有藏品系列及数量
图4:点击单个系列,可查看该地址持有当前系列的全部藏品
图5:点击单个藏品,可查看该藏品的详细信息
图6:可查看藏品的交易历史记录
2、藏品系列列表
2.1、请求字段
我们将使用如下字段请求用户持有的藏品系列列表数据
例如:https://yourdomain?wallet=0x76213f1d3e7b240399acd5fcde419828785e0823&pageNo=1&pageSize=20
参数 | 类型 | 描述 |
---|---|---|
wallet | String | 要查询的账号地址,必填,例如:0x76213f1d3e7b240399acd5fcde419828785e0823 |
pageNo | String | 页码,从1开始,必填 |
pageSize | String | 每页数量,必填 |
2.2、响应字段
参数 | 类型 | 描述 |
---|---|---|
hasNext | boolean | 是否有下一页,必填 |
data | [object] | 响应成功时,返回该地址的藏品系列列表,必填 |
响应成功后,data列表中的每一个数据需要包含以下参数:
参数 | 类型 | 描述 |
---|---|---|
contractName | String | 藏品系列名称,必填 |
contract | String | 藏品系列合约地址,必填 |
contractImage | String | 藏品系列的图片地址,必填 图⽚需要可使⽤提供的地址访问,且必须为 https,否则可能会造成图⽚显示异常 |
holderCount | integer | 当前地址持有该系列的藏品数量,必填 |
2.3、响应示例
请使用以下示例给出的结构返回
{
"hasNext": true,
"data": [
{
"contract": "0xabe733fee0a825b140a0ca10a2c4cda87ad8f2f2",
"contractName": "系列名称1",
"contractImage": "https://img.com/img.png",
"holderCount": 5
},
{
"contract": "0xabe733fee0a825b140a0ca10a2c4cda87ad8f2hh",
"contractName": "系列名称2",
"contractImage": "https://img.com/img.png",
"holderCount": 6
}
]
}
以下为响应成功后各参数在APP中的展示位置
3、藏品合约详情
3.1、请求字段
我们将使用如下字段请求藏品合约详情的数据
例如:https://yourdomain?contract=0x76213f1d3e7b240399acd5fcde419828785e0823
参数 | 类型 | 描述 |
---|---|---|
contract | String | 要查询的合约地址,必填,例如:0x76213f1d3e7b240399acd5fcde419828785e0823 |
3.2、响应字段
参数 | 类型 | 描述 |
---|---|---|
contractName | String | 藏品系列名称,必填 |
totalSupply | integer | 当前系列藏品的总供应量 |
holderCount | integer | 当前地址持有该系列的藏品数量,必填 |
holders | integer | 当前系列藏品的总持有者 |
transferCount | integer | 当前系列藏品的总交易数 |
nftType | String | 当前系列的合约类型,例如:ERC721 |
website | String | 合约的官网 |
3.3、响应示例
请使用以下示例给出的结构返回
{
"contractName": "系列名称1",
"totalSupply": 1000,
"holderCount": 100,
"holders": 123,
"transferCount":10000,
"nftType": "ERC721",
"website":"www.nft.com"
}
以下为响应成功后各参数在APP中的展示位置
4、藏品列表
4.1、请求字段
我们将使用如下字段请求某一地址持有的某一系列的藏品数据,或者请求某一系列的全部藏品信息,或者请求某一账号下的全部藏品数据
参数 | 类型 | 描述 |
---|---|---|
wallet | String | 要查询的账号地址,例如:0x76213f1d3e7b240399acd5fcde419828785e0823账号地址和合约地址必有其一 若不带账号地址,表示查询该合约的全部藏品信息 若两者都有,表示查询该账号下该合约的藏品信息 |
contract | String | 要查询的系列合约地址,例如:0xedd73c5f32a287b9d3ea36d7cd29c2de6cb0dad9账号地址和合约地址必有其一 若不带合约地址,表示查询账号下的全部藏品信息 若两者都有,表示查询该账号下该合约的藏品信息 |
pageNo | String | 页码,从1开始,必填 |
pageSize | String | 每页数量,必填 |
4.2、响应字段
参数 | 类型 | 描述 |
---|---|---|
hasNext | boolean | 是否有下一页,必填 |
totalCount | integer | 当前地址持有的藏品的总数,必填 |
data | [object] | 响应成功时,返回该地址持有的该系列的藏品列表,必填 |
响应成功后,data列表中的每一个数据需要包含以下参数:
参数 | 类型 | 描述 |
---|---|---|
tokenId | String | 藏品ID,必填 |
tokenName | String | 藏品名称,必填 |
tokenImage | String | 藏品的图片地址,必填 图⽚需要可使⽤提供的地址访问,且必须为 https,否则可能会造成图⽚显示异常 |
4.3、响应示例
请使用以下示例给出的结构返回
{
"hasNext": true,
"totalCount":150,
"data": [
{
"tokenName": "藏品名称1",
"tokenImage": "https://img.com/img1.png",
"tokenId": 123
},
{
"tokenName": "藏品名称2",
"tokenImage": "https://img.com/img2.png",
"tokenId": 456
}
]
}
以下为响应成功后各参数在APP中的展示位置
5、藏品详情
5.1、请求字段
我们将使用如下字段请求某一个藏品的详情数据
例如:https://yourdomain?contract=0x76213f1d3e7b240399acd5fcde419828785e0823&tokenid=123
参数 | 类型 | 描述 |
---|---|---|
contract | String | 要查询的系列合约地址,必填,例如:0xedd73c5f32a287b9d3ea36d7cd29c2de6cb0dad9 |
tokenid | String | 要查询的藏品id,必填,例如:123 |
5.2、响应字段
参数 | 类型 | 描述 |
---|---|---|
nftType | String | 合约类型,例如:ERC721 |
tokenName | String | 藏品名称,必填 |
tokenImage | String | 藏品的图片地址,必填 图⽚需要可使⽤提供的地址访问,且必须为 https,否则可能会造成图⽚显示异常 |
walletAddress | String | 当前持有者地址,必填 |
description | String | 藏品描述 |
mintAt | integer | 藏品铸造时间 (毫秒级时间戳) |
minter | String | 藏品铸造者地址 |
5.3、响应示例
请使用以下示例给出的结构返回
{
"nftType": "ERC721",
"tokenName": "系列名称2",
"tokenImage": "https://img.com/img2.png",
"walletAddress": "0xedd73c5f32a287b9d3ea36d7cd29c2de6cb0dad9",
"description": "藏品描述",
"mintAt": 1691320262000,
"minter": "0xedd73c5f32a287b9d3ea36d7cd29c2de6cb0dad9"
}
以下为响应成功后各参数在APP中的展示位置
6、藏品交易历史
6.1、请求字段
我们将使用如下字段请求某一藏品的交易历史
例如:
参数 | 类型 | 描述 |
---|---|---|
contract | String | 要查询的合约地址,必填,例如:0x76213f1d3e7b240399acd5fcde419828785e0823 |
tokenId | String | 藏品ID,必填 |
pageNo | String | 页码,从1开始,必填 |
pageSize | String | 每页数量,必填 |
6.2、响应字段
参数 | 类型 | 描述 |
---|---|---|
hasNext | boolean | 是否有下一页,必填 |
data | [object] | 响应成功时,返回该地址的藏品系列列表,必填 |
响应成功后,data列表中的每一个数据需要包含以下参数:
参数 | 类型 | 描述 |
---|---|---|
type | String | 交易类型,必填,例如:转移、铸造、销毁 |
txHash | String | 藏品系列名称,必填 |
txTime | integer | 交易时间 (毫秒级时间戳),必填 |
from | String | 当前交易的发起者地址,必填 |
to | String | 当前交易的接收者地址,必填 |
6.3、响应示例
请使用以下示例给出的结构返回
{
"hasNext": true,
"data": [
{
"type": "转移",
"txHash": "0x66befed99376e980fc0b6b50197897d3a9b4b31378d3d51c58db4f7472ee24fb",
"txTime": 1686538210000,
"from": "0xedd73c5f32a287b9d3ea36d7cd29c2de6cb0dad9",
"to": "0xd6ebd8520f53b19cf6cad304cf55efffdf3b8bbb"
},
{
"type": "铸造",
"txHash": "0x66befed99376e980fc0b6b50197897d3a9b4b31378d3d51c58db4f7472ee24fb",
"txTime": 1686538210000,
"from": "0xedd73c5f32a287b9d3ea36d7cd29c2de6cb0dad9",
"to": "0xd6ebd8520f53b19cf6cad304cf55efffdf3b8bbb"
}
]
}
以下为响应成功后各参数在APP中的展示位置