Appearance
chainMint
介绍
chainMint 是链上聚合Api,可通过Api接入BSN、文昌链、中艺链、蚂蚁链、Ploygon、以太链等链,在Api接入之前,在chainID平台 注册开发者帐号,并创建应用,并获得相应的 AppID 和 AppSecret,可开始接入流程。
核心功能
| 功能命令 | 说明 |
|---|---|
| 创建链账户 | 区块链上的账户地址 |
| 创建类别 | NFT类别、在区块链上是唯一的,用于NFT资产的管理和识别。 |
| 发行NFT | NFT是链上唯一的的资产,用户可通过API自行铸造NFT |
| 转增NFT | 可以将NFT转移给任何一个由chainMint创建的链账户地址 |
| 销毁NFT | 可以销毁链账户地址中拥有的NFT |
| 查询NFT | 查询NFT详情 |
链列表
| 名称 | 链code |
|---|---|
| 中艺链 | artchain |
| Polygon | polygon |
| 文昌链 | wencang |
快速接入
- 认证开发者
- 创建应用获得相应的 AppID 和 AppSecret并保存调用Api服务
- 在应用管理列表开通链的Api权限
- 资金账户充值 在能量管理界面进行资金账户充值
- 创建链账户,请求API接口与区块链进行交互
生产环境API
http
https://api-chain.allpayment.cnhttps://api-chain.allpayment.cn协议规则
- 传输方式:采用HTTP传输(生产环境建议HTTPS)
- 提交方式:采用POST/GET方式提交 Json
- 字符编码:UTF-8
- 签名算法:MD5
签名算法
第一步:设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。 特别注意以下重要规则:
- 参数名ASCII码从小到大排序(字典序);
- 如果参数的值为空不参与签名;
- 参数名区分大小写;
- 验证调用返回或chainMint主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
- chainMint接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步:在stringA最后拼接上key即 StringA + "&key=" + app私钥 得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
- 公共请求参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| appId | 是 | Appid |
| signType | 是 | md5 |
| reqTime | 是 | 请求时间(毫秒) |
| sign | 是 | 签名 |
| version | 是 | 版本(固定填写 1.0) |
创建链账户
- 请求 POST
http
api/chain/account/createapi/chain/account/create参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| chainCode | 是 | 链code |
| operationId | 是 | 操作id |
- 响应
json
{
"code": 0,
"data": {
"address": "0x99d353178ae2df8855d04026c4e8cb80cc395512"
},
"msg": "SUCCESS"
}{
"code": 0,
"data": {
"address": "0x99d353178ae2df8855d04026c4e8cb80cc395512"
},
"msg": "SUCCESS"
}参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| address | 是 | 链地址 |
错误返回样例:
json
{
"code": 10,
"msg": "系统异常[未开通链]"
}{
"code": 10,
"msg": "系统异常[未开通链]"
}创建类别(合约)
请求 POST
http
api/chain/contract/createapi/chain/contract/create参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| chainCode | 是 | 链code |
| operationId | 是 | 操作id |
| name | 是 | 类别名称 |
| symbol | 是 | 标识 |
- 响应
json
{
"code": 0,
"data": {
"contractAddress": "0xa7c827886cda646dd43e8cc6ec05cffc8ffa8b35",
"name": "ytt",
"symbol": "tty"
},
"msg": "SUCCESS"
}{
"code": 0,
"data": {
"contractAddress": "0xa7c827886cda646dd43e8cc6ec05cffc8ffa8b35",
"name": "ytt",
"symbol": "tty"
},
"msg": "SUCCESS"
}参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| contractAddress | 是 | 类别ID |
| name | 是 | 名称 |
| symbol | 是 | 列表 |
发行 NFT
请求 POST
http
api/chain/nft/mintapi/chain/nft/mint参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| chainCode | 是 | 链code |
| operationId | 是 | 操作id |
| recipient | 是 | 接受者地址 |
| classId | 是 | 类别ID |
| metaData | 是 | 元数据 json |
- metaData
json
{
"name": "nft名称",
"image": "http://dummyimage.com/400x400",
"description": "nft介绍"
}{
"name": "nft名称",
"image": "http://dummyimage.com/400x400",
"description": "nft介绍"
}- 响应
json
{
"code": 0,
"data": {
"operationId": "0147421065"
},
"msg": "SUCCESS"
}{
"code": 0,
"data": {
"operationId": "0147421065"
},
"msg": "SUCCESS"
}参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| operationId | 是 | 操作id |
转增 NFT
请求 POST
http
api/chain/nft/transferapi/chain/nft/transfer参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| chainCode | 是 | 链code |
| operationId | 是 | 操作id |
| tokenId | 是 | tokenID |
| owner | 是 | 拥有者地址 |
| recipient | 是 | 接受者地址 |
| classId | 是 | 类别ID |
- 响应
json
{
"code": 0,
"data": {
"operationId": "0147421065"
},
"msg": "SUCCESS"
}{
"code": 0,
"data": {
"operationId": "0147421065"
},
"msg": "SUCCESS"
}参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| operationId | 是 | 操作id |
销毁 NFT
请求 POST
http
api/chain/nft/burnapi/chain/nft/burn参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| chainCode | 是 | 链code |
| operationId | 是 | 操作id |
| tokenId | 是 | tokenID |
| owner | 是 | 拥有者地址 |
| classId | 是 | 类别ID |
- 响应
json
{
"code": 0,
"data": {
"operationId": "0147421065"
},
"msg": "SUCCESS"
}{
"code": 0,
"data": {
"operationId": "0147421065"
},
"msg": "SUCCESS"
}参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| operationId | 是 | 操作id |
转增 NFT
请求 POST
http
api/chain/nft/transferapi/chain/nft/transfer参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| chainCode | 是 | 链code |
| operationId | 是 | 操作id |
| tokenId | 是 | tokenID |
| owner | 是 | 拥有者地址 |
| recipient | 是 | 接受者地址 |
| classId | 是 | 类别ID |
- 响应
json
{
"code": 0,
"data": {
"operationId": "0147421065"
},
"msg": "SUCCESS"
}{
"code": 0,
"data": {
"operationId": "0147421065"
},
"msg": "SUCCESS"
}参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| operationId | 是 | 操作id |
查询交易详情
请求 POST
http
api/chain/task/infoapi/chain/task/info参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| chainCode | 是 | 链code |
| operationId | 是 | 操作id |
- 响应
json
{
"code": 0,
"data": {
"appId": "6459fcf959fe8d644beace51",
"chainCode": "artchain",
"operationId": "0657524243",
"status": 1,
"tokenId": "638508474",
"txHash": "0xe060f105faf3f6c5d579678bed04aa0c33439bfb809af7048babe599ac14e39d",
"type": "nftMint"
},
"msg": "SUCCESS"
}{
"code": 0,
"data": {
"appId": "6459fcf959fe8d644beace51",
"chainCode": "artchain",
"operationId": "0657524243",
"status": 1,
"tokenId": "638508474",
"txHash": "0xe060f105faf3f6c5d579678bed04aa0c33439bfb809af7048babe599ac14e39d",
"type": "nftMint"
},
"msg": "SUCCESS"
}参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| chainCode | 是 | 链code |
| status | 是 | 状态 0处理中 1成功 2失败 |
| tokenId | 是 | tokenId |
| txHash | 是 | 交易HASH |
| type | 是 | 操作类型 |