DNA注册认证服务
1.前言
1.1简介
欢迎使用“星火·链网”DNA(数字原生资产)公共服务网络-DNA注册认证平台。
DNA注册认证平台在星火·链网的主链,将基于DNA协议(基于ERC721
改造的星火链网数字原生资产协议)部署的DNA合约封装为标准化API
,提供链上注册数字资产、转移数字资产等接口服务,方便客户快速基于星火主链构建数字藏品等链上数字资产应用。
1.2编写目的
本文档旨在指导企业接入DNA注册认证平台,包含接入流程、开发规范。接入方式先通过DNA测试网络平台进行测试验证,接入测试成功后再接入超级节点正式系统,进入正式网络开发时,需与业务发展部同事联系确认。
1.3 环境
1)测试网:
DNA注册认证平台:https://test-dna.bitfactory.cn/manage
DNA官网:https://test-dna.bitfactory.cn
DNA浏览器:https://test-dnascan.bitfactory.cn
2)正式网:
DNA注册认证平台:http://dna.bitfactory.cn/manage
DNA官网:http://dna.bitfactory.cn
DNA浏览器:http://dnascan.bitfactory.cn
2.接入说明
接入说明:
第一步:创建星火账户及企业认证。
安装星火通,通过星火通账户创建星火企业账户,并完成企业认证。具体操作指引详见浏览器插件钱包章节。
注意:测试阶段需要在“星火测试网”创建星火通账户并完成企业认证;应用对接阶段需要重新在“星火主网”创建星火通账户并完成企业认证。
第二步:签署协议及申请准入。
完成相关协议签署后邮件联系运营方(邮箱),通过”DNA注册认证服务平台”提交星火账户(BID)、企业认证材料、应用平台资料,获取apiKey及apiSecret。
注意:
1.apiKey开发者的身份ID,可用于获取接入方的调用凭证(access_token),然后通过接口调用凭证再来访问数字资产注册认证平台API。
2.apiSecret开发者身份ID对应的密钥,配合API_key使用能够获取接口调用凭证,同时为了安全起见这个密钥需要妥善保管。
3.测试阶段登录测试网的DNA注册认证平台,应用对接阶段登录正式网的DNA注册认证平台。
第三步:接入测试。
在测试网进行应用接入测试,调用DNA相关接口。
第四步:应用对接。
通过正式网的DNA注册认证平台申请应用,获取apiKey/apiSecret,完成应用在正式环境对接。
2.1接入内容及流程
通过星火通插件钱包,出示可信企业凭证完成签名,登录DNA注册认证平台。申请应用获取apiKey/apiSecret。
第一步:登录平台
第二步:出示凭证
第三步:创建应用
第四步:按DNA注册认证平台要求完成应用创建
第五步:等待审核中
第六步:审核通过,获取apiKey/apiSecret
获得数据:智能合约地址、APIkey和secret、BID签名服务。根据DNA数字资产API接口完成企业端平台对接开发工作。
3.DNA注册认证平台接入
数字资产注册认证平台提供以下接口类型:
接口类型 |
描述 |
---|---|
账户管理类 |
用于用户账户的管理,包含创建,激活等操作 |
集合操作类 |
用于数字资产集合的操作,包含创建,查询等操作 |
资产操作类 |
用于数字资产的操作,包含注册,转移,销毁,查询等操作 |
DNA认证服务主要面向的是已有区块链网络提供注册服务的数字资产平台客户,DNA认证服务基于星火主链的公信力为客户提供“星火·链网“DNA数字资产认证,在提高终端用户数字资产安全性的同时,帮助实现统一的资产监管和互认互通。DNA认证服务数据采集采用接口报送的方式,由客户通过认证服务接口自主上报,向【DNA注册认证平台】报送数字资产基础数据及其关联事件数据,完成数字资产认证。
认证后的数字资产,支持用户通过DNA浏览器查询该数字资产详情、历史交易信息及当前持有账户信息。
DNA认证服务的应用方申请及管理需集成到DNA注册认证平台管理端,具体功能需求如下:
接口类型 |
服务名称 |
描述 |
---|---|---|
数据资产基础数据 |
数字资产集合信息认证 |
集合是一种资产类型的标记,方便认证资产进行分类和管理;实现数字资产认证前必须完成数字资产集合信息认证;不支持更新;支持批量认证,单次不超过100;不上链。 |
数字资产认证 |
应用方上传数字资产相关信息,完成数字资产认证;不支持更新;支持批量认证,单次不超过100;部分信息上链,DNABid及metadata hash上链。 |
|
数字资产相关事件数据 |
资产转移认证 |
应用方上传认证数字资产转移交易信息,完成资产转移认证;支持批量认证,单次不超过100;不支持更新;同步更新资产owner;不上链; |
资产销毁认证 |
应用方上传认证数字资产销毁交易信息,完成资产注销认证;支持批量认证,单次不超过100;不支持更新;同步更新资产owner;不上链 |
3.1 API认证机制
所有API的安全认证一律采用accessToken认证,服务端根据生成算法验证认证字符串的正确性。accessToken需要应用方通过apiKey和apiSecret调用相关平台接口获得,具有时效性,有效时间为2小时,过期后需要重新获取否则会调用接口失败,建议妥善保存并管理。
3.2操作指引
l 创建企业的星火账户
l 获取accessToken
l 创建用户的星火账户
l 创建数字资产集合
l 转移/销毁数字资产
3.3.接口认证及账户管理
3.3.1.获取access token
https://{{url}}/registration/api/v2/getToken
请求方式
GET
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
apiKey |
string |
是 |
应用审批通过后,每个应用对应一个apiKey,该字段为bid格式 |
apiSecret |
string |
是 |
应用审批通过后,每个应用对应一个私钥apiKey |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
accessToken |
string |
用于应用运营方用户(B端用户)调用接口 |
请求示例:
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBcHBJZCI6IjA0OWUyYzI0LWIxODYtNDZlZC04OWQ2LTBjYmMyM2FjMGJiOCIsIkJpZlVzZXJCaWQiOiJkaWQ6YmlkOmVmSjZSM1RqVE1HSkZLTkplOGJCenNKNmlpak5tRVBkIiwiZXhwIjoxNjU2NjczODM5LCJpYXQiOjE2NTY1ODc0Mzl9.4zNysZbpG8IUhNbGgp0oYy0cVM-T-N2J-xJhRc2ie3U"
}
3.3.2.生成公私钥
参照bif-offline-api 2.1章节
http://localhost:8888/bifApi/v1/createAddress
请求方式
POST
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
type |
Int |
是 |
必填, 加密类型1:ed25519 2:sm2 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
code |
int |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
message |
string |
200-OK |
|
data |
object |
||
data.encAddress |
string |
BID地址 |
|
data.encPublicKey |
string |
公钥 |
|
data.encPrivateKey |
string |
私钥 |
请求示例:
请求体:
{
"keyType":1
}
响应示例:
{
"code": 200,
"data": {
"encAddress": "did:bid:efdYBMrB1SNjXkV6bLy3w3Hww1Ntv2Up",
"encPrivateKey": "priSPKpY6TuPUZyCuJeaTpUJ1uRYVycNZmpmCuAxC6EhsjdhNX",
"encPublicKey": "b065668a006b9f68a9ac94f042161f3f0353ccfab47fa9199b8f1889b7d7659d875aa2"
},
"message": "ok"
}
3.3.3.构造合约签名交易
参照bif-offline-api 2.9 章节
http://localhost:8888/bifApi/v1/contract
请求方式
POST
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
senderAddress |
string |
是 |
交易源账号,即交易的发起方 |
senderPrivateKey |
string |
是 |
交易源账户私钥 |
contractAddress |
string |
是 |
合约账户地址xxxxxxxxx |
bifAmount |
int64 |
是 |
转账金额 ,参数为 0 |
feeLimit |
int64 |
是 |
参数为20000000 |
gasPrice |
int64 |
是 |
gas费,参数为200 |
nonce |
int64 |
是 |
nonce 需要从链上获取,参照接口3.5.11 |
input |
string |
是 |
待触发的合约的main()入参,为调用上链交易接口的入参数 |
input参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
fromAddress |
string |
是 |
用户数字资产持有者地址,保证都是应用下的账户 |
tokenBid |
string |
是 |
数字资产bid,每个数字资产绑定一个主链bid作为唯一识别。调用星火链网接口获取主链bid |
toAddress |
string |
是 |
用户接收数字资产的地址,保证都是应用下的账户 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
code |
int |
返回状态码,取值:200-成功,其他-错误 |
|
message |
string |
错误原因 |
|
data |
object |
||
data.serialization |
string |
序列化的交易数据 |
|
data.signData |
string |
交易签名数据 |
|
data.publicKey |
string |
公钥 |
请求示例:
请求体:
{
"senderAddress": "did:bid:efQ69GRtQUDR9SngdFKAv4owYyx5Fnko",
"senderPrivateKey":"priSPKi7K3nVAgtdCu9k9hVn4modxzFkd73JGsRrUYJR1T2RxM",
"contractAddress":"did:bid:efAHUyTyhCdUXSxb3znw3Jw4ET24GdCk",
"bifAmount":0,
"feeLimit":100000000,
"gasPrice":10,
"nonce":33,
"input":"{\"function\":\"safeTransferFrom(address,address,string)\",\"args\":\"did:bid:efQ69GRtQUDR9SngdFKAv4owYyx5Fnko,did:bid:ef1L8GBs9mWzeKXGiAZC877WResz6y7,'did:bid:efDtTjWBLkJjtRSJFMfBLNJ6LjnKu1tV'\"}"
}
响应示例:
{
"code": 200,
"data": {
"serialization": "0a286469643a6269643a65665136394752745155445239536e6764464b4176346f7759797835466e6b6f102122ee01080752e9010a286469643a6269643a65664148557954796843645558537862337a6e77334a7734455432344764436b1abc017b2266756e6374696f6e223a22736166655472616e7366657246726f6d28616464726573732c616464726573732c737472696e6729222c2261726773223a226469643a6269643a65665136394752745155445239536e6764464b4176346f7759797835466e6b6f2c6469643a6269643a6566314c38474273396d577a654b584769415a43383737575265737a3679372c276469643a6269643a65664474546a57424c6b4a6a7452534a464d66424c4e4a364c6a6e4b7531745627227d3080c2d72f380a",
"signData": "70b2ce583fb15b1e67e67e76ab3cfe491e819dbcfa3120946b98648be2f319961e3f148efc49c37dae8a6b71c17ac3c11a20caf58fa26513f86b0d4b209d7a09",
"publicKey": "b06566d8fb4a6dfbe0d5831e38f621391ad9191626f7e28c13d3a0482c52d5c9607b14"
},
"message": "ok"
}
3.3.4构造合约签名交易
参照bif-offline-api 2.9 章节
http://localhost:8888/bifApi/v1/contract
请求方式
POST
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
senderAddress |
string |
是 |
交易源账号,即交易的发起方 |
senderPrivateKey |
string |
是 |
交易源账户私钥 |
contractAddress |
string |
是 |
合约账户地址xxxxxxxxx |
bifAmount |
int64 |
是 |
转账金额 ,参数为 0 |
feeLimit |
int64 |
是 |
参数为20000000 |
gasPrice |
int64 |
是 |
gas费,参数为200 |
nonce |
int64 |
是 |
nonce 需要从链上获取,参照接口3.5.11 |
input |
string |
是 |
待触发的合约的main()入参,为调用上链交易接口的入参数 |
input参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
string |
是 |
数字资产bid,每个数字资产绑定一个主链bid作为唯一识别。调用星火链网接口获取主链bid |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
code |
int |
返回状态码,取值:200-成功,其他-错误 |
|
message |
string |
错误原因 |
|
data |
object |
||
data.serialization |
string |
序列化的交易数据 |
|
data.signData |
string |
交易签名数据 |
|
data.publicKey |
string |
公钥 |
请求示例:
请求体:
{
"senderAddress": "did:bid:efQ69GRtQUDR9SngdFKAv4owYyx5Fnko",
"senderPrivateKey":"priSPKi7K3nVAgtdCu9k9hVn4modxzFkd73JGsRrUYJR1T2RxM",
"contractAddress":"did:bid:efAHUyTyhCdUXSxb3znw3Jw4ET24GdCk",
"bifAmount":0,
"feeLimit":100000000,
"gasPrice":10,
"nonce":33,
"input":"{\"function\":\"burn(string)\",\"args\":\"'did:bid:efDtTjWBLkJjtRSJFMfBLNJ6LjnKu1tV'\"}"
}
响应示例:
{
"code": 200,
"data": {
"serialization": "0a286469643a6269643a65665136394752745155445239536e6764464b4176346f7759797835466e6b6f1021227f0807527b0a286469643a6269643a65664148557954796843645558537862337a6e77334a7734455432344764436b1a4f7b2266756e6374696f6e223a226275726e28737472696e6729222c2261726773223a22276469643a6269643a65664474546a57424c6b4a6a7452534a464d66424c4e4a364c6a6e4b7531745627227d3080c2d72f380a",
"signData": "2be1050f4663ebcce8a5afe4d76d83079575742f24842026cedd075a7df5ba81a0caecf2ce9de66bf0a37411fef1e422162c840dd07f7870a0578028fa53c502",
"publicKey": "b06566d8fb4a6dfbe0d5831e38f621391ad9191626f7e28c13d3a0482c52d5c9607b14"
},
"message": "ok"
}
3.3.5激活用户账户
https://{url}/registration/api/v2/account/upload
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于应用运营方用户(B端用户)调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
data |
object[] |
账户信息列表 |
Data结构如下
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
phone |
string |
是 |
手机号码使用sha256算法计算出来的hash值,应为64个字符 |
bid |
string |
是 |
应用的用户账户(C端用户) |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
请求示例:
请求体:
{
"data":[
{
"phone": "708df4830e76a78ab932f8f3e525ded9d3bb8f7f0b22585d8fe93b6afb2d07b3",
"bid":"did:bid:efuzR95CDvvDJSfQXX82JPksYoTuhBx"
},
{
"phone": "cf3adedc5c7c4cb57ed5f824bd05fd2033d00db81018ff2c26ad68fd60bcc3e3",
"bid":"did:bid:efuzR95CDvvDJSfQXX82JPksYoTuhBx2"
},
{
"phone": "89a4201ff428804909adc94fcccd4eaaa05add91f8681a606cdc45aa95793d63",
"bid":"did:bid:efuzR95CDvvDJSfQXX82JPksYoTuhBx3"
}
]
}
响应
{
"retCode": 200,
"retMsg": "ok"
}
3.4.集合操作
3.4.1.增加数字资产集合
https://{url}/registration/api/v2/series/add
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesIssuer |
string |
是 |
集合发行方 |
seriesName |
string |
是 |
集合名称,不超过50个字符 |
seriesDes |
string |
否 |
集合描述,不超过200个字符 |
externalUrl |
string |
否 |
外部连接,可以展示数字资产相关的网站 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
seriesId |
string |
集合ID |
|
createTime |
string |
集合创建时间 |
请求示例:
请求体:
{
"seriesIssuer":"央视",
"seriesName":"央视20220816",
"seriesDes":"萌萌图可爱填写超过",
"externalUrl":"http://www.baidu.com/"
}
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"seriesId": "0af84ba9-545b-40b3-854a-a94d6bb626d6",
"createTime": "2022-09-16 16:22:58"
}
3.4.2.查询数字资产集合列表
https://{url}/registration/api/v2/series/list/?pageNum=1&pageSize=20
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
pageNum |
string |
是 |
页码 |
pageSize |
string |
是 |
数量 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
total |
number |
总数 |
|
data |
object[] |
应用下的集合列表 |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesIssuer |
string |
集合发行方 |
|
seriesName |
string |
集合名称,不超过50个字符 |
|
seriesDes |
string |
集合描述,不超过200个字符 |
|
externalUrl |
string |
外部连接,可以展示数字资产相关的网站 |
|
createTime |
string |
集合创建时间 |
|
appId |
string |
应用id |
|
seriesId |
string |
集合id |
请求示例:
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"total": 1,
"data": [
{
"seriesId": "858fae5d-e6de-41b1-9c75-3be9dd4a69cb",
"appId": "6245b2ea-af5d-49f1-ab6b-5aa8fb401668",
"seriesIssuer": "发行方公司",
"seriesName": "并发集合12",
"seriesDes": "萌萌",
"externalUrl": "http://www.baidu.com/",
"createTime": "2022-07-09 19:30:04"
}
]
}
3.4.3.查询数字资产集合详情
https://{url}/registration/api/v2/series/{seriesId}
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesId |
string |
是 |
集合ID |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
seriesIssuer |
string |
集合发行方 |
|
seriesName |
string |
集合名称,不超过50个字符 |
|
seriesDes |
string |
集合描述,不超过200个字符 |
|
externalUrl |
string |
外部连接,可以展示数字资产相关的网站 |
|
createTime |
string |
集合创建时间 |
|
appId |
string |
应用id |
|
seriesId |
string |
集合id |
请求示例:
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"seriesId": "858fae5d-e6de-41b1-9c75-3be9dd4a69cb",
"appId": "6245b2ea-af5d-49f1-ab6b-5aa8fb401668",
"seriesIssuer": "发行方公司",
"seriesName": "并发集合12",
"seriesDes": "萌萌",
"externalUrl": "http://www.baidu.com/",
"createTime": "2022-07-09 19:30:04"
}
3.4.4.通过集合ID查询数字资产
https://{url}//registration/api/v2/:seriesId/dna
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesId |
string |
是 |
集合ID |
pageNum |
string |
是 |
页码 |
pageSize |
string |
是 |
每页条数 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
total |
number |
总数 |
|
data |
object[] |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesId |
string |
集合ID |
|
dnaName |
string |
数字资产名称,不超过50个字符 |
|
dnaNumber |
string |
数字资产编号,集合内不重复 |
|
dnaDes |
string |
数字资产描述,不超过200个字符 |
|
url |
string |
数字资产 url,建议尺寸:350px*350px |
|
hash |
string |
数字资产的hash值,建议采用sha256算法 |
|
displayUrl |
string |
数字资产缩略图url,建议尺寸:85px*85px |
|
dnaPrice |
number |
数字资产价格,单位:元(人民币) |
|
dnaCategory |
string |
资产类型:图片、音频、视频、品牌、会员资格、域名、社交、音乐、艺术品、PFP、3D |
|
extension |
string |
扩展字段,用户自定义,长度不超过1024个字符 |
|
tokenBid |
string |
数字资产bid |
|
createTime |
string |
创建时间 |
请求示例:
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"total": 12300,
"data": [
{
"tokenBid": "did:bid:ef7aD319SwD6NNVHHSQ2nDCxUeNzNtSf",
"dnaNumber": "000008",
"createTime": "2022-08-23 12:22:22",
"dnaName": "测试000008",
"dnaDes": "测试000008号数字资产",
"displayUrl": "http://ww.baidu.com",
"seriesId": "3ddfafca-5ec8-455f-a6ee-c5ccacb5aa7d",
"dnaCategory": "图片",
"hash": "123",
"extension": "扩展字符",
"url": "http://ww.baidu.com",
"dnaPrice": 199
}
]
}
3.5.资产操作
3.5.1.注册数字资产
https://{url}/registration/api/v2/chain/mintDNA
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesId |
string |
是 |
集合ID |
dnaName |
string |
是 |
数字资产名称,不超过50个字符 |
dnaNumber |
string |
是 |
数字资产编号,集合内不重复 |
dnaDes |
string |
否 |
数字资产描述,不超过200个字符 |
url |
string |
是 |
数字资产 url,建议尺寸:350px*350px |
hash |
string |
是 |
数字资产的hash值,建议采用sha256算法 |
displayUrl |
string |
是 |
数字资产缩略图url,建议尺寸:85px*85px |
toBid |
string |
是 |
用户数字资产持有者地址 |
dnaPrice |
number |
是 |
数字资产价格,单位:元(人民币) |
dnaCategory |
string |
是 |
资产类型:图片、音频、视频、品牌、会员资格、域名、社交、音乐、艺术品、PFP、3D |
extension |
string |
否 |
扩展字段,用户自定义,长度不超过1024个字符 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
messageId |
string |
消息id,用于查询处理结果 |
请求示例:
请求体:
{
"seriesId":"{{seriesId}}",
"dnaName": "测试000008",
"dnaNumber": "000008",
"dnaDes": "测试000008号数字资产",
"url": "http://ww.baidu.com",
"displayUrl": "http://ww.baidu.com",
"toBid": "did:bid:ef6tofMj7gv1rMFAPkh6rG4p7oXuXoFv",
"extension": "扩展字符",
"hash": "123",
"dnaPrice": 199,
"dnaCategory": "图片"
}
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"messageId": "cd02578529ef4258a301baf8728b7c96"
}
3.5.2.批量注册数字资产
https://{url}/registration/api/v2/chain/batchMintDNA
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
data |
object[] |
nft列表,,长度不超过100 |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesId |
string |
是 |
集合ID |
dnaName |
string |
是 |
数字资产名称,不超过50个字符 |
dnaNumber |
string |
是 |
数字资产编号,集合内不重复 |
dnaDes |
string |
否 |
数字资产描述,不超过200个字符 |
url |
string |
是 |
数字资产 url,建议尺寸:350*350 |
hash |
string |
是 |
数字资产图片哈希值 |
displayUrl |
string |
是 |
数字资产缩略图url,建议尺寸:85*85 |
toBid |
string |
是 |
用户数字资产持有者地址 |
dnaPrice |
number |
是 |
数字资产价格,小数点后保留2位,单位:元(人民币) |
dnaCategory |
string |
是 |
资产类型:图片、音频、视频、品牌、会员资格、域名、社交、音乐、艺术品、PFP、3D |
extension |
string |
否 |
扩展字段,用户自定义,长度不超过1024个字符 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
messageId |
string |
消息id,用于查询上链状态 |
请求示例:
请求体:
{
"data": [
{
"seriesId": "{{seriesId}}",
"dnaName": "萌萌图可爱填写超过",
"dnaNumber": "1396",
"dnaDes": "萌萌图可爱填",
"url": "http://ww.baidu.com",
"displayUrl": "http://ww.baidu.com",
"toBid": "did:bid:efpJ7ySzrVrRsi9kZpoCibmhQmrEJbp1",
"extension": "萌萌图可爱填写超过个字符萌萌图可",
"hash": "XMT7BQPcnd6eAxWnvACu",
"dnaPrice": 1.24,
"dnaCategory":"图片"
},
{
"seriesId": "{{seriesId}}",
"dnaName": "brx测试",
"dnaNumber": "02",
"dnaDes": "描述2",
"url": "http://ww.baidu.com",
"displayUrl": "http://ww.baidu.com",
"toBid": "did:bid:efpJ7ySzrVrRsi9kZpoCibmhQmrEJbp1",
"extension": "萌萌图可",
"hash": "XMT7BQPcnd6eAxWnvACu",
"dnaPrice": 1.24,
"dnaCategory":"图片"
}
]
}
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"messageId": "3407d9b6c4d941c1a51c9b2fe2a66a58"
}
3.5.3.转移数字资产接口
https://{url}/registration/api/v2/chain/transferDNA
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
string |
是 |
数字资产bid,每个数字资产绑定一个主链bid作为唯一识别。调用星火链网接口获取主链bid |
fromBid |
string |
是 |
用户数字资产持有者地址,保证都是应用下的账户 |
toBid |
string |
是 |
用户接收数字资产的地址,保证都是应用下的账户 |
serialization |
string |
是 |
序列化的交易数据,通过调用3.3.3接口获取 |
signData |
string |
是 |
交易签名数据,通过调用3.3.3接口获取 |
publicKey |
string |
是 |
公钥,通过调用3.3.3接口获取 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
messageId |
string |
消息id,用于查询处理结果 |
请求示例:
请求体:
{
"tokenBid":"did:bid:effDbwjLCPLypvHjGyDfwis3VHaNZmuT",
"fromBid":"did:bid:efyHiBTd4fbavvr86S7a5zFmBvMyAWhR",
"toBid":"did:bid:efULSmsPJDFR23rsjC8XrdfHZPYV62NU",
"serialization":"0a286469643a6269643a6566704a3779537a725672527369396b5a706f4369626d68516d72454a62703110cd0922ef01080752ea010a286469643a6269643a65664148557954796843645558537862337a6e77334a7734455432344764436b1abd017b2266756e6374696f6e223a22736166655472616e7366657246726f6d28616464726573732c616464726573732c737472696e6729222c2261726773223a226469643a6269643a6566704a3779537a725672527369396b5a706f4369626d68516d72454a6270312c6469643a6269643a656657623866786d6163654c656f434a31567359444e47556d4845396a4d33542c276469643a6269643a65665464746f55356f7a36316d4d613573474c486d7a7651415338357263756f27227d3080dac40938c801",
"signData":"068198e33d8783c1b3f723c6b75d5918dcc2fc465e52e4cd75c3180507db833ad44830869ff30ab4276dc14e02fd12ca3075d73df5b9fbfa5f52b5aba5265804",
"publicKey":"b0656658bd49d9e5318078bdf1833fcc750a80377ab635405517fc8c7874613008f50e"
}
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"messageId": "9c01734d9a864a06b79993d31c0dd967"
}
3.5.4.销毁数字资产接口
https://{url}/registration/api/v2/chain/burnDNA
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
string |
是 |
数字资产bid,每个数字资产绑定一个主链bid作为唯一识别。调用星火链网接口获取主链bid |
fromBid |
string |
是 |
用户数字资产持有者地址 |
serialization |
string |
是 |
序列化的交易数据 |
signData |
string |
是 |
交易签名数据 |
publicKey |
string |
是 |
公钥 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK400-accessToken必填400-accessToken不正确400-accessToken过期400-请检查请求参数,请求参数不能为空字符串400-数字资产bid不存在400-用户数字资产持有者不正确400-用户数字资产持有者不存在500-服务错误 |
|
messageId |
string |
消息id,用于查询处理结果 |
请求示例:
请求体:
{
"tokenBid":"did:bid:ef8By2pnXDkCtYePM14s1c4eJFMRwWiY",
"fromBid":"did:bid:efWb8fxmaceLeoCJ1VsYDNGUmHE9jM3T",
"serialization":"0a286469643a6269643a6566704a3779537a725672527369396b5a706f4369626d68516d72454a62703110cd0922ef01080752ea010a286469643a6269643a65664148557954796843645558537862337a6e77334a7734455432344764436b1abd017b2266756e6374696f6e223a22736166655472616e7366657246726f6d28616464726573732c616464726573732c737472696e6729222c2261726773223a226469643a6269643a6566704a3779537a725672527369396b5a706f4369626d68516d72454a6270312c6469643a6269643a656657623866786d6163654c656f434a31567359444e47556d4845396a4d33542c276469643a6269643a65665464746f55356f7a36316d4d613573474c486d7a7651415338357263756f27227d3080dac40938c801",
"signData":"068198e33d8783c1b3f723c6b75d5918dcc2fc465e52e4cd75c3180507db8",
"publicKey":"b0656658bd49d9e5318078bdf1833fcc750a80377ab635405517fc8c7874613008f50e"
}
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"messageId": "d711f409a48c42299aed1f1cc6672996"
}
3.5.5.通过用户bid查询数字资产
https://{url}/registration/api/v2/dna/:userId
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
userId |
string |
是 |
用户在星火主链的bid账户 |
pageNum |
string |
是 |
页码 |
pageSize |
string |
是 |
每页条数 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
total |
number |
总数 |
|
data |
object[] |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesId |
string |
集合ID |
|
dnaName |
string |
数字资产名称,不超过50个字符 |
|
dnaNumber |
string |
数字资产编号,集合内不重复 |
|
dnaDes |
string |
数字资产描述,不超过200个字符 |
|
url |
string |
数字资产 url,建议尺寸:350*350 |
|
hash |
string |
数字资产图片哈希值 |
|
displayUrl |
string |
数字资产缩略图url,建议尺寸:85*85 |
|
dnaPrice |
number |
数字资产价格 |
|
dnaCategory |
string |
资产类型:图片、音频、视频、品牌、会员资格、域名、社交、音乐、艺术品、PFP、3D |
|
extension |
string |
扩展字段,用户自定义,长度不超过1024个字符 |
|
tokenBid |
string |
数字资产bid |
|
createTime |
string |
创建时间 |
请求示例:
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"total": 114000,
"data": [
{
"seriesId": "074b82db-9fed-42da-9b0e-00c579260775",
"tokenBid": "did:bid:ef5KEkJMzFFFzV1j6Nv5ryj9tf6fs8NM",
"dnaNumber": "0291b994-d332-41ee-8ce8-1e8da940a01c",
"createTime": "2022-07-13 05:26:47",
"dnaName": "brx测试",
"dnaDes": "描述2",
"displayUrl": "描述2",
"dnaCategory": "图片",
"hash": "XMT7BQPcnd6eAxWnvACu",
"extension": "萌萌图可",
"url": "http://ww.baidu.com",
"dnaPrice": 1.24
}
]
}
3.5.6.查询数字资产详情
https://{url}/registration/api/v2/dnaDetail?tokenBid
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
string |
是 |
数字资产bid |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
data |
object |
对应数字资产详情 |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesId |
string |
集合ID |
|
dnaName |
string |
数字资产名称,不超过50个字符 |
|
dnaNumber |
string |
数字资产编号,集合内不重复 |
|
dnaDes |
string |
数字资产描述,不超过500个字符 |
|
url |
string |
数字资产 url,建议尺寸:350*350 |
|
hash |
string |
数字资产图片哈希值 |
|
displayUrl |
string |
数字资产缩略图url,建议尺寸:85*85 |
|
dnaPrice |
number |
数字资产价格 |
|
dnaCategory |
string |
资产类型:图片、音频、视频、品牌、会员资格、域名、社交、音乐、艺术品、PFP、3D |
|
extension |
string |
扩展字段,用户自定义,长度不超过1024个字符 |
|
tokenBid |
string |
数字资产bid |
|
createTime |
string |
创建时间 |
请求示例:
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"data": {
"tokenBid": "did:bid:efRDFqF54C89FhQcSnhKyY4CmViMDo5n",
"dnaNumber": "1111112",
"createTime": "2022-07-13 16:58:31",
"dnaName": "预发应用1集合1注册资产01",
"dnaDes": "描述",
"url": "http://ww.baidu.com",
"displayUrl": "http://ww.baidu.com",
"extension": "扩展字符",
"hash": "123",
"dnaPrice": 12,
"seriesId": "2075affd-181c-4654-a294-e31c580901aa",
"dnaCategory": "图片"
}
}
3.5.7.查询数字资产操作记录
https://{url}/registration/api/v2/record/:tokenBid
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
string |
是 |
数字资产bid |
pageNum |
string |
是 |
页码 |
pageSize |
string |
是 |
每页条数 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
total |
number |
总数 |
|
data |
object[] |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
dnaNumber |
string |
数字资产编号,集合内不重复 |
|
createTime |
string |
数字资产创建时间 |
|
txHash |
string |
链上操作的hash |
|
operation |
number |
数字资产操作类型,0-注册、1-转移、2-销毁、4-metadata |
|
fromBid |
string |
用户数字资产持有者地址 |
|
toBid |
string |
用户接收数字资产的地址 |
|
operationDate |
string |
操作时间 |
请求示例:
响应参数:
{
"retCode": 200,
"retMsg": "ok",
"total": 2,
"data": [
{
"txHash": "83ece7705bd3b358b7427edcf2cb75243e19777d2ca0a3978d86327a410e1ab5",
"operation": 4,
"fromBid": "did:bid:efVgVpyFFvG4xkYaEJkHF5bArV167wPv",
"toBid": "did:bid:efpJ7ySzrVrRsi9kZpoCibmhQmrEJbp1",
"operationDate": "2022-07-13 16:58:31",
"dnaNumber": "1111112",
"createTime": "2022-07-13 16:58:31"
},
{
"txHash": "878c4c520f75622b40829d4f73d7786c82b1a2359dc5a4f8d729ed28e6e87b42",
"operation": 0,
"fromBid": "did:bid:efVgVpyFFvG4xkYaEJkHF5bArV167wPv",
"toBid": "did:bid:efpJ7ySzrVrRsi9kZpoCibmhQmrEJbp1",
"operationDate": "2022-07-13 16:58:31",
"dnaNumber": "1111112",
"createTime": "2022-07-13 16:58:31"
}
]
}
3.5.8.查询上链状态
https://{url}/registration/api/v2/chain/status
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
string |
是 |
数据资产bid(或者数字资产对应主链上账户身份) |
type |
number |
是 |
1 注册资产 2 转移资产 3 销毁资产 |
txHash |
string |
是 |
对应注册,转移,销毁资产返回的交易hash,该字段可通过3.5.10接口获取 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
state |
number |
状态 0:已提交 1:上链失败 2: 上链成功 |
示例:
响应示例**
{
"retCode": 200,
"retMsg": "ok",
"state": 2
}
3.5.9.查询tokenbid的拥有者
https://{url}/registration/api/v2/chain/tokenOwnerOf/{tokenBid}
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
string |
是 |
链账户身份 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
bidAddress |
string |
返回参数:有结果:[did:bid:ef6tofMj7gv1rMFAPkh6rG4p7oXuXoFv]没结果则为空 |
请求示例:
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"bidAddress": "[did:bid:ef6tofMj7gv1rMFAPkh6rG4p7oXuXoFv]"
}
3.5.10.根据消息id获取处理结果
https://{url}/registration/api/v2/chain/message/{messageId}
请求方式
GET
Header
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
messageId |
string |
是 |
注册,转移,销毁接口返回的messageId |
响应参数
字段名 |
类型 |
描述 |
---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
retMsg |
string |
200-OK |
data |
object |
资产数据 |
data 结构如下:
字段名 |
类型 |
描述 |
---|---|---|
state |
number |
上链状态: 0 -已提交 1-上链失败 2-上链成功 |
info |
object[] |
资产信息数组 |
txHash |
string |
链上操作的hash,该字段可通过3.5.10接口获取 |
info 结构如下:
字段名 |
类型 |
描述 |
---|---|---|
seriesId |
string |
集合id |
tokenBid |
string |
数字资产bid |
message |
string |
错误信息 |
dnaNumber |
string |
数字资产编号 |
请求示例:
响应示例:
{
"retCode": 200,
"retMsg": "ok",
"data": {
"state": 2,
"info": [
{
"seriesId": "0af84ba9-545b-40b3-854a-a94d6bb626d6",
"tokenBid": "did:bid:efP7EGaAc7dsLyGkNPNDHFDV3GBA7FkD",
"dnaNumber": "1396",
"message": ""
}
],
"txHash": "35c3a00a4fe9ee1d195dbbeac3da7317c7a47cc214f318446ee3badb3370f9d9"
}
}
3.5.11.获取当前地址nonce值
https://{url}/registration/api/v2/chain/nonce
请求方式
GET
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
userBid |
string |
是 |
应用运营方的链账户身份 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
|
nonce |
number |
nonce值 |
请求示例:
响应示例
{
"retCode": 200,
"retMsg": "ok",
"nonce": 55
}
3.6.认证数字资产
须知:本部分面向非主链用户,主链用户无需关注。
3.6.1获取access token
此接口详见4.1获取access token部分。
3.6.2数字资产集合信息认证接口
https://{url}/auth/api/v1/series
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口,通过 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
data |
object[] |
认证集合列表,集合数量不超过100 |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesName |
String |
是 |
数字资产集合名称 |
seriesIssuer |
String |
是 |
数字资产集合发行方 |
externalUrl |
String |
否 |
该集合对应网站的外部链接 |
seriesDes |
String |
否 |
集合描述说明 |
seriesId |
Object[] |
是 |
应用方集合id或相互关联的子集合id |
totalDNA |
Number |
是 |
集合下发行数字资产数量 |
asset_contracts |
String |
是 |
与集合关联的合约地址 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
请求示例:
请求体:
{
"data": [
{
"seriesName": "花",
"seriesIssuer": "玫瑰",
"seriesId": ["21"],
"totalDNA": 5,
"asset_contracts": "did:bid:ef3zTQdpgnWcRRjX3x64E4a6MaRgeSi2",
"externalUrl": "https://www.baidu.com/",
"seriesDes": "我是一个花"
}
]
}
响应示例:
{
"retCode": 200,
"retMsg": "ok"
}
3.6.3数字资产认证接口
https://{url}/auth/api/v1/dna
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口,通过 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
data |
object[] |
认证数字资产列表,资产数量不超过100 |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
seriesId |
String |
是 |
资产所属集合id或子集合id |
dnaName |
String |
是 |
数字资产名称 |
dnaNumber |
String |
是 |
数字资产的编号 |
tokenBid |
String |
是 |
数字资产Bid |
dnaDes |
String |
否 |
数字资产描述说明 |
dnaType |
string |
是 |
数字资产类型,0-图片、1-视频、2-音频 |
url |
String |
是 |
数字资产图像的url,建议使用350*350的图像,需支持开放访问 |
displayUrl |
String |
是 |
数字资产缩略图URL,建议尺寸85*85,需支持开放访问 |
hash |
String |
是 |
数字资产图片哈希值 |
mintTime |
String |
是 |
数字资产链上mint交易时间 |
owner |
String |
是 |
数字资产所有者,指账户地址;数字资产发生相关交易后,平台更新维护owner信息 |
dnaPrice |
Number |
是 |
数字资产发行价格 |
extension |
String |
否 |
扩展字段,用户自定义,长度不超过1024个字符 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
请求示例:
请求体:
{
"data": [
{
"seriesId": "21",
"dnaName": "我的资产1",
"dnaNumber": "1-1",
"tokenBid": "did:bid:efE6X1PbTCneGX3zipFM28EpWasfKmCc",
"dnaType": "1",
"url": "https:///www.123.com/",
"displayUrl": "https://www.baidu.com/",
"hash": "1d04071bf2e5f7d14491ee67e0973332e0940ebf833c9a6c8e34a734609bc7d4",
"mintTime": "2022-07-14 10:29:10",
"owner": "bid:bid:ljcp:efPmKkmEoacVxRxB4aK1661148815779",
"dnaPrice": 20,
"dnaDes": "描述",
"extension": "扩展字段"
}
]
}
响应示例:
{
"retCode": 200,
"retMsg": "ok"
}
3.6.4数字资产转移认证接口
https://{url}/auth/api/v1/dna/transfer
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口,通过 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
data |
object[] |
数字资产转移列表,转移记录不超过100 |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
String |
是 |
数字资产BID,每个数字资产绑定一个子链bid作为唯一标识。 |
fromBid |
String |
是 |
资产转出的用户地址,每个用户绑定一个子链bid作为唯一标识 |
toBid |
String |
是 |
资产转入的用户地址 |
txHash |
String |
是 |
该交易在链上的交易哈希值 |
Time |
String |
是 |
该交易在链上的确认时间 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
请求示例:
请求体:
{
"data": [
{
"tokenBid": "did:bid:efE6X1PbTCneGX3zipFM28EpWasfKmCc",
"fromBid": "did:bid:ljcp:ef3zTQdpgnWcRRjX3x64E4a6Ma646731",
"toBid": "did:bid:ljcp:ef3zTQdpgnWcRRjX3x64E4a6MaRgeSi5",
"txHash": "1d04071bf2e5f7d14491ee67e0973332e0940ebf4",
"Time": "2022-08-19 11:11:11"
}
]
}
响应示例:
{
"retCode": 200,
"retMsg": "ok"
}
3.6.5数字资产销毁认证接口
https://{url}/auth/api/v1/dna/destroy
请求方式
POST
Headers
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
accessToken |
string |
是 |
用于B端用户调用接口,通过 |
请求参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
data |
object[] |
集合列表,销毁记录不超过100 |
Data结构如下:
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
tokenBid |
String |
是 |
数字资产BID,每个数字资产绑定一个子链bid作为唯一标识。 |
fromBid |
String |
是 |
数字资产持有用户的地址 |
txHash |
string |
是 |
该交易在链上的交易哈希值 |
Time |
string |
是 |
该交易在链上的确认时间 |
响应参数
字段名 |
类型 |
是否必填 |
描述 |
---|---|---|---|
retCode |
number |
返回状态码,取值:200-成功,400-信息错误,500-服务错误 |
|
retMsg |
string |
200-OK |
请求示例:
请求体:
{
"data": [
{
"tokenBid": "did:bid:efE6X1PbTCneGX3zipFM28EpWasfKmCc",
"fromBid": "did:bid:ljcp:ef3zTQdpgnWcRRjX3x64E4a6Ma646731",
"txHash": "1d04071bf2e5f7d14491ee67e0973332e0940ebf4",
"Time": "2022-08-09 22:22:22"
}
]
}
响应示例:
{
"retCode": 200,
"retMsg": "ok"
}