BUMO ATP 10 协议

简介

ATP 10(Account based Tokenization Protocol) 指基于 BuChain的账号结构对资产进行发行、转移和增发Token的标准协议,Token在此文代表账号资产。

目标

标准协议可以让其它应用程序方便地调用接口在 BUMO 上进行Token的发行、转移和增发操作。

Token 属性

发行的Token需要通过设置Token源账户的metadata来记录Token的相关属性。用于应用程序方便去管理和查询Token数据信息。

变量 描述
name Token 名称
code Token 代码
description Token 描述
decimals Token 小数位数
totalSupply Token 总量(其值等于10 ^ decimals * 发行量)
icon Token 图标(optional)
version ATP 版本

注意

  • name:推荐使用单词全拼,每个首字母大写。如 Demo Token

  • code: 推荐使用大写首字母缩写。如 DT

  • decimals: 小数位在0~8的范围,0表示无小数位

  • totalSupply: 范围是0 ~ (2 ^ 63 - 1)。0表示不固定Token的上限。假如,发行一笔数量是10000, 精度为8的ATP 10 Token,此时totalSupply = 10 ^ 8 * 10000, 结果是1000000000000。

  • icon: base64位编码,图标文件大小是32k以内,推荐200*200像素。

操作过程

BUMO ATP 10协议中的操作包括 登记Token、发行Token、转移Token、增发Token、查询Token、查询指定Metadata。

登记Token

登记 token 即设置 token 的 metadata 参数。发送Setting Metadata的交易,设置Token metadata参数key、value和version。下面是登记 token 的示例:

  • json格式

    {"type": 4,"set_metadata": {"key": "asset_property_DT","value": "{\"name\":\"Demon Token\",\"code\":\"DT\",\"totalSupply\":\"10000000000000\",\"decimals\":8,\"description\":\"This is hello Token\",\"icon\":\"iVBORw0KGgoAAAANSUhEUgAAAAE....\",\"version\":\"1.0\"}","version": 0}
    }
    

注意

  • key值必须是asset_property_前缀和Token code的组合(参考发行Token的 code 参数)。
    设置成功后通过查询指定Metadata可以看到metadata设置的数据。

发行Token

发行 token 即账户发行一笔数字 token,执行成功后账户的 token 余额中会出现这一笔 token。客户端通过发起一笔操作类型是Issuing Assets的交易。设置参数amount(发行的数量)、code(Token代码)。

例如:发行一笔数量是10000,精度为8的DT Token, 此时参数amount是10 ^ 8 * 10000。

  • json格式

    {"type": 2,"issue_asset": {"amount": 1000000000000,"code": "DT"}
    }
    

转移Token

转移 token 即账户将一笔 token 转给目标账户。转移 token 通过发送 Transferring Assets 的交易设置相关参数。以下是相应参数:

参数 描述
pay_asset.dest_address 目标账户地址
pay_asset.asset.key.issuer Token发行方地址
pay_asset.asset.key.code Token代码
pay_asset.asset.amount 10 ^ 精度 * 要转移的数量
pay_asset.input 触发合约调用的入参,如果用户未输入,默认为空字符串

例如:给已激活的目标账户 buQaHVCwXj9ERtFznDnAuaQgXrwj2J7iViVK 转移数量为 500000000000 的 DT 的例子。

  • json格式:
    {"type": 3,"pay_asset": {"dest_address": "buQaHVCwXj9ERtFznDnAuaQgXrwj2J7iViVK","asset": {"key": {"issuer": "buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD","code": "DT"},"amount": 500000000000}}}

转移成功后通过查询Token可以看到目标账户拥有amount数量的DT。

注意:给未激活的目标账户转移Token,交易的执行结果是失败的

增发Token

增发 token 即账户继续在原 token 代码上发行一定数量的 token。通过设置和之前发行Token相同的交易类型代码,继续发送发行Token的交易,进行Token增发。应用程序根据具体业务去控制增发Token数量是否超过totalSupply,增发成功后可以看到Token数量会有所增加。

查询Token

查询 token 即查询源账户的 token 信息,以下是查询 token 需要指定的 token 信息:

参数 描述
address 账号地址, 必填
code & issuer issuer表示Token发行账户地址,code表示Token代码。只有同时填写正确code&issuer才能正确显示指定Token否则默认显示所有Token。选填
type 目前type只能是0,可以不用填写

以下是查询 token 的代码示例:

HTTP GET /getAccountAssets?address=buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD
  • 返回内容
{"error_code": 0,"result": [{"amount": 469999999997,"key": {"code": "DT","issuer": "buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD"}},{"amount": 1000000000000,"key": {"code": "ABC","issuer": "buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD"}}]
}
  • 如果该账号不存在Token,则返回内容
{"error_code" : 0,"result" : null
}

查询指定metadata

查询指定 metadata 即查询 metadata 的相关信息,包括 key、value、version。查询 metadata 需指定的 metadata 信息:

参数 描述
address 账号地址, 必填
key 指定metadata中的key值

以下是查询指定 metadata 的代码示例:

HTTP GET /getAccountMetaData?address=buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD&key=asset_property_DT
  • 如果该账号指定的 key 存在 metadata,则返回内容:
{"error_code": 0,"result": {"asset_property_DT": {"key": "asset_property_DT","value": "{\"name\":\"DemonToken\",\"code\":\"DT\",\"totalSupply\":\"1000000000000\",\"decimals\":8,\"description\":\"This is hello Token\",\"icon\":\"iVBORw0KGgoAAAANSUhEUgAAAAE\",\"version\":\"1.0\"}","version": 4}}
}
  • 如果该账号指定的key不存在metadata,则返回内容:
{"error_code" : 0,"result" : null
}

BEPs协议:BUMO ATP 10 协议相关推荐

  1. BEPs协议:BUMO ATP 20 协议

    BUMO ATP 20 协议 简介 ATP 20(Account based Tokenization Protocol) 指基于 BUMO 智能合约发行 token 的标准协议.该协议提供了转移 t ...

  2. BEPs协议:BUMO DEX 10 协议

    BUMO DEX 10 协议 简介 BUMO DEX 1.0(Decentralized exchange) 是基于 BUMO 智能合约制定的去中心化资产兑换协议.该协议为基于BUMO发行的各类资产提 ...

  3. BEPs协议:BUMO STO 10 协议

    BUMO STO 10 协议 简介 STO 10 (Security Token Standard)是指基于 BUMO 智能合约发行证券型 token 的标准协议.该标准在 CTP 10 的基础上制定 ...

  4. BEPs协议:BUMO ATP 30 协议

    BUMO ATP 30 协议 简介 ATP 30(Account based Tokenization Protocol) 是"Non-Fungible Tokens",英文简写为 ...

  5. GPS NMEA 0183 4.10协议/GPS Linux串口驱动

      NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式.现在已经成为GPS导航设备统一的RTCM(R ...

  6. android mux协议,GSM 07.10 MUX 协议驱动解析

    PXA1802使用HSIC接口与AP连接,HSIC枚举实现7个虚拟通道ttyUSB0~6,为方便扩展,Marvell在HSIC虚拟通道0上实现了3GPP GSM-07.10 MUX协议,MUX协议提供 ...

  7. 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6

    其他协议 WebSocket WebSocket - 建立连接 WebService RESTful HTTPDNS FTP文件传输协议 邮件相关的协议(SMTP.POP.IMAP) POP vs I ...

  8. ssh协议是osi_TCP/IP协议和三次握手四次挥手

    计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的.计算机网络体系结构的抽象概念较多,在学习时要多思考.这些概念对后面的学习很有帮助. 网络协议是什么? 在计算机网络要做到有条不 ...

  9. Python中的端口协议之基于UDP协议的通信传输

    阅读目录 UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较) 3.利用socketserver模块实现udp传输协议的并发通 ...

最新文章

  1. 迷宫搜索问题最短路_[源码和文档分享]基于C语言实现的勇闯迷宫游戏
  2. js获取微信验证实现微信自动跳转 检验code操作
  3. 解决maltab的中文和英文字体问题,中文乱码
  4. mongodb 分组聚合_MongoDB按键值对进行聚合/分组
  5. poi向word插入图片_如何使用word裁剪图片图形?如何使用word修整图片?
  6. Web开发性能优化总结 转载
  7. .NET异步程序设计之任务并行库
  8. ServletContext读取属性文件
  9. Redis 未授权访问漏洞利用
  10. gets()gets_s()puts()函数的使用
  11. 华硕afudos刷bios_华硕M2N-MX SE PLUS主板 如何用afudos命令刷BIOS
  12. 模糊局部信息c均值聚类算法(flicm)
  13. 谷歌日语输入法、中文输入法之间的切换
  14. 寒武纪“失速”,是AI芯片行业的阵痛?
  15. Sql Server利器sql prompt
  16. 【转载】世界十大名咖啡
  17. C/C++内存检测工具valgrind--memcheck
  18. 2021成都好久查询高考成绩,2021年成都各高中高考成绩排名及放榜最新消息
  19. 手机GPS天线设计对GPS定位有影响
  20. 农村土地确权之调查公示 ——二轮公示前数据检查说明

热门文章

  1. 言简意赅话彩虹, 虹,霓
  2. 手把手带你撸一遍vue-loader源码
  3. 04 | 后台登录:基于账号密码的登录方式(上)
  4. hmailserver被拒绝访问
  5. react-lazyload 源码解析
  6. 用手机打 CTF 是什么样的体验
  7. 豆瓣电影Top 250排行榜海报图片下载
  8. 程序员修炼之路(十)程序员必读经典书籍和成长路线
  9. 掌握这一技巧,轻松解决IBM存储硬盘故障
  10. 转载丨区块链还有价值吗?我们采访了行业从业者