English
NAV
java

ChainUp MPC Wallet

ChainUp Custody 对于MPC技术的整体实施应用能够保证您的投资资产处于市场上最高级别的安全等级的托管保护之下,用户的私钥将由用户和ChainUp Custody共同管理,该技术使您拥有资产完整控制权,您对资产的管理使用不受时间和地点的限制。方便资产的备份和恢复,消除私钥管理的单点故障问题,同时增加了资产自管的安全性

MPC协议的性质允许用户了解哪些私钥片段参与和签署,但其协议的性质不要求参与者对外披露他们的身份,这意味着每一方的输入都是保密的。同时MPC会保证签名生成方的在网络上是私密不可见的,在保护其个人数据隐私的同时,保证多方协作和交易可信度。

ChainUp Custody MPC提供了一个简单、高效的对接组件和API,可以帮助开发者更快地接入系统,可以让您自动化管理您的钱包、交易流程等。除此之外,我们还提供交易消息通知,让你更快的感知事件的发生。

API主要提供以下功能:

请联系商务经理发邮件custody@chainup.com 获取API 信息。

接入指引

开发者可以根据下述流程快速完成ChainUp Custody - MPC钱包API的接入工作

开通账户

使用ChainUp MPC钱包需要开设一个账号,客户可自助完成开户操作

下载APP

用户可通过以下方式获取APP

方式一:手机浏览器访问官方网站(https://custody.chainup.com/download)或使用手机扫描二维码;

方式二:应用市场下载

注册登录

系统支持邮箱、手机号两种方式注册登录;注册与登录功能合二为一,首次登录会自动完成注册;

创建钱包

登录系统后,首先切换到MPC,为团队在APP创建一个钱包,钱包创建成功将会在APP本地生成其中一份私钥片段,客户务必及时备份私钥片段,未备份私钥片段部分功能将不可用。

目前系统支持手动抄写上传云服务器两种备份方式。

钱包分为主钱包子钱包两个类型;一个主钱包可以创建多个子钱包;

应用场景:

私钥密码用于加解密私钥分片非常重要,为了您的资产安全请务必及时备份。 未备份私钥分片和密码将限制您MPC 钱包功能的使用。

若钱包配置不满足您的需求,可联系商务经理或发邮件至 custody@chainup.com 获取支持。

功能配置

在系统开发前,需要对钱包完成以下准备工作

创建API

钱包创建者登录ChainUp控制台系统,在API管理页面创建API;

关于RSA公钥

为了保证数据传输安全,ChainUp采用 RSA-2048 PKCS#8 密钥格式的非对称加密算法对 API 请求和响应的数据进行加解密;其中公钥用于解密请求数据需要上传到ChainUp,私钥用于加密数据由客户自行配置到对应服务器并妥善保管;

RSA公私钥对的说明

关于回调通知

目前系统支持三种业务类型回调服务;交易状态回调签名回调交易审批回调

其中交易状态回调地址、签名回调是由客户在ChainUp平台配置,且由ChainUp主动触发,交易审批回调地址由客户在Co-Signer程序内配置,且由Co-Signer主动触发

配置Co-Signer

Co-Signer 常用于自动化签名 OpenAPI 发起的、以及自动归集交易

Co-Signer服务器选择

Co-Signer支持部署在普通服务器或 支持SGX 的服务器,为了安全起见,建议使用带有 SGX 的服务器;推荐微软云服务商;查看Co-Signer服务器配置要求

Co-Signer配置

Co-Signer 提供了回调处理程序,该程序属于可选组件;

Co-Signer 会对 OpenAPI 发起的交易请求到业务服务器进行二次审核,仅当业务服务器审核通过后方可进行签名操作;

创建地址、资金归集、加油等交易不会回调

API Co-Signer 会验证交易签名,并签署所有 OpenAPI 发起的交易请求;

创建Co-Signer私钥片段

完成API及Co-Signer程序配置后,在APP为Co-Signer创建私钥片段。

钱包创建者可在MPC钱包【安全】-【Co-Signer】页面中创建Co-Signer私钥片段;创建的Co-Signer私钥片段将通过客户在ChainUp平台配置的 Co-Singer RSA公钥加密同步到Co-Signer服务器。

开启自动归集

为了提高资金安全以及资金利用率,部分主链需要配置归集及加油功能,ChainUp为客户提供了一套自动化归集解决方案;具体操作流程如下:

登录ChainUp管理平台,在Co-Signer页面中创建;

仅支持选择在APP端显示的子钱包;为了保证资金效率建议归集钱包加油钱包设置为不同的钱包(由于账户类型的主链出金是单笔执行,若配置成相同钱包,在为地址补充矿工费时,出金交易会等待直到补充矿工费完成。)

应用归集范围

配置要进行资金归集的子钱包;

归集策略

配置要进行资金归集的币种、归集阈值;超过归集阈值且低于设置的矿工费时会自动触发资金归集;用户可通过控制台API自定义归集的阈值以及最大矿工费。

加油策略

为归集币种配置补充矿工费,由于代币归集需要使用主币作为矿工费,当地址的代币满足归集策略且地址没有主币时,将会触发从加油钱包向待归集地址补充矿工费,补充矿工费的数量可自定义,请务必注意补充的矿工费要低于归集阈值。

建议客户配置矿工费不足报警通知,及时补充,避免影响用户出币

对接测试

为了让客户更便捷、快速的对接系统,ChainUp基于过往客户的对接经验,梳理了核心流程【获取充币地址】【用户充币】【用户提币】的对接方案。具体如下:

获取充币地址

地址支持两种类型:系统地址、用户地址;系统地址用于资金归集或找零,不可分配给用户;

用户充币

用户提币

若交易矿工费过低,可对该笔交易进行加速,以便快速上链;用户可在控制台或使用API操作;/api/mpc/billing/withdraw_pending

可通过接口获取支持加速的主链:/api/mpc/wallet/open_coin

API接口

统一说明

域名及API密钥

生产环境域名(不支持测试环境): https://openapi.hicoin.vip/
app_id: 请创建钱包后获取
rsa_wallet_pub: Custody系统公钥;请创建钱包后从Custody系统获取
rsa_third_prv: 客户私钥;自主生成、保存
rsa_third_pub: 客户公钥;自主生成;请创建钱包后配置到Custody系统
rsa_co_signer_pri: Co-Signer私钥;使用Co-Signer生成,或自主生成、保存
rsa_co_signer_pub: Co-Signer公钥;使用Co-Signer生成,或自主生成;请创建钱包后配置到Custody系统

RSA公私钥格式

RSA 公私钥生成地址

密码长度:2048

密钥格式:PKCS#8

接口规则

传输方式: https(测试环境暂时使用 http)
响应状态码为: 0表示处理成功,非 0 表示请求错误系统异常
请求地址: 域名+接口地址
加密算法: RSA

请求接口示例:

POST /api/mpc/sub_wallet/assets

app_id=2128eb8de9e932a4376909f3d69424cc&data=SWYYr-LBVAmaS0eq8n-CUT_nHkM3OBxyWOsImMTe41UaqAoYI2ZghmaphXHov-7hsRsVmOhyPqC-JFuRGvonJKFd2Jirxv6Vn_8V40r_MMYTkhqcviQbZWYW5xX8Ai8CIpqas9fIWVDIYA_NKBl0UCJpwGxscxLNpjq5Z8-BTyIYDsVBquM9zEQGBCfcA7szD9n2fN_loSkoexlwqV8wg9HIZO5yQ6utZ_Kt0lNDQQb8zn8BwfAvsEsbJlOINUAqhxh1vV_AJ4bXn2uYx8TaYcBht-n_ZcBdxIDt975dbOFUiH-oCzIuDi1oLDtb4EylfCvhU5E4ozel_lQ-6cyIG0Dqiiyx0RFFOCJzPSXIoV031pvoa8pTCpkWklh8mRw1rylBgeZtqSxpnJO2_u2RIlXq6Hs8Yly9CmhIXaSrUgPir0h6xVxlf4VC6PFVCkiiTlp0kZ_H_UbKm0nUis3v3U2sflWJ2C449waSrikhuxVrFAQ6PQmrFVCAE6MYXNrFXJQuam2HAIQNSGbFQjspw8b_bXyfyZMGZ3K2oBC4I_v3eETTdPe0pfSNJb-5g37K0tOAr_UFbWK8pkC8yl56fSjn8tcR3yCRWwoi8jxTcUBiswTtvXZtzgG4dyzkaHXjsZjSGiywXSqP76VZWlyOmAx6IDSViLcPLPISdU3ruCI

请求参数统一格式

Param 类型 是否必须 说明
app_id String 必须 商户唯一标识
data String 可选 加密之后的字符串;客户的RSA私钥加密,具体加密信息见各接口 请求参数数据结构

响应参数统一格式

Param 类型 是否必须 说明
data String 必须 加密之后的字符串;Custody的RSA私钥加密,具体加密信息见 响应结果data解密后格式

响应结果示例:

{
    "data": "SWYYr-LBVAmaS0eq8n-CUT_nHkM3OBxyWOsImMTe41UaqAoYI2ZghmaphXHov
        -7hsRsVmOhyPqC-JFuRGvonJKFd2Jirxv6Vn_8V40r_MMYTkhqcviQbZWYW5xX8Ai8CIpqas9fIWVDIYA
        _NKBl0UCJpwGxscxLNpjq5Z8-BTyIYDsVBquM9zEQGBCfcA7szD9n2fN_loSkoexlwqV8wg9HIZO5yQ6utZ_
        Kt0lNDQQb8zn8BwfAvsEsbJlOINUAqhxh1vV_AJ4bXn2uYx8TaYcBht-n_ZcBdxIDt975dbOFUiH-
        oCzIuDi1oLDtb4EylfCvhU5E4ozel_lQ-6cyIG0Dqiiyx0RFFOCJzPSXIoV031pvoa8pTCpkWklh8mRw1rylBgeZtqSxpnJO2
        _u2RIlXq6Hs8Yly9CmhIXaSrUgPir0h6xVxlf4VC6PFVCkiiTlp0kZ
        _H_UbKm0nUis3v3U2sflWJ2C449waSrikhuxVrFAQ6PQmrFVCAE6MYXNrFXJQuam2HAIQNSGbFQjspw8b_
        bXyfyZMGZ3K2oBC4I_v3eETTdPe0pfSNJb-5g37K0tOAr_UFbWK8pkC8yl56fSjn8tcR3yCRWwoi8jxTcUBiswTtvXZtzgG4dyzka
        HXjsZjSGiywXSqP76VZWlyOmAx6IDSViLcPLPISdU3ruCI"
}

响应结果data解密后格式

Param 类型 是否必须 说明
code String 状态码,例:100002
msg String 响应结果说明,例:请求参数错误
data String 具体响应数据,数据结构定义见各接口 响应参数数据结构

加解密方式

请求参数data与响应字段data的值都是经过rsa加密后再通过 base64urlsafe 加密的结果

钱包

获取钱包开通的主链

获取ChainUp Custody支持的MPC主链币种和开通的MPC主链币种

HTTP请求

GET /api/mpc/wallet/open_coin

请求参数数据结构

Param 类型 是否必须 说明
time Long 当前时间戳
charset String 编码格式,无特殊情况,传参数utf-8

响应结果示例

{
    "open_main_chain":[
        {
            "coin_net":"BTC",
            "symbol":"BTC",
            "symbol_alias":"BTC",
            "support_acceleration" : false
        },
        {
            "coin_net":"ETH",
            "symbol":"ETH",
            "symbol_alias":"ETH",
            "support_acceleration" : true
        }
    ],
    "support_main_chain":[
        {
            "coin_net":"BTC",
            "if_open_chain":true,
            "symbol":"BTC",
            "symbol_alias":"BTC",
            "support_acceleration" : false
        },
        {
            "coin_net":"ETH",
            "if_open_chain":false,
            "symbol":"ETH",
            "symbol_alias":"ETH",
            "support_acceleration" : true
        }
    ]
}

响应参数数据结构

Param 类型 是否必须 说明
open_main_chain Array 钱包开通的主链
>coin_net String 币种网络,例:ETH
>symbol String 币种唯一标识,转账时使用,例:USDTERC20
>symbol_alias String 币种真实币名,例:USDT
>support_acceleration Boolean true:支持加速,false:不支持加速
support_main_chain Array MPC支持的主链
coin_net String 币种网络,例:ETH
>symbol String 币种唯一标识,转账时使用,例:USDTERC20
>symbol_alias String 币种真实币名,例:USDT
>if_open_chain Boolean 是否开通主链, false未开通,true:已开通
>support_acceleration Boolean true:支持加速,false:不支持加速

获取MPC币种详情

获取ChainUp Custody支持的MPC主链币及代币

HTTP请求

GET /api/mpc/coin_list

请求参数数据结构

Param 类型 是否必须 说明
time Long 当前时间戳
charset String 编码格式,无特殊情况,传参数utf-8
symbol String 币种唯一标识,转账时使用,例:USDTERC20
base_symbol String 主链币种名称,币种唯一标识,转账时使用,例:ETH
open_chain Boolean 主链开通币种,默认获取全部,true获取开通币种,false获取未开通币种

响应结果示例

[
    {
        "address_regex":".*",
        "address_tag_regex":"",
        "base_symbol":"BSC",
        "coin_net":"BSC",
        "contract_address":"0xe9e7cea3dedca5984780bafc599bd69add087d56",
        "decimals":"18",
        "deposit_confirmation":"1",
        "address_link":"https://www.bscscan.com/address/",
        "tx_link":"https://www.bscscan.com/tx/",
        "icon":"",
        "if_open_chain":true,
        "name":"BUSD Token;BSC;BUSD",
        "real_symbol":"BUSD",
        "support_memo":"0",
        "support_token":"0",
        "symbol":"BUSD",
        "symbol_alias":"BUSD",
        "support_acceleration": true,
        "support_multi_addr" : true
    },
    {
        "address_regex":".*",
        "address_tag_regex":"",
        "base_symbol":"ETH",
        "coin_net":"ETH",
        "contract_address":"0xdac17f958d2ee523a2206206994597c13d831ec7",
        "decimals":"18",
        "deposit_confirmation":"1",
        "address_link":"https://etherscan.io/address/",
        "tx_link":"https://etherscan.io/tx/",
        "icon":"",
        "if_open_chain":false,
        "name":"USDTERC20;ETH;USDT",
        "real_symbol":"USDTERC20",
        "support_memo":"0",
        "support_token":"0",
        "symbol":"USDTERC20",
        "symbol_alias":"USDT",
        "support_acceleration": true,
        "support_multi_addr" : true
    }
]

响应参数数据结构

Param 类型 是否必须 说明
symbol String 币种唯一标识,转账时使用,例:BUSD
symbol_alias String Custody 币种别名
real_symbol String 币种链上名称
base_symbol String 币种所属主链币种唯一标识,例:BSC
coin_net String 币种网络
contract_address String MPC支持的主链
deposit_confirmation String 充值确认数
address_link String 地址查询链接
txid_link String 交易查询链接
icon String 币种icon
if_open_chain Boolean 是否开通主链, false未开通,true:已开通
decimals String 币种精度
support_memo String 是否支持memo,0不支持1支持
support_token String 是否支持token币,0不支持1支持,主链币有值,代币为空
address_tag_regex String 地址正则
address_regex String tag正则
support_acceleration Boolean 是否支持加速
support_multi_addr Boolean 是否支持多地址,true:支持, false:不支持
coin_type Integer 所属主链币类型,0 账户类型, 1 utxo类型主链, 2 Memo类型
merge_address_symbol String 合并地址主链币,币种唯一标识

获取主链最新块高

获取指定主链的区块最新块高

HTTP请求

GET /api/mpc/chain_height

请求参数数据结构

Param 类型 是否必须 说明
base_symbol String 币种唯一标识,例:ETH

响应结果示例

{
    "height": 10023412
}

响应参数数据结构

Param 类型 是否必须 说明
height Long 主链最新区块高度

子钱包

创建子钱包

传入指定的子钱包名称,为钱包创建一个新的子钱包

HTTP请求

POST /api/mpc/sub_wallet/create

请求参数数据结构

Param 类型 是否必须 说明
sub_wallet_name String 子钱包名称,最大支持50个字符,同一钱包下子钱包不能重名,例:mpc矿池
app_show_status String 创建后app和web端是否展示该子钱包,1展示, 2不展示;默认不展示

响应结果示例:

{
    "sub_wallet_id": 10234122
}

响应参数数据结构

Param 类型 是否必须 说明
sub_wallet_id Integer 子钱包id

子钱包创建地址

为指定子钱包及币种创建地址;同一个子钱包可以创建多个地址,Memo类型会创建多个memo

HTTP请求

POST /api/mpc/sub_wallet/create/address

请求参数数据结构

Param 类型 是否必须 说明
sub_wallet_id Integer 子钱包id
symbol String 币种唯一标识,例:USDTERC20

响应结果示例

{
    "address":"0xd5b688639ef10ac7fb8ad0156eb0ae025dd03b86"
    "addr_type":1,
    "memo":""
}

响应参数数据结构

Param 类型 是否必须 说明
address String 创建的地址
addr_type Integer 地址类型,1:用户地址,2:系统地址(包括归集地址、找零地址)。系统地址不可给分配给用户使用, UTXO交易的找零都会找零到找零地址
memo String Memo主链下币种时分配

子钱包地址查询

子钱包地址列表

HTTP请求

POST /api/mpc/sub_wallet/get/address/list

请求参数数据结构

Param 类型 是否必须 说明
sub_wallet_id Integer 子钱包id
symbol String 币种唯一标识,例:USDTERC20
max_id Integer 地址起始id, Memo类型币种起始id为memo,默认0

响应结果示例

[
    {
        "address":"12ZzzA48sYnE12fdkmKmaxkR3Rz5j7Gjac",
        "addr_type": 1,
        "memo": ""
    },
    {
        "address":"139cRprA9siBDbScbjtCZTcESUgZ1rm9fr",
        "addr_type": 2,
        "memo": ""
    }
]

响应参数数据结构

Param 类型 是否必须 说明
address String 创建的地址
addr_type Integer 地址类型,1:用户地址,2:系统地址(包括归集地址、找零地址)。系统地址不可给分配给用户使用, UTXO交易的找零都会找零到找零地址
memo String

获取子钱包资产

获取指定子钱包及币种下的账户资产

HTTP请求

GET /api/mpc/sub_wallet/assets

请求参数数据结构

Param 类型 是否必须 说明
symbol String 币种唯一标识,例:USDTERC20
sub_wallet_id Integer 子钱包id

响应结果示例

{
    "collecting_balance":"3.23",
    "normal_balance":"1.23",
    "lock_balance":"0.77"
}

响应参数数据结构

Param 类型 是否必须 说明
normal_balance String 可用余额
lock_balance String 冻结余额
collecting_balance String 待归集余额

修改子钱包状态

指定子钱包在app、web客户端的展示情况,不展示无法在app发起交易

HTTP请求

POST /api/mpc/sub_wallet/change_show_status

请求参数数据结构

Param 类型 是否必须 说明
sub_wallet_ids String 多个子钱包id的字符串,英文逗号分割
app_show_status String 1展示, 2不展示

响应参数数据结构

转账

转账

发起一笔转账交易

HTTP请求

POST /api/mpc/billing/withdraw

请求参数数据结构

Param 类型 是否必须 说明
sub_wallet_id Integer 子钱包id
symbol String 币种唯一标识,例:USDTERC20
from String 指定出币地址
address_to String 转账到账地址
memo String 转账到账地址memo,Memo类型转账时如有可填入
amount String 转账金额
request_id String 转账唯一标识
remark String 转账备注,例:mpc矿池
fee_rate String BTC类型系列,费率;注意:不要和其他系列参数一起传入
size String BTC类型系列,字节大小;注意:不要和其他系列参数一起传入
gas_price String ETH类型系列,gas推荐单价;注意:不要和其他系列参数一起传入
gas_limit String ETH类型系列,gas限制;注意:不要和其他系列参数一起传入
fee String 其他系列,如DOT\TRX,使用fee;注意:不要和其他系列参数一起传入;gas_limit除外,如ATOM
sign String 使用RSA私钥签名, 参与签名的参数: "request_id", "sub_wallet_id", "symbol", "address_to", "amount", "memo"。签名规则详见Co-Signer交易签名验证

响应结果示例

{
    "withdraw_id": 12345
}

响应参数数据结构

Param 类型 是否必须 说明
withdraw_id Integer 转账id

转账预估手续费

获取转账需要的预估手续费用

HTTP请求

GET /api/mpc/billing/gas_estimate

请求参数数据结构

Param 类型 是否必须 说明
from String 出币地址, /api/mpc/coin_list 接口coin_type != 1时, 该参数必传
sub_wallet_id Integer UTXO多地址出金时, 该参数必传, 指定from无效
to String 到账地址
memo String 转账到账地址memo,Memo类型转账时如有可填入
symbol String 币种唯一标识,例:USDTERC20
amount String 金额

响应结果示例

{
    "gas_limit":0,
    "fee_unit":"Gwei",
    "gas_price1":"0",
    "fee":"0.00159",
    "gas_price2":"0",
    "gas_price3":"0",
    "trans_fee":"0.00159"
}

响应参数数据结构

Param 类型 是否必须 说明
fee_unit String 手续费单位,例:Gwei
fee_rate1 String BTC类型系列,费率一档
fee_rate2 String BTC类型系列,费率二档
fee_rate3 String BTC类型系列,费率三档
size Long BTC类型系列,字节大小,该参数值不可修改
gas_limit Long ETH类型系列(部分其他系列币种如ATOM也有此参数值),gas限制
gas_price1 String ETH类型系列,gas推荐单价一档
gas_price2 String ETH类型系列,gas推荐单价二档
gas_price3 String ETH类型系列,gas推荐单价三档
gas_decimals Integer ETH类型系列,用于计算主币手续费,计算式: (gas_price/10^gas_decimals)*gas_limit
fee String 其他系列,如DOT\TRX,使用fee字段做手续费
fee_changeable Boolean 其他系列,如DOT\TRX,使用fee参数值是否可更改,true可修改,false不可修改
trans_fee String 参考交易手续费,单位是主链币

转账加速

转账签名完成后,由于手续费不足而长时间未上链的时候,可以重新指定更高额的手续费用加速上链

HTTP请求

POST /api/mpc/billing/withdraw_pending

请求参数数据结构

Param 类型 是否必须 说明
withdraw_id Integer 转账id
fee_rate String BTC类型系列,费率;注意:不要和其他系列参数一起传入
size String BTC类型系列,字节大小;注意:不要和其他系列参数一起传入
gas_price String ETH类型系列,gas推荐单价;注意:不要和其他系列参数一起传入
gas_limit String ETH类型系列,gas限制;注意:不要和其他系列参数一起传入
fee String 其他系列,如DOT\TRX,使用fee;注意:不要和其他系列参数一起传入,gas_limit除外,如ATOM

响应参数数据结构

获取转账记录

获取钱包下所有子钱包转账记录,最多返回100条

HTTP请求

GET /api/mpc/billing/withdraw_list

请求参数数据结构

Param 类型 是否必须 说明
ids String request_id的字符串,英文逗号分割

响应结果示例

[
    {
        "symbol":"ETH",
        "amount":"0.0000111",
        "real_fee":"0",
        "withdraw_source":2,
        "fee":"0.0002782353",
        "address_to":"0xc70d1eebb7c687ec8d56bead73f104d41e6e0bda",
        "memo": "",
        "created_at":1672304978000,
        "txid":"0x8e6beba81b90835fc9fcd40a2bdca33243c7c3b81ac765c240837d4810874a55",
        "confirmations":0,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"0x5EDc9177997Bf6B4db559A5C184051858B3B3704",
        "fee_symbol":"ETH",
        "updated_at":1672318660000,
        "base_symbol":"",
        "id":242,
        "request_id":"57fdc296-1e14-47fa-a99d-5e86f8e51008",
        "status":1200,
        "tx_height":3120013
    },
    {
        "symbol":"TRX",
        "amount":"0.001",
        "real_fee":"0",
        "withdraw_source":1,
        "fee":"27.4",
        "address_to":"TYQJcpoH2zeZ2pnpRokwBeRZ16yqyNZPR4",
        "memo": "",
        "created_at":1672304978000,
        "txid":"dee604ca778aee55ef0d17260ee4a96d69dfbc965228288598dce0cf9c829542",
        "confirmations":0,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"TC1rbTinyRyNC5sBJdxGcADbVXh9xcHwwQ",
        "fee_symbol":"TRX",
        "updated_at":1672318660000,
        "base_symbol":"",
        "id":242,
        "request_id":"57fdc296-1e14-47fa-a99d-5e86f8e51008",
        "status":2000,
        "tx_height":56207376
    }
]

响应参数数据结构

Param 类型 是否必须 说明
id Integer 转账id
request_id String 转账唯一标识
sub_wallet_id Integer 子钱包id
symbol String 币种唯一标识,转账时使用,例:USDTERC20
amount String 转账金额
fee_symbol String 手续费币种,例:ETH
fee String 手续费,例:0.00123
real_fee String 真实消耗的手续费,例:0.00111
created_at Long 创建时间时间戳
updated_at Long 修改时间时间戳
address_from String 出币地址
address_to String 到账地址
memo String 转账到账地址memo
txid String 交易hash
confirmations Integer 区块确认数,例:10
status Integer 转账状态: 1000 未审批, 1100 审批通过, 待签名,1200 支付中,2000 支付完成,2100 审批拒绝,2200 拒绝,2201 系统拒绝,2300 交易丢弃,2400 支付失败
withdraw_source Integer 转账类型: 1app, 2openapi, 3web
base_symbol String 转账币种主链唯一标识,例:ETH
contract_address String 转账币种合约地址
tx_height Long 交易完成的区块高度

同步转账记录

获取钱包下所有子钱包转账记录,最多返回100条

HTTP请求

GET /api/mpc/billing/sync_withdraw_list

请求参数数据结构

Param 类型 是否必须 说明
max_id String 转账记录起始id

响应结果示例

[
    {
        "symbol":"ETH",
        "amount":"0.0000111",
        "real_fee":"0",
        "withdraw_source":2,
        "fee":"0.0002782353",
        "address_to":"0xc70d1eebb7c687ec8d56bead73f104d41e6e0bda",
        "memo": "",
        "created_at":1672304978000,
        "txid":"0x8e6beba81b90835fc9fcd40a2bdca33243c7c3b81ac765c240837d4810874a55",
        "confirmations":0,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"0x5EDc9177997Bf6B4db559A5C184051858B3B3704",
        "fee_symbol":"ETH",
        "updated_at":1672318660000,
        "base_symbol":"",
        "id":242,
        "request_id":"57fdc296-1e14-47fa-a99d-5e86f8e51008",
        "status":1200,
        "tx_height":3120013
    },
    {
        "symbol":"TRX",
        "amount":"0.001",
        "real_fee":"0",
        "withdraw_source":1,
        "fee":"27.4",
        "address_to":"TYQJcpoH2zeZ2pnpRokwBeRZ16yqyNZPR4",
        "memo": "",
        "created_at":1672304978000,
        "txid":"dee604ca778aee55ef0d17260ee4a96d69dfbc965228288598dce0cf9c829542",
        "confirmations":0,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"TC1rbTinyRyNC5sBJdxGcADbVXh9xcHwwQ",
        "fee_symbol":"TRX",
        "updated_at":1672318660000,
        "base_symbol":"",
        "id":242,
        "request_id":"57fdc296-1e14-47fa-a99d-5e86f8e51008",
        "status":2000,
        "tx_height":56207376
    }
]

响应参数数据结构

Param 类型 是否必须 说明
id Integer 转账id
request_id String 转账唯一标识
sub_wallet_id Integer 子钱包id
symbol String 币种唯一标识,转账时使用,例:USDTERC20
amount String 转账金额
fee_symbol String 手续费币种,例:ETH
fee String 手续费,例:0.00123
real_fee String 真实消耗的手续费,例:0.00111
created_at Long 创建时间时间戳
updated_at Long 修改时间时间戳
address_from String 出币地址
address_to String 到账地址
memo String 转账到账地址memo
txid String 交易hash
confirmations Integer 区块确认数,例:10
status Integer 转账状态: 1000 未审批, 1100 审批通过, 待签名,1200 支付中,2000 支付完成,2100 审批拒绝,2200 拒绝,2201 系统拒绝,2300 交易丢弃,2400 支付失败
withdraw_source Integer 转账类型: 1app, 2openapi, 3web
base_symbol String 转账币种主链唯一标识,例:ETH
contract_address String 转账币种合约地址
tx_height Long 交易完成的区块高度

收款

获取收款记录

获取钱包下所有子钱包收款记录,最多返回100条

HTTP请求

GET /api/mpc/billing/deposit_list

请求参数数据结构

Param 类型 是否必须 说明
ids String 多个id的字符串,英文逗号分割,例:123,345

响应结果示例

[
    {
        "symbol":"ETH",
        "amount":"1",
        "address_to":"0x33648fACAD6CECA85cf717841Ddd87c40B12438F",
        "memo": "",
        "created_at":1672107533000,
        "txid":"0xfd0b04024bd1d849ba69e301733194154cb42a05c1dd32065367d8c6336af711",
        "confirmations":20,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"0xc70d1eebb7c687ec8d56bead73f104d41e6e0bda",
        "updated_at":1672323030000,
        "base_symbol":"ETH",
        "id":43,
        "status":2000,
        "tx_height":3120013
    },
    {
        "symbol":"ETH",
        "amount":"1",
        "address_to":"0x525208dd0b56c27bd10703bd675fca0509a17154",
        "memo": "",
        "created_at":1672107533000,
        "txid":"0x97cccb68595182d8df439fe17d33376d4bb69abf49d56e08d46fa5f281e095fb",
        "confirmations":5,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"0xe897Fd38f319cB343ffD03Ba2f7426BA99bb97c4",
        "updated_at":1672323030000,
        "base_symbol":"ETH",
        "id":45,
        "status":2000,
        "tx_height":13238654
    }
]

响应参数数据结构

Param 类型 是否必须 说明
id Integer 收款id
sub_wallet_id Integer 子钱包id
symbol String 币种唯一标识,例:USDTERC20
amount String 收款金额
created_at Long 创建时间时间戳
updated_at Long 修改时间时间戳
address_from String 出币地址
address_to String 到账地址
memo String 到账地址memo
txid String 交易hash
confirmations Integer 区块确认数,例:10
status Integer 收款状态: 1000 未确认,1100 已确认(交易区块已确认), 2000 已完成(上账已完成),3000 异常
deposit_type Integer 充值类型,1: 普通币种充值, 2:NFT充值
token_id String NFT充值的tokenId, 当: deposit_type=2时, 该值不为空
base_symbol String 收款币种主链唯一标识,例:ETH
contract_address String 收款币种合约地址
tx_height Long 交易完成的区块高度

同步收款记录

获取钱包下所有子钱包收款记录,最多返回100条

HTTP请求

GET /api/mpc/billing/sync_deposit_list

请求参数数据结构

Param 类型 是否必须 说明
max_id String 转账记录起始id,例:100

响应结果示例

[
    {
        "symbol":"ETH",
        "amount":"1",
        "address_to":"0x33648fACAD6CECA85cf717841Ddd87c40B12438F",
        "memo": "",
        "created_at":1672107533000,
        "txid":"0xfd0b04024bd1d849ba69e301733194154cb42a05c1dd32065367d8c6336af711",
        "confirmations":20,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"0xc70d1eebb7c687ec8d56bead73f104d41e6e0bda",
        "updated_at":1672323030000,
        "base_symbol":"ETH",
        "id":43,
        "status":2000,
        "tx_height":3120013
    },
    {
        "symbol":"ETH",
        "amount":"1",
        "address_to":"0x525208dd0b56c27bd10703bd675fca0509a17154",
        "memo": "",
        "created_at":1672107533000,
        "txid":"0x97cccb68595182d8df439fe17d33376d4bb69abf49d56e08d46fa5f281e095fb",
        "confirmations":5,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"0xe897Fd38f319cB343ffD03Ba2f7426BA99bb97c4",
        "updated_at":1672323030000,
        "base_symbol":"ETH",
        "id":45,
        "status":2000,
        "tx_height":13238654
    }
]

响应参数数据结构

Param 类型 是否必须 说明
id Integer 收款id
sub_wallet_id Integer 子钱包id
symbol String 币种唯一标识,例:USDTERC20
amount String 收款金额
created_at Long 创建时间时间戳
updated_at Long 修改时间时间戳
address_from String 出币地址
address_to String 到账地址
memo String 到账地址memo
txid String 交易hash
confirmations Integer 区块确认数,例:10
status Integer 收款状态: 1000 未确认,1100 已确认(交易区块已确认), 2000 已完成(上账已完成),3000 异常
deposit_type Integer 充值类型,1: 普通币种充值, 2:NFT充值
token_id String NFT充值的tokenId, 当: deposit_type=2时, 该值不为空
base_symbol String 收款币种主链唯一标识,例:ETH
contract_address String 收款币种合约地址
tx_height Long 交易完成的区块高度

归集

获取归集子钱包

获取币种的归集子钱包及加油子钱包

HTTP请求

GET /api/mpc/auto_collect/sub_wallets

请求参数数据结构

Param 类型 是否必须 说明
symbol String 币种唯一标识,例:USDTERC20

响应结果示例

{
    "collect_sub_wallet_id":10241,
    "fueling_sub_wallet_id":20482
}

响应参数数据结构

Param 类型 是否必须 说明
collect_sub_wallet_id Integer 归集子钱包,币种配置后获取
fueling_sub_wallet_id Integer 加油子钱包,币种配置后获取

归集币种设置

设置币种的最小归集金额、以及加油的最大矿工费

HTTP请求

POST /api/mpc/auto_collect/symbol/set

请求参数数据结构

Param 类型 是否必须 说明
symbol String 币种唯一标识,例:USDTERC20
collect_min String 归集最小币种金额;最大6位小数精度,不超过9999999999999999
fueling_limit String 归集最多消耗矿工费金额;最大6位小数精度,不超过9999999999999999

响应结果示例

{
    "symbol":"USDTERC20"
}

响应参数数据结构

Param 类型 是否必须 说明
symbol String 配置完成币种唯一标识

同步归集记录

获取钱包下所有子钱包归集记录,最多返回100条

HTTP请求

GET /api/mpc/billing/sync_auto_collect_list

请求参数数据结构

Param 类型 是否必须 说明
max_id String 归集记录起始id

响应结果示例

[
    {
        "symbol":"ETH",
        "amount":"0.0000111",
        "real_fee":"0",
        "trans_type":10,
        "fee":"0.0002782353",
        "address_to":"0xc70d1eebb7c687ec8d56bead73f104d41e6e0bda",
        "memo": "",
        "created_at":1672304978000,
        "txid":"0x8e6beba81b90835fc9fcd40a2bdca33243c7c3b81ac765c240837d4810874a55",
        "confirmations":0,
        "contract_address":"",
        "sub_wallet_id":"123",
        "address_from":"0x5EDc9177997Bf6B4db559A5C184051858B3B3704",
        "fee_symbol":"ETH",
        "updated_at":1672318660000,
        "base_symbol":"",
        "id":242,
        "status":1200
    },
    {
        "symbol":"HECO",
        "amount":"0.0000111",
        "real_fee":"0",
        "trans_type":11,
        "fee":"0.0024040607337957",
        "address_to":"0x0AabA82E4ba9c2Fdf80B9F8E1AcE885f092B64F0",
        "memo": "",
        "created_at":1672304978000,
        "txid":"",
        "confirmations":0,
        "contract_address":"",
        "sub_wallet_id":"123975",
        "address_from":"0xE76a3d30dAc35C4b9A17E690cd250d8Bec649b65",
        "fee_symbol":"HECO",
        "updated_at":1672318660000,
        "base_symbol":"HECO",
        "id":315,
        "status":2400
    }
]

响应参数数据结构

Param 类型 是否必须 说明
id Integer 归集id
sub_wallet_id Integer 子钱包id
symbol String 币种唯一标识,转账时使用,例:USDTERC20
amount String 归集金额
fee_symbol String 手续费币种,例:ETH
fee String 手续费,例:0.00123
real_fee String 真实消耗的手续费,例:0.00111
created_at Long 创建时间时间戳
updated_at Long 修改时间时间戳
address_from String 出币地址
address_to String 归集地址
memo String 归集到账地址memo
txid String 交易hash
confirmations Integer 区块确认数,例:10
status Integer 归集状态: 1000 未审批, 1100 审批通过, 待签名,1200 支付中,2000 支付完成,2100 审批拒绝,2200 拒绝,2201 系统拒绝,2202 自动取消,2300 交易丢弃,2400 支付失败
trans_type Integer 归集类型: 10.归集交易, 11.归集加油交易
base_symbol String 归集币种主链唯一标识,例:ETH
contract_address String 归集币种合约地址

Web3交易

创建Web3交易

创建一笔Web3交易

HTTP请求

POST /api/mpc/web3/trans/create

请求参数数据结构

Param 类型 是否必须 说明
request_id String 交易唯一标识
main_chain_symbol String 主链币币名(唯一标识)
sub_wallet_id Integer 子钱包ID
from String 交易发起地址,子钱包存在多地址时, 可指定交易地址, 不指定时默认使用子钱包“常用地址“
interactive_contract String 交互合约
amount String 交易金额,-1:表示无穷大, 该金额表示主链币使用金额, 如金额为1ETH, 传值为:1
gas_price String gas 手续费,单位:Gwei
gas_limit String gas limit 手续费
input_data String 合约交易的方法参数组成的16进制数据
trans_type Integer 0:授权交易,1:其他交易。为0时,amount设置金额无效
dapp_name String dapp名称
dapp_url String dapp 访问url
dapp_img String dapp 图片
sign String 使用RSA私钥签名, 参与签名的参数: "request_id", "sub_wallet_id", "main_chain_symbol", "interactive_contract", "amount", "input_data"。签名规则详见Co-Signer交易签名验证

响应结果示例

{
     "trans_id": 198012
}

响应参数数据结构

Param 类型 是否必须 说明
trans_id Integer Web3交易ID

Web3交易加速

转账签名完成后,由于手续费不足而长时间未上链的时候,可以重新指定更高额的手续费加速上链

HTTP请求

POST /api/mpc/web3/pending

请求参数数据结构

Param 类型 是否必须 说明
trans_id Integer Web3交易ID
gas_price String gas peice, 单位:Gwei
gas_limit String gas limit

响应参数数据结构

获取web3交易记录

获取钱包下所有子钱包Web3交易记录,最多返回100条

HTTP请求

GET /api/mpc/web3/trans_list

请求参数数据结构

Param 类型 是否必须 说明
ids String request_id的字符串,英文逗号分割

响应结果示例

[
    {
        "id":435,
        "request_id":"0000000003",
        "sub_wallet_id":1000895,
        "txid":"0xbc87e486d28df91fe715436415bab38cc1cf5e4b23fbb8497ff688b823c08ba7",
        "symbol":"",
        "main_chain_symbol":"HECO",
        "amount":"0",
        "fee_symbol":"HECO",
        "fee":"0.00018",
        "real_fee":"0.000107277",
        "created_at":1684220373000,
        "updated_at":1684222558000,
        "address_from":"0xd5c2d98BF2d205039F62ee40c9A7ab1B36125d6d",
        "address_to":"",
        "confirmations":4,
        "input_data":"0xca718c65",
        "interactive_contract":"0xe012F3957226894B1a2a44b3ef5070417a069dC2",
        "status":2400,
        "trans_source":2,
        "tx_height":3120013
    },
    {
        "id":436,
        "request_id":"0000000003",
        "sub_wallet_id":1000895,
        "txid":"0xeab40bf0072c25514bc61fe58e5e36cc082ea7f50ae33f33013dd365beba9438",
        "symbol":"",
        "main_chain_symbol":"HECO",
        "amount":"0",
        "fee_symbol":"HECO",
        "fee":"0.00018",
        "real_fee":"0.000107277",
        "created_at":1684220373000,
        "updated_at":1684222558000,
        "address_from":"0xBDeBecf1fEDc622Cc50dE2F2aD6925D1EE15fCf9",
        "address_to":"",
        "confirmations":4,
        "input_data":"0xca718c65",
        "interactive_contract":"0x0AabA82E4ba9c2Fdf80B9F8E1AcE885f092B64F0",
        "status":2400,
        "trans_source":2,
        "tx_height":3120113
    }
]

响应参数数据结构

Param 类型 是否必须 说明
id Integer Web3交易ID
request_id String 交易唯一标识
sub_wallet_id Integer 子钱包ID
txid String 交易hash
symbol String 交易币种
main_chain_symbol String 主链币币名(唯一标识),例:ETH
amount String 交易金额。-1表示无穷大
fee_symbol String 手续费币种,例:ETH
fee String 手续费
real_fee String 真实消耗的手续费
created_at String 创建时间时间戳
updated_at String 修改时间时间戳
address_from String 交易from地址
address_to String 交易to地址
interactive_contract String 交互合约
confirmations Integer 确认数
input_data String 合约交易的方法参数组成的16进制数据
status Integer 交易状态: 1100 待签名,1200 支付中,2000 支付完成,2100 审批拒绝,2200 拒绝,2300 交易丢弃,2400 支付失败
trans_source Integer 交易类型: 1.app, 2.open-api
tx_height Long 交易完成的区块高度

同步web3交易记录

获取钱包下所有子钱包Web3交易记录,最多返回100条

HTTP请求

GET /api/mpc/web3/sync_trans_list

请求参数数据结构

Param 类型 是否必须 说明
max_id String Web3交易记录起始id

响应结果示例

[
    {
        "id":435,
        "request_id":"0000000003",
        "sub_wallet_id":1000895,
        "txid":"0xbc87e486d28df91fe715436415bab38cc1cf5e4b23fbb8497ff688b823c08ba7",
        "symbol":"",
        "main_chain_symbol":"HECO",
        "amount":"0",
        "fee_symbol":"HECO",
        "fee":"0.00018",
        "real_fee":"0.000107277",
        "created_at":1684220373000,
        "updated_at":1684222558000,
        "address_from":"0xd5c2d98BF2d205039F62ee40c9A7ab1B36125d6d",
        "address_to":"",
        "confirmations":4,
        "input_data":"0xca718c65",
        "interactive_contract":"0xe012F3957226894B1a2a44b3ef5070417a069dC2",
        "status":2400,
        "trans_source":2,
        "tx_height":3120013
    },
    {
        "id":436,
        "request_id":"0000000003",
        "sub_wallet_id":1000895,
        "txid":"0xeab40bf0072c25514bc61fe58e5e36cc082ea7f50ae33f33013dd365beba9438",
        "symbol":"",
        "main_chain_symbol":"HECO",
        "amount":"0",
        "fee_symbol":"HECO",
        "fee":"0.00018",
        "real_fee":"0.000107277",
        "created_at":1684220373000,
        "updated_at":1684222558000,
        "address_from":"0xBDeBecf1fEDc622Cc50dE2F2aD6925D1EE15fCf9",
        "address_to":"",
        "confirmations":4,
        "input_data":"0xca718c65",
        "interactive_contract":"0x0AabA82E4ba9c2Fdf80B9F8E1AcE885f092B64F0",
        "status":2400,
        "trans_source":2,
        "tx_height":3120113
    }
]

响应参数数据结构

Param 类型 是否必须 说明
id Integer Web3交易ID
request_id String 交易唯一标识
sub_wallet_id Integer 子钱包ID
txid String 交易hash
symbol String 交易币种
main_chain_symbol String 主链币币名(唯一标识),例:ETH
amount String 交易金额。-1表示无穷大
fee_symbol String 手续费币种,例:ETH
fee String 手续费
real_fee String 真实消耗的手续费
created_at String 创建时间时间戳
updated_at String 修改时间时间戳
address_from String 交易from地址
address_to String 交易to地址
interactive_contract String 交互合约
confirmations Integer 确认数
input_data String 合约交易的方法参数组成的16进制数据
status Integer 交易状态: 1100 待签名,1200 支付中,2000 支付完成,2100 审批拒绝,2200 拒绝,2300 交易丢弃,2400 支付失败
trans_source Integer 交易类型: 1.app, 2.open-api
tx_height Long 交易完成的区块高度

NFT

获取NFT信息

获取NFT图片,名称等数据

HTTP请求

POST /api/nft/info

请求参数数据结构

Param 类型 是否必须 说明
base_symbol String 主链币
contract_address String NFT合约地址
token_id String NFT token id

响应结果示例

{
     "base_symbol": "bsc",
     "contract_address": "0xC2A19349D5f451071C3085B90f531D19F190FF21",
     "token_id": "75000000000000000281",
     "nft_name": "#75000000000000000281",
     "image": "https://ipfs.io/ipfs/QmXCaMVmRWviaFtRpEH7dJXrJav8dsJdGcsj7M8NpgAgPW",
     "image_type": ".svg",
     "is_video": false,
}

响应参数数据结构

Param 类型 是否必须 说明
base_symbol String 主链币
contract_address String NFT合约地址
token_id String NFT token id
nft_name String NFT 名称, 不存在时, 使用 "# + tokenId", 如: #1000001
image String nft图片或视频url, 或图片base64
image_type String nft图片或视频类型, 如:".png", ".mp4"
is_video Boolean 是否是视频, true: image是视屏, 反之不是视频

交易通知

统一说明

POST /客户回调通知地址

交易通知请求接口示例

app_id=2128eb8de9e932a4376909f3d69424cc&data=SWYYr-LBVAmaS0eq8n-CUT_nHkM3OBxyWOsImMTe41UaqAoYI2ZghmaphXHov-7hsRsVmOhyPqC-JFuRGvonJKFd2Jirxv6Vn_8V40r_MMYTkhqcviQbZWYW5xX8Ai8CIpqas9fIWVDIYA_NKBl0UCJpwGxscxLNpjq5Z8-BTyIYDsVBquM9zEQGBCfcA7szD9n2fN_loSkoexlwqV8wg9HIZO5yQ6utZ_Kt0lNDQQb8zn8BwfAvsEsbJlOINUAqhxh1vV_AJ4bXn2uYx8TaYcBht-n_ZcBdxIDt975dbOFUiH-oCzIuDi1oLDtb4EylfCvhU5E4ozel_lQ-6cyIG0Dqiiyx0RFFOCJzPSXIoV031pvoa8pTCpkWklh8mRw1rylBgeZtqSxpnJO2_u2RIlXq6Hs8Yly9CmhIXaSrUgPir0h6xVxlf4VC6PFVCkiiTlp0kZ_H_UbKm0nUis3v3U2sflWJ2C449waSrikhuxVrFAQ6PQmrFVCAE6MYXNrFXJQuam2HAIQNSGbFQjspw8b_bXyfyZMGZ3K2oBC4I_v3eETTdPe0pfSNJb-5g37K0tOAr_UFbWK8pkC8yl56fSjn8tcR3yCRWwoi8jxTcUBiswTtvXZtzgG4dyzkaHXjsZjSGiywXSqP76VZWlyOmAx6IDSViLcPLPISdU3ruCI

交易通知请求参数统一格式

Param 类型 是否必须 说明
app_id String 必须 商户唯一标识
data String 必须 加密之后的字符串,具体加密信息见各接口 请求参数数据结构

交易通知响应参数统一格式

返回字符串:SUCCESS表示成功,FAILURE表示失败 (注意此处返回参数无需进行加密)

转账通知

请求参数数据结构

Param 类型 是否必须 说明
charset String 编码格式,无特殊情况,传参数utf-8
side String 通知类型, 收款通知:deposit, 转账通知: withdraw,Web3交易通知:web3-trans
notify_time String 通知时间,例:2022-11-02 11:04:05
id String 转账id
request_id String 转账唯一标识
sub_wallet_id String 子钱包id
symbol String 币种唯一标识,转账时使用,例:USDTERC20
amount String 转账金额
fee_symbol String 手续费币种,例:ETH
fee String 手续费,例:0.00123
real_fee String 真实消耗的手续费,例:0.00111
created_at String 创建时间时间,如:2006-01-02 15:04:05
updated_at String 修改时间时间,如:2006-01-02 15:04:05
address_from String 出币地址
address_to String 到账地址
memo String 到账地址memo
txid String 交易hash
confirmations String 区块确认数,例:10
status String 转账状态: 1000 未审批, 1100 审批通过, 待签名,1200 支付中,2000 支付完成,2100 审批拒绝,2200 拒绝,2300 交易丢弃,2400 支付失败
withdraw_source String 转账类型: 1app, 2openapi, 3web
base_symbol String 转账币种主链唯一标识,例:ETH
contract_address String 转账币种合约地址
tx_height String 交易完成的区块高度

收款通知

请求参数数据结构

Param 类型 是否必须 说明
charset String 编码格式,无特殊情况,传参数utf-8
side String 通知类型, 收款通知:deposit, 转账通知: withdraw,Web3交易通知:web3-trans
notify_time String 通知时间,例:2022-11-02 11:04:05
id String 收款id
sub_wallet_id String 子钱包id
symbol String 币种唯一标识,例:USDTERC20
amount String 收款金额
created_at String 创建时间时间,如:2006-01-02 15:04:05
updated_at String 修改时间时间,如:2006-01-02 15:04:05
address_from String 出币地址
address_to String 到账地址
memo String 到账地址memo
txid String 交易hash
confirmations String 区块确认数,例:10
status String 收款状态: 1000 未确认,1100 已确认(交易区块已确认), 2000 已完成(上账已完成),3000 异常
base_symbol String 收款币种主链唯一标识,例:ETH
contract_address String 收款币种合约地址
tx_height String 交易完成的区块高度

Web3交易通知

请求参数数据结构

Param 类型 是否必须 说明
charset String 编码格式,无特殊情况,传参数utf-8
side String 通知类型, 收款通知:deposit, 转账通知: withdraw,Web3交易通知:web3-trans
notify_time String 通知时间,例:2022-11-02 11:04:05
id String 收款id
request_id String 转账唯一标识
sub_wallet_id String 子钱包id
main_chain_symbol String 主链币币名(唯一标识),例:ETH
symbol String 币种唯一标识,例:USDTERC20
amount String 交易金额
created_at String 创建时间时间,如:2006-01-02 15:04:05
updated_at String 修改时间时间,如:2006-01-02 15:04:05
address_from String 出币地址
address_to String 到账地址
txid String 交易hash
confirmations String 区块确认数,例:10
status String 转账状态: 1000 未审批, 1100 审批通过, 待签名,1200 支付中,2000 支付完成,2100 审批拒绝,2200 拒绝,2300 交易丢弃,2400 支付失败
interactive_contract String 交互合约
fee_symbol String 手续费币种,例:ETH
fee String 手续费
real_fee String 真实消耗的手续费
input_data String 合约交易的方法参数组成的16进制数据
trans_type String 交易类型, 0:授权交易,1:转账交易
dapp_img String dapp 图片
dapp_name String dapp名称
dapp_url String dapp 访问url
tx_height String 交易完成的区块高度

Co-Signer

概述

Co-Signer可以帮助您快速对接API,需要您单独部署在服务器上。Co-Signer需要绑定您钱包的分片私钥,用于创建地址交易签名

对接流程

Co-Signer主要实现了两个功能:创建地址和自动签名,调用关系如下图:

创建地址:

自动签名(回调方式):

自动签名(签名sign验证方式):

Co-Signer回调

为了保证交易的安全,您需要在Co-Signer中配置一个业务系统的回调地址,在交易签名之前授权。

授权交易数据采用明文传输,您需要在应用服务中保证业务系统和Co-Signer之间的通信安全。

提现回调

HTTP请求

POST /{url}

Content-Type application/json;charset=UTF-8

回调参数示例

POST /callback/example

{
    "type":"sign_start",
    "withdraw_id":321456,
    "request_id":"c70d1eebb7c687ec8d56bead73f104",
    "pending_round":false,
    "from":"0xc70d1eebb7c687ec8d56bead73f104d41e6e0bda",
    "to":"0x5EDc9177997Bf6B4db559A5C184051858B3B3704",
    "memo": "123321",
    "amount":167230.4978,
    "symbol":"BTC"
}

回调参数格式:

Param 类型 是否必须 说明
type String 回调类型,sign_start签名开始,sign_success签名成功
withdraw_id Integer 交易ID
request_id String 发起交易唯一标识
pending_round Boolean 加速状态,true是,false否(普通交易)
from String 交易出币地址
to String 交易到账地址
memo String 交易到账memo
amount Decimal 交易金额
symbol String 交易币种唯一标识
txid String 交易hash,签名成功返回txid

回调响应参数统一格式

返回字符串:SUCCESS表示成功,FAILURE表示失败

Web3交易回调

HTTP请求

POST /{url}

Content-Type application/json;charset=UTF-8

回调参数示例

POST /callback/example

{
    "type":"sign_start",
    "trans_id":432,
    "request_id":"0000000003",
    "pending_round":false,
    "from":"0xc70d1eebb7c687ec8d56bead73f104d41e6e0bda",
    "to":"0x5EDc9177997Bf6B4db559A5C184051858B3B3704",
    "amount":0,
    "main_chain_symbol":"HECO",
    "input_data":"0xca718c65",
    "interactive_contract":"0xe012F3957226894B1a2a44b3ef5070417a069dC2",
    "txid":"",
}

回调参数格式:

Param 类型 是否必须 说明
type String 回调类型,sign_start签名开始,sign_success签名成功
trans_id Integer 交易ID
request_id String 发起交易唯一标识
pending_round Boolean 加速状态,true是,false否(普通交易)
from String 交易from地址
to String 交易to地址
amount Decimal 交易金额。-1表示无穷大
main_chain_symbol String 主链币币名(唯一标识),例:ETH
input_data String 交易币种唯一标识
interactive_contract String 交互合约
txid String 交易hash,签名成功返回txid

回调响应参数统一格式

返回字符串:SUCCESS表示成功,FAILURE表示失败

Co-Signer交易签名验证

Co-Signer为交易提供更安全的双重验证功能。

除Co-Signer回调机制外,客户可以在发起交易时,同时传入sign字段,Co-Signer将额外验证sign是否合法。

错误码

接口错误码表 - 表格

code msg
0 成功
100001 系统错误
100004 请求参数不合法
100005 签名校验失败
100007 非法IP
100011 余额不足
100015 商户ID无效
100016 商户信息过期
110055 转账地址错误
110088 请勿重复提交请求
110160 注册失败
110161 超过转账最大支持精度
110227 币种已暂停转账
120202 币种不支持
120204 构建交易失败
200004 暂无权限进行此操作
200005 钱包不存在
200008 超出子钱包可创建最大数量
200007 正在创建子钱包,请耐心等待
200011 币种地址已存在
200013 节点配置错误,请联系客服
200015 签名失败
200025 正在处理,请耐心等待
200040 钱包已到期
200066 子钱包展示最多可操作1000条
200067 名称超过限制长度
210003 订单不存在
3040006 不能给自己转账
200071 该主链不支持加速
200072 子钱包类型不支持该类型交易
200073 多签地址不存在,请检查输入是否正确
200074 该地址并不是您参与的多签钱包,请检查后再次操作
200075 预估手续费失败
200076 暂不支持该交易