NAV
Safeheron API Documents
English | 中文

Introduction

Welcome to Safeheron’s Developer Documents. Here, users can explore our range of APIs, designed to provide you with complete control over managing team and streamlining transaction processes. Alongside our powerful APIs, we also offer webhook push notification, enabling users to receive real-time event notifications related to their team.

Through Safeheron's API, you can:

All transactions are recorded in Safeheron's Web Console, history, and webhook.

Getting Started

Overview

To configure webhook and create API accounts, a member with 'Manage API' permission can log into Safeheron Web Console, and navigates to Settings -> API. After creating an API account, users can access the Safeheron API using the corresponding API key.

API Authentication

Safeheron utilizes a secure hybrid encryption approach for its API interfaces, leveraging both symmetric and asymmetric encryption techniques during requests and utilizing asymmetric private keys to sign request parameters. The symmetric encryption algorithm of choice is AES-256, while the asymmetric encryption and signature algorithm is RSA-4096. The exact processes are outlined below:

Safeheron will encrypt and sign the response parameters using the same procedure. You can decrypt the parameters and verify the signature using the following steps:

Generate the RSA private key via OpenSSL (api_private.pem is your API RSA private key):

openssl genpkey -out api_private.pem -algorithm RSA -pkeyopt rsa_keygen_bits:4096

Generate corresponding public key to your RSA private key via OpenSSL (api_public.pem is your API RSA public key):

openssl rsa -in api_private.pem -out api_public.pem -pubout

Note:

IP Whitelisting

When calling the Safeheron API, requests can only be initiated from IP addresses that have been added to your whitelist. You must specify the IP address from which the API Key will be used when creating it.

Example Request

Request Base URL

https://api.safeheron.vip

Request Parameters Before Encryption

Example Request Parameters Before Encryption

{
  "apiKey": "341916e58af445f8aadeb95170218e37",
  "timestamp": "1623038312088",
  "bizContent": {
    "page": 1,
    "pageSize": 1
  }
}

For a specific format, please refer to request parameter of each interface. Please check the right side for the example.

Request Parameters After Encryption

Example Request Parameters After Encryption

{
  "apiKey": "341916e58af445f8aadeb95170218e37",
  "timestamp": "1628652100447",
  "bizContent": "qjFMZXs2n+CxnrNGoaZmGrKQzPosy6QbWEumCMkGOEw=",
  "key": "gYZvuXdJADuaLYMU3z8q5vOtld62PSaPxrrhhr4UGwWbZm7Pw3/VImzHrd3oNy1XT8R55V7pbpQOBVdbmTev/rESnuaXlGofkB04JWAaRCIPytEKMHUNXZXEU9GLVppYst7bgiekMDIDScS4AkD75eDG8zru5Gr+gTxU4AYyHSzB0deQnxmNRemwZn+jaNgNs7WeBcuQWR1Cq2+1At8FlAqF5XzEaeQ3x1Q0N3iaLzSiXHQRYqP1Q6V6/aiIXchin/X9bBRYL618utjm4k0qoXU8Rw2JeEKzn7m2ShyyQQ31zX/rQ1xf0ar5PDtJPU/qYp9Kr4oVtcN6yHdG802nLqpGYlHlMvxy9vpnGFXb9oxh4xYnp0qRUfKLyJIylc3qhq6spHyWnuC5XV1S4lH+rIPNF1icV08ex7pjps2jvTICBzIIPExBamh1n00RcxZbkGqxYfRZ7SLTUCH06EaV5lP8yXNe3fNWjHk4mppaVDj0QFagqTzBM9AwMfHs1dOeDmcwkTacKQsvNRu3l5uZFQYkaUeVB9m3AhKw3lyl2oJIfJgYeBLJEHMGFVZXP92z8+J5KrZEVfkL8F80XkB3sXRP0BiIv/9Mm4VrjopYoDWyXttCysY0lJ9XImRyE7GkSy2sjmW0BCsrECoVHWh73s9o7Kw0uIegFaitch24GsM=",
  "sig": "ZPQcL1aIxMrA6HTq7RWWS8FZS08zSOkS69WohcBw1bDr4Qv2Wkrp2t+PNHMh3TmDUnOmUOiv7mBs/sOw08rhgPHqAU/qtvc1lzJFFOnPp5MBmDgffD1auwm7icGzm3myhEz3hKePxyRgZWB1DpPmMYaRuWt1RYcVmcqRa/Bfd0jR37a35neuOSlaip4jsQE1pHQzQ6itdQhBtZZABl1Plz5u8OaMIDTVj63485zi/n6iuuav+GL+JX2JL6pnWz3CT/9DNqa/McyYbxGswGMBAPgHCptseELVmOQ3ZKNHgMu6EtXEKLzmLeZ5REwnw2MTvpzuy5B1zIuxiafuAhh6Tg=="
}

Public Parameters

Parameter Type Description
apiKey string Unique API key identifier assigned by platform
timestamp string Request timestamp, UNIX millisecond-format string
key string Encrypted data of random AES key by Safeheron API RSA public key
sig string Signature data after signing request parameters by your API RSA private key
bizContent object AES-encrypted data of request parameters

Example Response

Example Response Encrypted Data

Example Response Encrypted Data

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1628652101098",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "gYZvuXdJADuaLYMU3z8q5vOtld62PSaPxrrhhr4UGwWbZm7Pw3/VImzHrd3oNy1XT8R55V7pbpQOBVdbmTev/rESnuaXlGofkB04JWAaRCIPytEKMHUNXZXEU9GLVppYst7bgiekMDIDScS4AkD75eDG8zru5Gr+gTxU4AYyHSzB0deQnxmNRemwZn+jaNgNs7WeBcuQWR1Cq2+1At8FlAqF5XzEaeQ3x1Q0N3iaLzSiXHQRYqP1Q6V6/aiIXchin/X9bBRYL618utjm4k0qoXU8Rw2JeEKzn7m2ShyyQQ31zX/rQ1xf0ar5PDtJPU/qYp9Kr4oVtcN6yHdG802nLqpGYlHlMvxy9vpnGFXb9oxh4xYnp0qRUfKLyJIylc3qhq6spHyWnuC5XV1S4lH+rIPNF1icV08ex7pjps2jvTICBzIIPExBamh1n00RcxZbkGqxYfRZ7SLTUCH06EaV5lP8yXNe3fNWjHk4mppaVDj0QFagqTzBM9AwMfHs1dOeDmcwkTacKQsvNRu3l5uZFQYkaUeVB9m3AhKw3lyl2oJIfJgYeBLJEHMGFVZXP92z8+J5KrZEVfkL8F80XkB3sXRP0BiIv/9Mm4VrjopYoDWyXttCysY0lJ9XImRyE7GkSy2sjmW0BCsrECoVHWh73s9o7Kw0uIegFaitch24GsM=",
  "bizContent": "fVwpf1ektFjHOAGK5D1Da+uza9AMknD8kmidt4aHL82JrsmxUpBMGq/bC2wX52sIRYgMJ5O/8fQhtvTXqWEmHVLxismG5ffYkkYVYRTAuV2sUMlU7nhmC6nDZzds+SOs81brzoS6INlHMp9pI59y9+FBYty8NR5a57UBo3XIsll1fWCHwt9T3OBoWpWmGFENpNGPPSADt/mDzXQRmDgL5KVGNOu8LkAVZmJCjunmX+41RCuhwdUQSWciv578ZI90cI9rRI5RxcxkVyI5XWZsEhCMoASvOQ3PJ0AkB64UigP+Jjj7oD9BnX+xO+9Tw1kGwdkVikG1aWnAd3/XrdeaRL9ZA/0HYZCHZ2VupoQ7GuEYDQ30iWklI4v6Uoofg+hGY872GVmsyTZNe9GMSYV4go69nd8cDiA39mGTSDZWvQ9VYvpeZiuzZpdS/O2UNv82qfujn0OmKup4RscQ5baXVSOgeS8UQVRmo4d7KWdxi2S5WvriM/MKemKM4myoMVi1jN8k2Bd8S/u5yX16d9KLZM8EBhTLxuo3/lMZn505SFqt9RnvF1qCRVDaDboq6r8V91ZOpciDmJyWrYGKleleBBObFRZ+Ro1UoY3IUiwfr98oTXVgDYE3YtcZjkPBi7IXcZIBz8m/of97aBitUn//og=="
}

Please refer to the right side.

Response Parameters

Parameter Type Description
code int Response result code
message string Response result description
timestamp string Response timestamp, UNIX millisecond-format string
sig string Signature data after signing response parameters by Safeheron API RSA private key
key string Encrypted data of random AES key by your API RSA public key
bizContent object AES-encrypted data of response parameters

Example Decrypted Data of Response Encrypted Data

[
  {
    "addressBookKey": "8be8c8de4bf749b3b08137ccxefa0b16",
    "addressBookName": "name",
    "whiteLists": [
      {
        "whiteListKey": "fdac862c74734d4fa81d62884f2ce4x0",
        "coinKey": "ETH_ROPSTEN",
        "coinFullName": "Ethereum(Ropsten)",
        "symbol": "ETH",
        "address": "0xCa104eA8CB4722e33a3E68eD4D12x3569594FBC5",
        "urlAddress": "https://ropsten.etherscan.io/address/0xCa104eA8CB4722e33a3E68eD4D12d3569594xBC5",
        "amount": 0,
        "usdAmount": 0,
        "whiteListStatus": "VERIFY_PASS",
        "passNum": 1,
        "signNum": 1,
        "refuseUserName": ""
      }
    ]
  }
]

Example Decrypted bizContent

For a specific format, please refer to response data of each interface.

API List

Wallet Account

Wallet account-related interfaces allows users to create their own wallet and perform wallet-related operations.

List Wallet Accounts

Filter the list of wallet accounts under the team based on various combinations of conditions.

HTTP Request

POST /v1/account/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "namePrefix": "namePrefixExample",
      "nameSuffix": "nameSuffixExample",
      "pageSize": 10,
      "pageNumber": 1,
      "hiddenOnUI": true
    }
}

Request Parameters

Parameter Type Required Description
pageNumber int32 No Page number, start from 1 (Default)
pageSize int32 No The number of items per page, the default is 10, max is 100
hiddenOnUI boolean No Filter the display status of wallet accounts in the Safeheron App
True: retrieve hidden wallet accounts
False: retrieve displayed wallet accounts
Default: retrieve all wallet accounts
namePrefix string No Filter the response based on the prefix of the account name
nameSuffix string No Filter the response based on the suffix of the account name

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "pageNumber": 1,
    "pageSize": 10,
    "totalElements": 100,
    "content": [
      {
        "accountKey": "accountfd9a0bc50c5f4a53b920c7c0ca85e0b7",
        "accountName": "default",
        "accountIndex": 0,
        "accountType": "VAULT_ACCOUNT",
        "accountTag": "NONE",
        "hiddenOnUI": false,
        "usdBalance": "0",
        "pubKeys": [
          {
            "signAlg": "secp256k1",
            "pubKey": "03ba5cfed3f88a811f0208570c64d1627af2e8f3363f65aad22be7490469dadd2a"
          },
          {
            "signAlg": "ed25519",
            "pubKey": "07df2ddef5d7c624d5452e10aaeb823cbf3e3d8b3d32e04af14cba374ac82d27"
          }
        ]
      }
    ]
  }
}

Response Data

Parameter Type Description
pageNumber int32 Page number
pageSize int32 The number of bars per page
totalElements int64 Total number of records
content array Data lists per page
└─accountKey string Account Key, the only account identifier
└─accountName string Account name
└─accountIndex int32 Account index
└─accountType string Account type
└─accountTag string Account tag
└─hiddenOnUI boolean Display status in Safeheron App
True: not display
False: display
└─usdBalance string Account balance, in USD when retrieve
└─pubKeys array Account public key information
     └─signAlg string Signature algorithm
     └─pubKey string Account compressed public key

Create a Wallet Account

Create a new wallet account that allows adding multiple cryptocurrencies simultaneously to this wallet account.

HTTP Request

POST /v1/account/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountName": "accountNameExample",
      "hiddenOnUI": true,
      "accountTag": "NONE",
      "coinKeyList": ["ETH_GOERLI"]
    }
}

Request Parameters

Parameter Type Required Description
accountName string No Account name, 30 characters max
hiddenOnUI boolean No Display status in Safeheron App
True: not display
False: display
Default: false
accountTag string No Account tag
coinKeyList array No Coin key list, 20 array elements max

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "accountKey": "account4b8d2c00520646c8862b68420aa1bc55",
    "pubKeys": [
      {
        "signAlg": "secp256k1",
        "pubKey": "03ba5cfed3f88a811f0208570c64d1627af2e8f3363f65aad22be7490469dadd2a"
      },
      {
        "signAlg": "ed25519",
        "pubKey": "07df2ddef5d7c624d5452e10aaeb823cbf3e3d8b3d32e04af14cba374ac82d27"
      }
    ],
    "coinAddressList": [
      {
        "coinKey": "ETH_GOERLI",
        "addressList": [
          {
            "address": "0x8c26DCdcED3627547b5662C7cc63472b44ed0c83",
            "addressType": "DEFAULT"
          }
        ]
      }
    ]
  }
}

Response Data

Parameter Type Description
accountKey string Wallet account key
pubKeys array Account public key info
└─signAlg string Signature algorithm
└─pubKey string Account compressed public key
coinAddressList array Coin address list
└─coinKey string Coin key
└─addressList array Address list
     └─address string Coin receiving address
     └─addressType string Address type

Batch Create Wallet Accounts V1

Generate a batch of wallet accounts based on a specified quantity. By default, the wallet accounts created in bulk will not be displayed in the Safeheron App. For optimal results, we recommend using the V2 version.

HTTP Request

POST /v1/account/batch/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountName": "accountNameExample",
      "count": 10,
      "accountTag": "NONE",
      "hiddenOnUI": true
    }
}

Request Parameters

Parameter Type Required Description
accountName string No The prefix of wallet account name, 30 characters max
hiddenOnUI boolean Yes Display status in Safeheron App
True: not display
False: display
Default: true
count int32 Yes Number of wallets to be created, greater than 0, less than 100
accountTag string No Account tag

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "accountKeyList": [
      "account4b8d2c00520646c8862b68420aa1bc55"
    ]
  }
}

Response Data

Parameter Type Description
accountKeyList array Wallet account key

Batch Create Wallet Accounts V2

Generate a batch of wallet accounts based on a specified quantity. By default, the wallet accounts created in bulk will not be displayed in the Safeheron App.

HTTP Request

POST /v2/account/batch/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountName": "accountNameExample",
      "count": 10,
      "accountTag": "NONE",
      "hiddenOnUI": true
    }
}

Request Parameters

Parameter Type Required Description
accountName string No The prefix of wallet account name, 30 characters max
hiddenOnUI boolean Yes Display status in Safeheron App
True: not display
False: display
Default: true
count int32 Yes Number of wallets to be created, greater than 0, less than 100
accountTag string No Account tag

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "accountKey": "account4b8d2c00520646c8862b68420aa1bc55",
      "pubKeys": [
        {
          "signAlg": "secp256k1",
          "pubKey": "03ba5cfed3f88a811f0208570c64d1627af2e8f3363f65aad22be7490469dadd2a"
        },
        {
          "signAlg": "ed25519",
          "pubKey": "07df2ddef5d7c624d5452e10aaeb823cbf3e3d8b3d32e04af14cba374ac82d27"
        }
      ]
    }
  ]
}

Response Data

Parameter Type Description
accountKey string Wallet account key
pubKeys array Account public key information
└─signAlg string Signature algorithm
└─pubKey string Account compressed public key

Change Display of Wallet Account in App

Change wallet account status in Safeheron App.

HTTP Request

POST /v1/account/update/show/state

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountKey": "account08a2369f59214b1e9099dc6346f694ca",
      "hiddenOnUI": true
    }
}

Request Parameters

Parameter Type Required Description
accountKey string Yes Wallet account key
hiddenOnUI boolean Yes Display status in Safeheron App
True: not display
False: display

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "result": true
  }
}

Response Data

Parameter Type Description
result boolean Execution result
True: success
False: fail

Batch Label Wallet Accounts

Relabel a batch of wallet accounts.
Please note that it only supports to label wallets which are created by API. And, the wallets have been used to sweep the target account cannot be relabelled.

HTTP Request

POST /v1/account/batch/update/tag

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountKeyList": ["account08a2369f59214b1e9099dc6346f694ca"],
      "accountTag": "DEPOSIT"
    }
}

Request Parameters

Parameter Type Required Description
accountKeyList array Yes Wallet account key
accountTag string Yes Account tag

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "result": true
  }
}

Response Data

Parameter Type Description
result boolean Execution result
True: success
False: fail

Add Coins to a Wallet Account

Add a new coin to your wallet account, and it will generate address information for the added coin. If the added currency already exists within the account, it will promptly return the existing address information for that coin.
In a wallet account, UTXO-based cryptocurrencies can have multiple address groups, while other types of cryptocurrencies usually have only one. To check whether a particular cryptocurrency supports the addition of multiple address groups, simply check the 'isMultipleAddress' parameter through the Coin List.

HTTP Request

POST /v1/account/coin/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "coinKey": "ETH_GOERLI",
      "accountKey": "account08a2369f59214b1e9099dc6346f694ca"
    }
}

Request Parameters

Parameter Type Required Description
coinKey string Yes Coin key
accountKey string Yes Account key

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "address": "0x1ec4fb20d8955d9d6a4ae45f01af04e170c0c022",
      "addressType": "DEFAULT"
    }
  ]
}

Response Data

Parameter Type Description
address string Coin receiving address
addressType string Address type

Batch Add Coins to Wallet Accounts

Bulk addition of a specified coin to designated wallet accounts. And, it generates address information for the coin. If a wallet account already contains the added coin, it will return the address information for that coin.

HTTP Request

POST /v1/account/batch/coin/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "coinKey": "ETH_GOERLI",
      "accountKeyList": [
        "accountdc0ec5415e924983b25dc4c7befdf163",
        "accounte49ede0c6c2b45d5bc31bcf6cad3a423",
        "account763de64717524b73b524cf19cb47f9b7"
      ],
      "addressGroupName": "addressGroupNameExample"
    }
}

Request Parameters

Parameter Type Required Description
coinKey string Yes Coin key
accountKeyList array Yes Account key, max is 100
addressGroupName string No Address group name, 30 characters max

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "addressList": [
        {
          "address": "0x1ec4fb20d8955d9d6a4ae45f01af04e170c0c022",
          "addressType": "DEFAULT"
        }
      ],
      "accountKey": "accountfd9a0bc50c5f4a53b920c7c0ca85e0b7"
    }
  ]
}

Response Data

Parameter Type Description
addressList array Address list
└─address string Coin receiving address
└─addressType string Address type
accountKey string Account key

List Coins Within a Wallet Account

Retrieve a complete list of all coins associated with a wallet account.

HTTP Request

POST /v1/account/coin/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountKey": "account08a2369f59214b1e9099dc6346f694ca"
    }
}

Request Parameters

Parameter Type Required Description
accountKey string Yes Account key

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "coinKey": "ETH_GOERLI",
      "coinFullName": "Ethereum(Ropsten)",
      "coinName": "ETH(Ropsten)",
      "coinDecimal": 18,
      "txRefUrl": "https://ropsten.etherscan.io/tx/{txHash}",
      "addressRefUrl": "https://ropsten.etherscan.io/address/{address}",
      "logoUrl": "https://resource.safeheron.vip/resource/img/logo/1626851355990.png",
      "symbol": "ETH",
      "isMultipleAddress": "NO",
      "feeCoinKey": "ETH_GOERLI",
      "feeUnit": "Gwei",
      "feeDecimal": 9,
      "showCoinDecimal": 8,
      "balance": "0",
      "usdBalance": "0",
      "addressList": [
        {
          "address": "0x1ec4fb20d8955d9d6a4ae45f01af04e170c0c022",
          "addressType": "DEFAULT",
          "addressBalance": "0"
        }
      ]
    }
  ]
}

Response Data

Parameter Type Description
coinKey string Coin key
coinFullName string Coin full name
coinName string Coin symbol
coinDecimal int32 Coin decimal
txRefUrl string Transaction URL on explorer
addressRefUrl string Block explorer URL
logoUrl string Coin logo URL
symbol string Coin unit
isMultipleAddress string Ability to create multiple address groups
Yes: yes
No: no
feeCoinKey string Coin key that is used to pay for the transaction fee when conducting a transfer, such as when transferring ERC-20 tokens, transaction fees are paid in ETH
feeUnit string Transaction fee unit name (Gwei, satoshis)
feeDecimal int32 Fee decimal on Safeheron Console
showCoinDecimal int32 Displayed coin decimal on Safeheron Console
balance string Account balance
usdBalance string Account balance, convert it into USD when query
addressList array Coin address list
└─address string Coin receiving address
└─addressType string Address type
└─addressBalance string The balance of this coin address

List Coin Address Group of a Wallet Account

Retrieve all address groups for a coin within the wallet account.

HTTP Request

POST /v1/account/coin/address/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "pageNumber": 1,
      "pageSize": 10,
      "coinKey": "ETH_GOERLI",
      "accountKey": "account08a2369f59214b1e9099dc6346f694ca"
    }
}

Request Parameters

Parameter Type Required Description
pageNumber int32 No Page number, start from 1 (Default)
pageSize int32 No The number of bars per page, the default is 10, max is 100
coinKey string Yes Coin key
accountKey string Yes Account key

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "pageNumber": 1,
    "pageSize": 10,
    "totalElements": 100,
    "content": [
      {
        "addressGroupKey": "addressffb9910f1f324f06a45ef055748fdf43",
        "addressGroupName": "AddressName",
        "addressList": [
          {
            "address": "0x1ec4fb20d8955d9d6a4ae45f01af04e170c0c022",
            "addressType": "DEFAULT",
            "addressBalance": "0"
          }
        ]
      }
    ]
  }
}

Response Data

Parameter Type Description
pageNumber int32 Page number
pageSize int32 The number of items per page
totalElements int64 Total number of records
content array Data lists per page
└─addressGroupKey string Address group key
└─addressGroupName string Address group name
└─addressList array Address list
     └─address string Coin receiving address
     └─addressType string Address type
     └─addressBalance string The balance of this coin address

Retrieve The Balance of an Address

Retrieve the balance of a specific coin address.

HTTP Request

POST /v1/account/coin/address/info

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "coinKey": "ETH_GOERLI",
      "address": "0xFA8667a8135B889E853D87eD6d6350d35ecaeEF7"
    }
}

Request Parameters

Parameter Type Required Description
coinKey string Yes Coin key
address string Yes Coin receiving address

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "address": "0x1ec4fb20d8955d9d6a4ae45f01af04e170c0c022",
    "addressType": "DEFAULT",
    "addressBalance": "0",
    "accountKey": "accountfd9a0bc50c5f4a53b920c7c0ca85e0b7"
  }
}

Response Data

Parameter Type Description
address string Coin receiving address
addressType string Address type
addressBalance string The balance of the coin address
accountKey string Account key

Rename Coin Address Group of a Wallet Account

Rename a coin address group of a wallet account.

HTTP Request

POST /v1/account/coin/address/name

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "addressGroupKey": "addressGroupKeyExample",
      "addressGroupName": "addressGroupNameExample"
    }
}

Request Parameters

Parameter Type Required Description
addressGroupKey string Yes Address group key
addressGroupName string Yes Address group name, 30 characters max

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "result": true
  }
}

Response Data

Parameter Type Description
result boolean Execution result
True: success
False: fail

Add Address Group for UTXOs

Add a new address group for UTXO-based cryptocurrencies under a wallet account. If the coin does not exist, it will be added first, followed by the new address group. The function will return the details of the added address(es).

HTTP Request

POST /v1/account/coin/address/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "coinKey": "BTC_TESTNET",
      "accountKey": "accountfd9a0bc50c5f4a53b920c7c0ca85e0b7",
      "addressGroupName": "addressGroupNameExample"
    }
}

Request Parameters

Parameter Type Required Description
coinKey string Yes Coin key
accountKey string Yes Account key
addressGroupName string Yes Address group name, 30 characters max

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "address": "0x1ec4fb20d8955d9d6a4ae45f01af04e170c0c022",
      "addressType": "DEFAULT"
    }
  ]
}

Response Data

Parameter Type Description
address string Coin receiving address
addressType string Address type

Batch Add Address Groups for UTXOs

For UTXO-based coins in a wallet account, it is possible to add multiple address groups to the account in bulk by specifying the wallet account and the desired number of address groups. The function will return the details of the added address groups. If the specified coin does not exist in the account, it will be added first, followed by the addition of the corresponding number of address groups.

HTTP Request

POST /v1/account/coin/utxo/batch/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "coinKey": "ETH_GOERLI",
      "accountKey": "accountfd9a0bc50c5f4a53b920c7c0ca85e0b7",
      "count": 10,
      "addressGroupName": "addressGroupNameExample"
    }
}

Request Parameters

Parameter Type Required Description
coinKey string Yes Coin key
accountKey string Yes Account key
count int32 Yes The number, max is 100
addressGroupName string No Address group name prefix, 30 characters max

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "addressList": [
        {
          "address": "0x1ec4fb20d8955d9d6a4ae45f01af04e170c0c022",
          "addressType": "DEFAULT"
        }
      ],
      "accountKey": "accountfd9a0bc50c5f4a53b920c7c0ca85e0b7"
    }
  ]
}

Response Data

Parameter Type Description
addressList array Address list
└─address string Coin receiving address
└─addressType string Address type
accountKey string Account key

Coins

The coin-related interface allows users to easily access information such as the list of cryptocurrencies supported by Safeheron, maintenance details for each coin, perform coin address validation, and more.

Coin List

Retrieve the list of coins supported by Safeheron.

HTTP Request

POST /v1/coin/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw="
}

Request Parameters

None

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "coinKey": "ETH_GOERLI",
      "coinFullName": "Ethereum(Ropsten)",
      "coinName": "ETH(Ropsten)",
      "coinDecimal": 18,
      "txRefUrl": "https://ropsten.etherscan.io/tx/{txHash}",
      "addressRefUrl": "https://ropsten.etherscan.io/address/{address}",
      "logoUrl": "https://resource.safeheron.vip/resource/img/logo/1626851355990.png",
      "symbol": "ETH",
      "isMultipleAddress": "NO",
      "feeCoinKey": "ETH_GOERLI",
      "feeUnit": "Gwei",
      "feeDecimal": 9,
      "showCoinDecimal": 8,
      "coinType": "NATIVE",
      "tokenIdentifier": "NATIVE",
      "minTransferAmount": "1",
      "blockChain": "ethereum",
      "network": "ropsten",
      "gasLimit": 21000,
      "isMemo": "NO",
      "isUtxo": "NO",
      "blockchainType": "EVM"
    }
  ]
}

Response Data

Parameter Type Description
coinKey string Coin key
coinFullName string Coin full name
coinName string Coin symbol
coinDecimal int32 Coin decimal
txRefUrl string Transaction URL on explorer
addressRefUrl string Block explorer URL
logoUrl string Coin logo URL
symbol string Coin unit
isMultipleAddress string Ability to create multiple address groups
Yes: yes
No: no
feeCoinKey string Coin key that is used to pay for the transaction fee when conducting a transfer, such as when transferring ERC-20 tokens, transaction fees are paid in ETH
feeUnit string Transaction fee unit name (Gwei, satoshis)
feeDecimal int32 Fee decimal on Safeheron Console
showCoinDecimal int32 Displayed coin decimal on Safeheron Console
coinType string Coin type
tokenIdentifier string Contract address, NATIVE is the native asset, non-NATIVE is the contract address
minTransferAmount string Minimum transfer amount, the transfer unit is symbol
blockChain string Blockchain
network string Blockchain network
gasLimit int32 Gas limit set by Safeheron
isMemo string Pay MEMO included type
Yes: yes
No: no
isUtxo string UTXO-based currency, view UTXO-based currencies
Yes: yes
No: no
blockchainType string Blockchain type

Coin Maintenance List

Retrieve the information of coins under maintenance in Safeheron.

HTTP Request

POST /v1/coin/maintain/list

Example Request

{
  "apiKey":"94d96119****************6eb2056a",
  "timestamp":1690361332392,
  "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw="
}

Request Parameters

None

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "coinKey": "ETH_GOERLI",
      "maintain": true,
      "title": "ETH Maintenance",
      "content": "We will maintain ETH tokens during xxx-xxx",
      "startTime": "1635170400000",
      "endTime": "1635199200000"
    }
  ]
}

Response Data

Parameter Type Description
coinKey string Coin key
maintain boolean Under maintenance or not
title string Maintenance title
content string Content
startTime string Coin maintenance start time, UNIX time in milliseconds
endTime string Coin maintenance end time, UNIX time in milliseconds

Verify Coin Address

Verify the correctness of a cryptocurrency address based on the provided validation attributes.

HTTP Request

POST /v1/coin/address/check

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "coinKey": "ETH_GOERLI",
      "address": "0x1ec4fb20d8955d9d6a4ae45f01af04e170c0c022",
      "checkContract": false,
      "checkAml": false,
      "checkAddressValid": true
    }
}

Request Parameters

Parameter Type Required Description
coinKey string Yes Coin key
address string Yes Coin receiving address
checkContract boolean No Verify contract address (If no value is provided, 'false' by default)
True: verify
False: not verify
checkAml boolean No Verify AML compliance (If no value is provided or be verified, AML-compliant address by default)
True: verify
False: not verify
checkAddressValid boolean No Verify the validity of address format (If no value is provided, 'false' by dafault)
True: verify
False: not verify

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "addressValid": true
  }
}

Response Data

Parameter Type Description
addressValid boolean Valid address format
True: valid address
False: invalid address
contract boolean Contract address
True: contract address
False: non-contract address
amlValid boolean Subject to risk control limitations
True: AML valid address
False: AML blacklisted address

Snapshot the Coin Balance

Safeheron takes and stores daily snapshots of balances based on the transaction block's creation time in GMT+8. Please note that the snapshot only keeps data within 30 days.

HTTP Request

POST /v1/coin/balance/snapshot

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "gmt8Date": "2023-01-01"
    }
}

Request Parameters

Parameter Type Required Description
gmt8Date string Yes Only supports querying data within the last 30 days, with the parameter a GMT+8 time in the format of yyyy-MM-dd provided.
Note: If the provided value is the current date (not a historical date), it will return the balance up to the current time.

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "coinKey": "ETH_GOERLI",
      "coinBalance": "0"
    }
  ]
}

Response Data

Parameter Type Description
coinKey string Coin key
coinBalance string Coin balance, displayed in the unit of the symbol specified in the coin list

Retrieve Current Block Height for Currency

Retrieve the current block height for a specific cryptocurrency by providing its key.

HTTP Request

POST /v1/coin/block/height

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "coinKey": "ETH_GOERLI"
    }
}

Request Parameters

Parameter Type Required Description
coinKey string Yes Coin key, multiple coin keys are separated by commas

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "coinKey": "ETH_GOERLI",
      "localBlockHeight": 0
    }
  ]
}

Response Data

Parameter Type Description
coinKey string Coin key
localBlockHeight int64 Coin's current block height

Transaction

The transaction-related interface provides access to query transaction information, initiate transactions, accelerate transactions, cancel transactions, and more.

Transaction List V1

Filter transaction history by various conditions. For optimal results, we recommend using the V2 version.

HTTP Request

POST /v1/transactions/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "pageNumber": 1,
      "pageSize": 100,
      "sourceAccountKey": "account27ddec416e2342918e4381d4727c2905",
      "sourceAccountType": "VAULT_ACCOUNT",
      "transactionStatus": "COMPLETED",
      "transactionSubStatus": "CONFIRMED",
      "destinationAccountType": "ONE_TIME_ADDRESS",
      "realDestinationAccountType": "ONE_TIME_ADDRESS",
      "destinationAccountKey": "",
      "destinationAddress": "0x57b2aCEf9f40aaBCC20D3aac4A37eAF2371a788E",
      "hideSmallAmountUsd": "0.01",
      "coinKey": "ETH_GOERLI",
      "feeCoinKey": "ETH_GOERLI"
    }
}

Request Parameters

Parameter Type Required Description
pageNumber int32 No Page number, start from 1 (Default)
pageSize int32 No The number of items per page, the default is 10, max is 100
sourceAccountKey string No Source account key
sourceAccountType string No Source account type
destinationAccountKey string No Destination account key
destinationAccountType string No Destination account type
createTimeMin int64 No Start time for creating a transaction, UNIX timestamp (ms)
createTimeMax int64 No End time for creating a transaction, UNIX timestamp (ms)
txAmountMin string No Min transaction amount
txAmountMax string No Max transaction amount
coinKey string No Coin key, multiple coin keys are separated by commas
feeCoinKey string No Transaction fee coin key, multiple coin keys are separated by commas
transactionStatus string No Transaction status
transactionSubStatus string No Transaction substatus
completedTimeMin int64 No Min duration for completing a transaction, UNIX timestamp (ms)
completedTimeMax int64 No Max duration for completing a transaction, UNIX timestamp (ms)
customerRefId string No Merchant unique business ID
realDestinationAccountType string No Type of actual destination account
hideSmallAmountUsd string No Filter out custom transaction amounts, excluding transaction records below a certain amount specified in USD from the query results

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "pageNumber": 1,
    "pageSize": 10,
    "totalElements": 100,
    "content": [
      {
        "txKey": "tx46461daa9b7a4612abce99e7ce598844",
        "txHash": "0xf7292ea446b573bab7311921e2489fb29d26ec393f2d6c8e280a7157f635234",
        "coinKey": "ETH_GOERLI",
        "txAmount": "0.001",
        "sourceAccountKey": "account4b8d2c00520646c8862b68420aa1234234",
        "sourceAccountType": "VAULT_ACCOUNT",
        "sourceAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
        "sourceAddressList": [
          {
            "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d"
          }
        ],
        "destinationAccountKey": "6553009588f443b1970a5962590a2158",
        "destinationAccountType": "WHITELISTING_ACCOUNT",
        "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594F234234",
        "destinationAddressList": [
          {
            "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d",
            "amount": "0.0001"
          },
          {
            "address": "tb1qrjrg92y7x0zc4h6e4xxg66r36jl22x84w3s3a0",
            "amount": "0.0001"
          }
        ],
        "destinationTag": "TEST",
        "transactionType": "NORMAL",
        "transactionStatus": "COMPLETED",
        "transactionSubStatus": "CONFIRMED",
        "createTime": 1626075236000,
        "note": "Initiate transaction",
        "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
        "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
        "txFee": "0.000106841386050000",
        "feeCoinKey": "ETH_GOERLI",
        "replaceTxHash": "0x628626531285bb90d4130d3beb3c355d2a7fe0bdfa1fa05e3431f15340aafeb6",
        "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e723",
        "customerExt1": "1",
        "customerExt2": "2",
        "amlLock": "NO",
        "blockHeight": 10000000,
        "completedTime": 1626075236000,
        "realDestinationAccountType": "VAULT_ACCOUNT",
        "transactionSubStatusDesc": "Confirmed",
        "txAmountToUsd": "19.9813552",
        "sourceAccountName": "wallet1",
        "sourceAccountTypeName": "vault",
        "destinationAccountName": "API transaction group",
        "destinationAccountTypeName": "Whitelisted address",
        "auditUserName": "test",
        "createdByUserName": "test"
      }
    ]
  }
}

Response Data

Parameter Type Description
pageNumber int32 Page number
pageSize int32 The number of items per page
totalElements int64 Total number of records
content array Data lists per page
└─txKey string Transaction key
└─txHash string Transaction hash
└─coinKey string Coin key
└─txAmount string Transaction amount, the unit is the symbol returned by the coin list
└─sourceAccountKey string Source account key
└─sourceAccountType string Source account type
└─sourceAddress string 交易源地址(如果交易币种为 UTXO 类型请使用 sourceAddressList 字段)
└─sourceAddressList array 交易源地址列表
     └─address string Source address
└─destinationAccountKey string Destination account key
└─destinationAccountType string Destination account type
└─destinationAddress string 交易目标地址(如果交易币种为 UTXO 类型请使用 destinationAddressList 字段)
└─destinationAddressList array Destination address list
     └─address string Destination address
     └─amount string Transaction amount
└─destinationTag string If the destination is tag or memo type, then this value is empty
└─transactionType string Transaction type
└─transactionStatus string Transaction status
└─transactionSubStatus string Transaction substatus
└─createTime int64 Transaction creation time, UNIX timestamp (ms)
└─note string Note
└─auditUserKey string Final approver key
└─createdByUserKey string Creator key
└─txFee string Transaction fee
└─feeCoinKey string Coin key that is used to pay for the transaction fee when conducting a transfer, such as when transferring ERC-20 tokens, transaction fees are paid in ETH
└─replaceTxHash string Quoted transaction hash (Only for sped-up transactions)
└─customerRefId string Merchant unique business ID
└─customerExt1 string Merchant extended field
└─customerExt2 string Merchant extended field
└─amlLock string Whether the source address contains AML address(es)
YES: contain
NO: not contain
└─blockHeight int64 Block height (Available when the transaction status is pending confirmation or success)
└─completedTime int64 Transaction completion time
└─realDestinationAccountType string Type of actual destination account
└─transactionSubStatusDesc string Transaction substatus description
└─txAmountToUsd string Amount in USD when transact
└─sourceAccountName string Source account name
└─sourceAccountTypeName string Source account type name
└─destinationAccountName string Destination account name
└─destinationAccountTypeName string Destination account type name
└─auditUserName string Final approver username
└─createdByUserName string Creator username

Transaction List V2

Filter transaction history by various conditions.

HTTP Request

POST /v2/transactions/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "direct": "NEXT",
      "limit": 100,
      "fromId": "tx46461daa9b7a4612abce99e7ce598844",
      "sourceAccountKey": "account27ddec416e2342918e4381d4727c2905",
      "sourceAccountType": "VAULT_ACCOUNT",
      "transactionStatus": "COMPLETED",
      "transactionSubStatus": "CONFIRMED",
      "destinationAccountType": "ONE_TIME_ADDRESS",
      "realDestinationAccountType": "ONE_TIME_ADDRESS",
      "destinationAccountKey": "",
      "destinationAddress": "0x57b2aCEf9f40aaBCC20D3aac4A37eAF2371a788E",
      "hideSmallAmountUsd": "0.01",
      "coinKey": "ETH_GOERLI",
      "feeCoinKey": "ETH_GOERLI"
    }
}

Request Parameters

Parameter Type Required Description
direct string No Query page direction, NEXT by default
limit int32 No The number of items to retrieve at a time, default max value is 500
fromId string No txkey of the first transaction record. If the first page has no value, provide the txKey of the last transaction record from the previous result
sourceAccountKey string No Source account key
sourceAccountType string No Source account type
destinationAccountKey string No Destination account key
destinationAccountType string No Destination account type
createTimeMin int64 No Start time for creating a transaction, UNIX timestamp (ms) (If no value is provided, the default value is createTimeMax minus 24 hours)
createTimeMax int64 No End time for creating a transaction, UNIX timestamp (ms) (If no value is provided, the default value is the current UTC time)
txAmountMin string No Min transaction amount
txAmountMax string No Max transaction amount
coinKey string No Coin key, multiple coin keys are separated by commas
feeCoinKey string No Transaction fee coin key, multiple coin keys are separated by commas
transactionStatus string No Transaction status
transactionSubStatus string No Transaction substatus
completedTimeMin int64 No Min duration for completing a transaction, UNIX timestamp (ms)
completedTimeMax int64 No Max duration for completing a transaction, UNIX timestamp (ms)
customerRefId string No Merchant unique business ID
realDestinationAccountType string No Type of actual destination account
hideSmallAmountUsd string No Filter out custom transaction amounts, excluding transaction records below a certain amount specified in USD from the query results

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "txKey": "tx46461daa9b7a4612abce99e7ce598844",
      "txHash": "0xf7292ea446b573bab7311921e2489fb29d26ec393f2d6c8e280a7157f635234",
      "coinKey": "ETH_GOERLI",
      "txAmount": "0.001",
      "sourceAccountKey": "account4b8d2c00520646c8862b68420aa1234234",
      "sourceAccountType": "VAULT_ACCOUNT",
      "sourceAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
      "sourceAddressList": [
        {
          "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d"
        }
      ],
      "destinationAccountKey": "6553009588f443b1970a5962590a2158",
      "destinationAccountType": "WHITELISTING_ACCOUNT",
      "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594F234234",
      "destinationAddressList": [
        {
          "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d",
          "amount": "0.0001"
        },
        {
          "address": "tb1qrjrg92y7x0zc4h6e4xxg66r36jl22x84w3s3a0",
          "amount": "0.0001"
        }
      ],
      "destinationTag": "TEST",
      "transactionType": "NORMAL",
      "transactionStatus": "COMPLETED",
      "transactionSubStatus": "CONFIRMED",
      "createTime": 1626075236000,
      "note": "Initiate transaction",
      "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "txFee": "0.000106841386050000",
      "feeCoinKey": "ETH_GOERLI",
      "replaceTxHash": "0x628626531285bb90d4130d3beb3c355d2a7fe0bdfa1fa05e3431f15340aafeb6",
      "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "customerExt1": "1",
      "customerExt2": "2",
      "amlLock": "NO",
      "blockHeight": 10000000,
      "completedTime": 1626075236000,
      "realDestinationAccountType": "VAULT_ACCOUNT",
      "transactionSubStatusDesc": "Confirmed",
      "txAmountToUsd": "19.9813552",
      "sourceAccountName": "wallet1",
      "sourceAccountTypeName": "vault",
      "destinationAccountName": "API transaction group",
      "destinationAccountTypeName": "Whitelisted address",
      "auditUserName": "test",
      "createdByUserName": "test"
    }
  ]
}

Response Data

Parameter Type Description
txKey string Transaction key
txHash string Transaction hash
coinKey string Coin key
txAmount string Transaction amount, the unit is the symbol returned by the coin list
sourceAccountKey string Source account key
sourceAccountType string Source account type
sourceAddress string Source address (If the transaction currency is of UTXO type, please use the sourceAddressList field)
sourceAddressList array Source address list
└─address string Source address
destinationAccountKey string Destination account key
destinationAccountType string Destination account type
destinationAddress string Destination address (if the transaction currency is of UTXO type, please use the destinationAddressList field)
destinationAddressList array Destination address list
└─address string Destination address
└─amount string Transaction amount
destinationTag string If the destination is tag or memo type, then this value is empty
transactionType string Transaction type
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
createTime int64 Transaction creation time, UNIX timestamp (ms)
note string Note
auditUserKey string Final approver key
createdByUserKey string Creator key
txFee string Transaction fee
feeCoinKey string Coin key that is used to pay for the transaction fee when conducting a transfer, such as when transferring ERC-20 tokens, transaction fees are paid in ETH
replaceTxHash string Quoted transaction hash (Only for sped-up transactions)
customerRefId string Merchant unique business ID
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
amlLock string Whether the source address contains AML address(es)
YES: contain
NO: not contain
blockHeight int64 Block height (Available when the transaction status is pending confirmation or success)
completedTime int64 Transaction completion time
realDestinationAccountType string Type of actual destination account
transactionSubStatusDesc string Transaction substatus description
txAmountToUsd string Amount in USD when transact
sourceAccountName string Source account name
sourceAccountTypeName string Source account type name
destinationAccountName string Destination account name
destinationAccountTypeName string Destination account type name
auditUserName string Final approver username
createdByUserName string Creator username

Create a Transaction

Create a new transaction.

HTTP Request

POST /v2/transactions/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "customerRefId": "customerRefIdExample",
      "customerExt1":"customerExt1Example",
      "customerExt2":"customerExt2Example",
      "note":"noteExample",
      "coinKey": "ETH_GOERLI",
      "txAmount": "0.00002",
      "txFeeLevel":"HIGH",
      "sourceAccountKey": "accounta247ca82828a4f93948282106135d109",
      "sourceAccountType": "VAULT_ACCOUNT",
      "destinationAccountKey": "5d1fd5c848fb441da8d2ec4f013acac5",
      "destinationAccountType": "WHITELISTING_ACCOUNT",
      "destinationAddress": "0xFA8667a8135B889E853D87eD6d6350d35ecaeEF7",
      "destinationTag": "destinationTagExampl",
      "treatAsGrossAmount": false
    }
}

Request Parameters

Parameter Type Required Description
customerRefId string Yes Merchant unique business ID (100 characters max)
customerExt1 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
customerExt2 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
note string No Transaction note (180 characters max)
coinKey string Yes Coin key
txFeeLevel string No Transaction Fee Rate Grade
Choose between transaction fees. If the transaction fee rate is preset, it will take priority
feeRateDto object No Transaction fee rate, either txFeeLevel or feeRateDto
└─feeRate string No Fee rate: fee per byte for UTXO, gas price for EVM chains, free limit for TRON (optional) and gas price for SUI
For tokens support EIP-1559, please provide max priority fee and max fee instead of fee rate
└─gasLimit string No EVM gas limit
└─maxPriorityFee string No EIP-1559 max priority fee
└─maxFee string No EIP-1559 max fee
└─gasPremium string No Filecoin gas premium, similar to EIP-1559 max priority fee
└─gasFeeCap string No Filecoin gas fee cap, similar to EIP-1559 max fee
└─gasBudget string No SUI gas budget, similar to EIP-1559 max fee
└─gasUnitPrice string No The gas price the transaction sender is willing to pay, similar to EVM gasPrice
└─maxGasAmount string No The maximum number of gas units that the transaction sender is willing to spend to execute the transaction, similar to EVM gasLimit
maxTxFeeRate string No Maximum estimated transaction fee rate for a given transaction
txAmount string Yes Transaction amount
treatAsGrossAmount boolean No Deduct transaction fee from the transfer amount (only supports account model)
False by default. If set to true, the transaction fee will be automatically calculated based on the parameter txFeeLevel or feeRateDto and deducted from the transfer amount.
Please note this parameter can only be considered if a transaction’s asset is a base asset, such as ETH or MATIC.If the asset can’t be used for transaction fees, like USDC, this parameter is ignored
sourceAccountKey string Yes Source account key
sourceAccountType string Yes Account type
destinationAccountKey string No Destination account key
Whitelist key if the destination is a whitelisted account;
Wallet account key if the destination is a wallet account;
No key for unknown address
destinationAccountType string Yes Destination account type
destinationAddress string No If the destinationAccountType is ONE_TIME_ADDRESS, then this field should have a value
destinationTag string No Destination tag
isRbf boolean No Bitcoin enabled for RBF (Replace-by-fee is a protocol in the Bitcoin mempool that allows for the replacement of an unconfirmed transaction with another one)
failOnContract boolean No The default setting for the parameter is [true]. This parameter determines whether a transaction can be created when the target address is a smart contract. If set to [false], a transaction can still be created for a contract address
nonce int64 No Customizable nonce (In blockchain technology, the nonce is a transaction counter that helps to prevent double-spending and replay attacks on a blockchain network)
sequenceNumber int64 No Customizable sequence number on Aptos, similar to the nonce in the EVM.
balanceVerifyType string No Balance verification, BALANCE_CHECK by default

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "txKey": "tx46461daa9b7a4612abce99e7ce598844"
  }
}

Response Data

Parameter Type Description
txKey string Transaction key

UTXO Multi-Address Transfer

For UTXOs that natively support multiple OUTPUTs, this interface allows a single transaction to transfer funds to multiple destination addresses simultaneously.(To use the Co-Signer, please use version 1.5.9 or higher)

HTTP Request

POST /v1/transactions/utxo/multidest/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "customerRefId": "customerRefIdExample",
      "customerExt1":"customerExt1Example",
      "customerExt2":"customerExt2Example",
      "note":"noteExample",
      "coinKey": "BTC_TESTNET",
      "txFeeLevel":"HIGH",
      "sourceAccountKey": "accounta247ca82828a4f93948282106135d109",
      "sourceAccountType": "VAULT_ACCOUNT",
      "destinationAddressList": [
        {
          "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d",
          "amount": "0.0001"
        },
        {
          "address": "tb1qrjrg92y7x0zc4h6e4xxg66r36jl22x84w3s3a0",
          "amount": "0.0001"
        }
      ],
      "destinationTag": "destinationTagExampl"
    }
}

Request Parameters

Parameter Type Required Description
customerRefId string Yes Merchant unique business ID (100 characters max)
customerExt1 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
customerExt2 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
note string No Transaction note (180 characters max)
coinKey string Yes Coin Key (Only supports UTXO-based currencies, such as Bitcoin, Bitcoin Cash, Dash)
txFeeLevel string No Transaction Fee Rate Grade
Choose between the transaction fee rate. If the transaction fee rate is preset, it will take priority
feeRateDto object No Transaction fee rate, either txFeeLevel or feeRateDto
└─feeRate string No Fee rate: fee per byte for UTXO
maxTxFeeRate string No Maximum estimated transaction fee rate for a given transaction
sourceAccountKey string Yes Source account key
sourceAccountType string Yes Account type
destinationAddressList array Yes Destination address list
└─address string Yes Destination address
└─amount string Yes Transaction amount
destinationTag string No Destination tag
isRbf boolean No Bitcoin enabled for RBF (Replace-by-fee is a protocol in the Bitcoin mempool that allows for the replacement of an unconfirmed transaction with another one)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "txKey": "tx46461daa9b7a4612abce99e7ce598844"
  }
}

Response Data

Parameter Type Description
txKey string Transaction key

Speed Up Transactions

Speed up transactions facing delayed on-chain confirmation due to low transaction fees. The supported blockchains are as follows:

HTTP Request

POST /v2/transactions/recreate

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "txKey": "tx46461daa9b7a4612abce99e7ce598844",
      "coinKey": "ETH_GOERLI",
      "txHash": "0x7c45560e4aed51cbb45e477214c106203df3210e50740d2dad94ea7da41af803",
      "txFeeLevel": "HIGH"
    }
}

Request Parameters

Parameter Type Required Description
txKey string Yes Transaction key
txHash string Yes Transaction hash
coinKey string Yes Coin key
txFeeLevel string No Transaction Fee Rate Grade
Choose between the transaction fee rate. If the transaction fee rate is preset, it will take priority
feeRateDto object No Transaction fee rate, either txFeeLevel or feeRateDto
└─feeRate string No Fee rate: fee per byte for UTXO and gas price for EVM chains
└─gasLimit string No EVM gas limit
└─maxPriorityFee string No EIP-1559 max priority fee
└─maxFee string No EIP-1559 max fee
└─gasPremium string No Filecoin gas premium, similar to EIP-1559 max priority fee
└─gasFeeCap string No Filecoin gas fee cap, similar to EIP-1559 max fee
└─gasUnitPrice string No The gas price the transaction sender is willing to pay, similar to EVM gasPrice
└─maxGasAmount string No The maximum number of gas units that the transaction sender is willing to spend to execute the transaction, similar to EVM gasLimit

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "txKey": "tx46461daa9b7a4612abce99e7ce598844"
  }
}

Response Data

Parameter Type Description
txKey string Transaction key

Retrieve a Transaction

To query a transaction, either customerRefId or txKey are required. If both values are provided, the retrieval will be based on the txKey.

HTTP Request

POST /v1/transactions/one

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "txKey": "tx46461daa9b7a4612abce99e7ce598844",
      "customerRefId": "customerRefIdExample"
    }
}

Request Parameters

Parameter Type Required Description
txKey string No Transaction key
customerRefId string No Merchant unique business ID (100 characters max)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "txKey": "tx46461daa9b7a4612abce99e7ce598844",
    "txHash": "0xf7292ea446b573bab7311921e2489fb29d26ec393f2d6c8e280a7157f635234",
    "coinKey": "ETH_GOERLI",
    "txAmount": "0.001",
    "sourceAccountKey": "account4b8d2c00520646c8862b68420aa1234234",
    "sourceAccountType": "VAULT_ACCOUNT",
    "sourceAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
    "sourceAddressList": [
      {
        "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d"
      }
    ],
    "destinationAccountKey": "6553009588f443b1970a5962590a2158",
    "destinationAccountType": "WHITELISTING_ACCOUNT",
    "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594F234234",
    "destinationAddressList": [
      {
        "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d",
        "amount": "0.0001"
      },
      {
        "address": "tb1qrjrg92y7x0zc4h6e4xxg66r36jl22x84w3s3a0",
        "amount": "0.0001"
      }
    ],
    "destinationTag": "TEST",
    "transactionStatus": "COMPLETED",
    "transactionSubStatus": "CONFIRMED",
    "createTime": 1626075236000,
    "note": "Initiate transaction",
    "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "txFee": "0.000106841386050000",
    "feeCoinKey": "ETH_GOERLI",
    "replaceTxHash": "",
    "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "customerExt1": "1",
    "customerExt2": "2",
    "blockHeight": 10000000,
    "completedTime": 1626075236000,
    "realDestinationAccountType": "VAULT_ACCOUNT",
    "transactionSubStatusDesc": "Confirmed",
    "txAmountToUsd": "19.9813552",
    "sourceAccountName": "wallet1",
    "sourceAccountTypeName": "vault",
    "destinationAccountName": "API transaction group",
    "destinationAccountTypeName": "Whitelisted address",
    "auditUserName": "test",
    "createdByUserName": "test",
    "speedUpHistory": [{
      "txKey": "tx0c7f8ab51dfa4fe4a20a29689ba43cd0",
      "txHash": "",
      "coinKey": "ETH_GOERLI",
      "txAmount": "0.001",
      "sourceAccountKey": "account4b8d2c00520646c8862b68420aa1234234",
      "sourceAccountType": "VAULT_ACCOUNT",
      "sourceAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
      "destinationAccountKey": "6553009588f443b1970a5962590a2158",
      "destinationAccountType": "WHITELISTING_ACCOUNT",
      "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594F234234",
      "destinationTag": "TEST",
      "transactionType": "NORMAL",
      "transactionStatus": "FAILED",
      "transactionSubStatus": "THE_DEAL_WAS_ABANDONED",
      "createTime": 1626075236000,
      "note": "Initiate transaction",
      "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "txFee": "0.000106841386050000",
      "feeCoinKey": "ETH_GOERLI",
      "replaceTxHash": "0xf7292ea446b573bab7311921e2489fb29d26ec393f2d6c8e280a7157f635234",
      "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e722",
      "customerExt1": "1",
      "customerExt2": "2",
      "amlLock": "NO",
      "blockHeight": 10000000,
      "completedTime": 1626075236000,
      "realDestinationAccountType": "VAULT_ACCOUNT",
      "transactionSubStatusDesc": "Confirmed",
      "txAmountToUsd": "19.9813552",
      "sourceAccountName": "wallet1",
      "sourceAccountTypeName": "vault",
      "destinationAccountName": "API transaction group",
      "destinationAccountTypeName": "Whitelisted address",
      "auditUserName": "test",
      "createdByUserName": "test"
    }]
  }
}

Response Data

Parameter Type Description
txKey string Transaction key
txHash string Transaction hash
coinKey string Coin key
txAmount string Transaction amount, the unit is the symbol returned by the coin list
sourceAccountKey string Source account key
sourceAccountType string Source account type
sourceAddress string Source address (If the transaction currency is of UTXO type, please use the sourceAddressList field)
sourceAddressList array Source address list
└─address string Source address
destinationAccountKey string Destination account key
destinationAccountType string Destination account type
destinationAddress string Destination address (If the transaction currency is of UTXO type, please use the destinationAddressList field)
destinationAddressList array Destination address list
└─address string Destination address
└─amount string Transaction amount
destinationTag string If the destination is tag or memo type, then this value is empty
transactionType string Transaction type
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
createTime int64 Transaction creation time, UNIX timestamp (ms)
note string Note
auditUserKey string Final approver key
createdByUserKey string Creator key
txFee string Transaction fee
feeCoinKey string Coin key that is used to pay for the transaction fee when conducting a transfer, such as when transferring ERC-20 tokens, transaction fees are paid in ETH
replaceTxHash string Quoted transaction hash (Only for sped-up transactions)
customerRefId string Merchant unique business ID
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
amlLock string Whether the source address contains AML address(es)
YES: contain
NO: not contain
blockHeight int64 Block height (for confirming transaction and succeeded transaction)
completedTime int64 Transaction completion time
realDestinationAccountType string Type of actual destination account
transactionSubStatusDesc string Transaction substatus description
txAmountToUsd string Amount in USD when transact
sourceAccountName string Source account name
sourceAccountTypeName string Source account type name
destinationAccountName string Destination account name
destinationAccountTypeName string Destination account type name
auditUserName string Final approver username
createdByUserName string Creator username
speedUpHistory array Transaction history (resulting from sped-up EVM and UTXO-based transactions); Only have a value once the current transaction has been accelerated

Estimate Transaction Fee

This interface provides users with an estimated range of transaction fee rates of a given cryptocurrency when creating or speeding up transactions.

HTTP Request

POST /v2/transactions/getFeeRate

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "coinKey": "ETH_GOERLI",
      "txHash": "0x7c45560e4aed51cbb45e477214c106203df3210e50740d2dad94ea7da41af803",
      "sourceAccountKey": "account08a2369f59214b1e9099dc6346f694ca",
      "sourceAddress": "0xC3A6b8dd08D3741819fAdBa4c5780b9524f510D5",
      "destinationAddress": "0xC3A6b8dd08D3741819fAdBa4c5780b9524f510D4",
      "destinationAddressList": [
        {
          "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d",
          "amount": "0.0001"
        },
        {
          "address": "tb1qrjrg92y7x0zc4h6e4xxg66r36jl22x84w3s3a0",
          "amount": "0.0001"
        }
      ],
      "value": "10"
    }
}

Request Parameters

Parameter Type Required Description
coinKey string Yes Coin key
txHash string No Transaction hash, pass the original transaction hash when speed up transaction estimation
sourceAccountKey string No Source account key (Required for UTXOs)
sourceAddress string No Source address is required for TRON when estimating transaction fees. For EVM-based transactions, it is required when retrieving the gas limit on the blockchain, otherwise a default fixed gas limit will be returned. For Aptos-based transactions, it is required when retrieving the max gas amount on the blockchain, otherwise a default fixed max gas amount will be returned
destinationAddress string No Destination address is optional for TRON and FIL when estimating transaction fees (although providing it may result in a more accurate fee estimation). For EVM-based transactions, it is required when retrieving the gas limit on the blockchain, otherwise a default fixed gas limit will be returned. For Aptos-based transactions, it is required when retrieving the max gas amount on the blockchain, otherwise a default fixed max gas amount will be returned
destinationAddressList array No Destination address list (Use this field only when the transaction currency is of UTXO type and involves transferring funds to multiple addresses in a single transaction)
└─address string No Destination address
└─amount string No Transaction amount
value string No Transfer amount (It can estimate transaction fee more accurately)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "feeUnit": "Gwei",
    "minFeeRate": {
      "baseFee": "0.000049522",
      "fee": "0.000034392259671",
      "feeRate": "1.000049522",
      "gasLimit": "22000",
      "maxFee": "1.000049522",
      "bytesSize": "1",
      "gasPremium": "1",
      "gasFeeCap": "1",
      "gasBudget": "1500",
      "gasUnitPrice": "1",
      "maxGasAmount": "1500"
    },
    "lowFeeRate": {
      "baseFee": "0.000049522",
      "fee": "0.000034392259671",
      "feeRate": "1.100049522",
      "gasLimit": "22000",
      "maxFee": "1.100055713",
      "maxPriorityFee": "1.1",
      "bytesSize": "1",
      "gasPremium": "1",
      "gasFeeCap": "1",
      "gasBudget": "1500",
      "gasUnitPrice": "1",
      "maxGasAmount": "1500"
    },
    "middleFeeRate": {
      "baseFee": "0.000049522",
      "fee": "0.000037180104885",
      "feeRate": "1.500049522",
      "gasLimit": "22000",
      "maxFee": "1.500079325",
      "maxPriorityFee": "1.5",
      "bytesSize": "1",
      "gasPremium": "1",
      "gasFeeCap": "1",
      "gasBudget": "1500",
      "gasUnitPrice": "1",
      "maxGasAmount": "1500"
    },
    "highFeeRate": {
      "baseFee": "0.000049522",
      "fee": "1.887726651",
      "feeRate": "2.000049522",
      "gasLimit": "22000",
      "maxFee": "2.000112945",
      "maxPriorityFee": "2",
      "bytesSize": "1",
      "gasPremium": "1",
      "gasFeeCap": "1",
      "gasBudget": "1500",
      "gasUnitPrice": "1",
      "maxGasAmount": "1500"
    }
  }
}

Response Data

Parameter Type Description
feeUnit string Fee rate unit
minFeeRate object Minimum fee rate
lowFeeRate object Fee rate when the transaction fee rate is low
middleFeeRate object Fee rate when the transaction fee rate is medium
highFeeRate object Fee rate when the transaction fee rate is high
└─feeRate string Fee rate, UTXO fee per byte, EVM gas price, TRON fee limit and SUI gas price
└─fee string Estimated transaction fee
└─gasLimit string EVM gas limit
└─baseFee string EIP-1559 base fee
└─maxPriorityFee string EIP-1559 max priority fee
└─maxFee string EIP-1559 max fee, different from maxTxFeeRate in API
└─bytesSize string The number of bytes for a UTXO, excluding UTXOs that are less than 1,000 satoshis
└─gasPremium string Filecoin gas premium, similar to EIP-1559 max priority fee
└─gasFeeCap string Filecoin gas fee cap, similar to EIP-1559 max fee
└─gasBudget string SUI gasBudget
└─gasUnitPrice string The gas price the transaction sender is willing to pay, similar to EVM gasPrice
└─maxGasAmount string The maximum number of gas units that the transaction sender is willing to spend to execute the transaction, similar to EVM gasLimit

Cancel Transaction

Cancel the authorization-pending transaction and the signing-in-progress transaction.

HTTP Request

POST /v1/transactions/cancel

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "txKey": "tx46461daa9b7a4612abce99e7ce598844",
      "txType": "TRANSACTION"
    }
}

Request Parameters

Parameter Type Required Description
txKey string Yes Transaction key
txType string No Transaction type, TRANSACTION by default

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "result": true
  }
}

Response Data

Parameter Type Description
result boolean Execution result
True: success
False: fail

UTXO Sweeping

For multi-address UTXOs under a wallet account, this interface allows users to collect the balances of certain qualifying addresses into a specified destination address.

HTTP Request

POST /v1/transactions/utxo/collection

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "customerRefId": "customerRefIdExample",
      "customerExt1":"customerExt1Example",
      "customerExt2":"customerExt2Example",
      "note":"noteExample",
      "coinKey": "DASH_TESTNET",
      "txFeeLevel": "HIGH",
      "minCollectionAmount": "0.1",
      "sourceAccountType": "VAULT_ACCOUNT",
      "sourceAccountKey": "account6e63dacbf80243118e425ce5363b31a3",
      "destinationAccountType": "VAULT_ACCOUNT",
      "destinationAccountKey": "accountdd4a4bcefaa849fc8b847c8af74baf73",
      "destinationTag": "destinationTagExample"
    }
}

Request Parameters

Parameter Type Required Description
customerRefId string Yes Merchant unique business ID (100 characters max)
customerExt1 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
customerExt2 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
note string No Transaction note (180 characters max)
coinKey string Yes Coin key
txFeeRate string No Transaction fee rate, the unit is the feeUnit returned by the coin list
txFeeLevel string No Transaction Fee Rate Grade
Choose between the transaction fee rate. If the transaction fee rate is preset, it will take priority
maxTxFeeRate string No Maximum estimated transaction fee rate for a given transaction
minCollectionAmount string No Minimum sweeping amount
sourceAccountKey string Yes Source wallet account key
sourceAccountType string Yes Account type, pass value VAULT_ACCOUNT
destinationAccountKey string Yes Destination wallet account key
destinationAccountType string Yes Destination account type, providing a value VAULT_ACCOUNT
destinationAddress string No Destination address
destinationTag string No Destination tag

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "txKey": "tx46461daa9b7a4612abce99e7ce598844",
    "collectionAmount": "1",
    "collectionNum": 10
  }
}

Response Data

Parameter Type Description
txKey string Transaction key
collectionAmount string Sweeping amount, the unit is the symbol returned by the coin list
collectionNum int32 Number of collections

Web3 API

Web3 API Introduction

Safeheron offers institutional clients a secure governance solution through a universal multi-signature approval system for Web3 applications, such as DeFi, NFT, etc. Through our API, users can effortlessly initiate transactions and seamlessly connect to various Web3 applications related to DeFi, NFT, and more, thereby automating your Web3 operations.

The following APIs are supported:

  1. eth_sign
  2. personal_sign
  3. eth_signTypedData
  4. eth_signTransaction

Create a Web3 Wallet Account

Create a new Web3 wallet account.

HTTP Request

POST /v1/web3/account/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountName": "accountNameExample",
      "hiddenOnUI": true
    }
}

Request Parameters

Parameter Type Required Description
accountName string No Account name, 30 characters max
hiddenOnUI boolean No Display status in Safeheron App
True: not display
False: display
Default: false

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "accountName": "wallet 11",
    "accountKey": "account2024152bd65d4eaa85a26e57497562c1",
    "hiddenOnUI": false,
    "pubkeyList": [
      {
        "signAlg": "secp256k1",
        "pubkey":    "02c165c9a481f6a12eabe0d417ca6e7d04e762c5786afdf55c8c5716a1214b8cbf"           }
    ],
    "addressList": [
      {
        "blockchainType": "EVM",
        "address": "0x111111111111111111111111111"
      }
    ]
  }
}

Response Data

Parameter Type Description
accountKey string Account Key, the only account identifier
accountName string Account name
hiddenOnUI boolean Display status in Safeheron App
True: not display
False: display
pubKeyList array Account public key information
└─signAlg string Signature algorithm, currently supports secp256k1
└─pubKey string Account compressed public key
addressList array Address list
└─blockchainType string Blockchain type
└─address string Coin receiving address

Batch Create Web3 Wallet Accounts

Create a batch of wallet accounts based on specified number. Web3 wallet accounts created in batches are not displayed in the Safeheron App by default.

HTTP Request

POST /v1/web3/batch/account/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountName": "accountNameExample",
      "count": 10
    }
}

Request Parameters

Parameter Type Required Description
accountName string No The prefix of wallet account name, 30 characters max
hiddenOnUI boolean Yes Display status in Safeheron App
True: not display
False: display
Default: false
count int32 Yes Number of wallets to be created, greater than 0, less than 100

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "accountKey": "account2024152bd65d4eaa85a26e57497562c1",
      "pubkeyList": [
        {
          "signAlg": "secp256k1",
          "pubkey":    "02c165c9a481f6a12eabe0d417ca6e7d04e762c5786afdf55c8c5716a1214b8cbf"           }
      ],
      "addressList": [
        {
          "blockchainType": "EVM",
          "address": "0x111111111111111111111111111"
        }
      ]
    }
  ]
}

Response Data

Parameter Type Description
accountKey string Account Key, the only account identifier
pubKeyList array Account public key information
└─signAlg string Signature algorithm, currently supports secp256k1
└─pubKey string Account compressed public key
addressList array Address list
└─blockchainType string Blockchain type
└─address string Coin receiving address

List Web3 Wallet Accounts

Filter Web3 wallet account lists by various conditions.

HTTP Request

POST /v1/web3/account/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "direct": "NEXT",
      "limit": 100,
      "fromId": "account2024152bd65d4eaa85a26e57497562c1",
      "namePrefix": "namePrefixExample"
    }
}

Request Parameters

Parameter Type Required Description
direct string No Query page direction, NEXT by default
limit int32 No The number of items to retrieve at a time, default max value is 500
fromId string No accountKey of the first wallet
namePrefix string No Filter the response based on this account name prefix

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "accountName": "wallet 11",
      "accountKey": "account2024152bd65d4eaa85a26e57497562c1",
      "hiddenOnUI": false,
      "pubkeyList": [
        {
          "signAlg": "secp256k1",
          "pubkey": "02226320f7571a5b1f2d56f3f1d1b6c4efce9a1a882f8f42bfc37bc7d1f3848cc2"
        }
      ],
      "addressList": [
        {
          "blockchainType": "EVM",
          "address": "0x111111111111111111111111111"
        }
      ]
    }
  ]
}

Response Data

Parameter Type Description
accountKey string Account Key, the only account identifier
accountName string Account name
hiddenOnUI boolean Display status in Safeheron App
True: not display
False: display
pubKeyList array Account public key information
└─signAlg string Signature algorithm, currently supports secp256k1
└─pubKey string Account compressed public key
addressList array Address list
└─blockchainType string Blockchain type
└─address string Coin receiving address

Create ethSign

Merchants can initiate an ethSign signature through this interface. The merchant is required to serialize the transaction data, generating a corresponding hash (supporting both 0x and non-0x formatted data). The hash is then submitted through this interface to create a signature, which can be obtained by Retrieve a Single Web3 Signature interface or webhook. From there, merchants can complete the subsequent steps according to their own needs once they have obtained the signature.

HTTP Request

POST /v1/web3/sign/ethSign

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountKey": "account099d3534391040c491a93bfbc9914662",
      "customerRefId": "customerRefIdExample",
      "note": "noteExample",
      "customerExt1":"customerExt1Example",
      "customerExt2":"customerExt2Example",
      "messageHash": {
        "chainId": 1,
        "hash": "hashString"
      }
    }
}

Request Parameters

Parameter Type Required Description
accountKey string Yes Source account key
customerRefId string Yes Merchant unique business ID (100 characters max)
note string No Note
customerExt1 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
customerExt2 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
messageHash object Yes Message Hash
└─chainId int64 Yes Chain ID (Does not participate in signing, only the hash is used for signing)
└─hash array Yes Pending signature hash, hexadecimal string (Currently only supports one input)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent":
  {
    "txKey": "tx7dacce99c5f249b6bf486214596a5458"
  }
}

Response Data

Parameter Type Description
txKey string Transaction key

Create personalSign

Merchants can initiate a personalSign signature for any text using this interface. The merchant only needs to prepare the data to be signed and submit it through this interface to create the signature. The resulting signature can then be obtained by Retrieve a Single Web3 Signature interface or via webhook. From there, merchants can complete the subsequent steps according to their own needs once they have obtained the signature.

HTTP Request

POST /v1/web3/sign/personalSign

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountKey": "account099d3534391040c491a93bfbc9914662",
      "customerRefId": "customerRefIdExample",
      "note": "noteExample",
      "customerExt1":"customerExt1Example",
      "customerExt2":"customerExt2Example",
      "message": {
        "chainId": 1,
        "data": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69"
      }
    }
}

Request Parameters

Parameter Type Required Description
accountKey string Yes Source account key
customerRefId string Yes Merchant unique business ID (100 characters max)
note string No Note
customerExt1 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
customerExt2 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
message object Yes Message
└─chainId int64 Yes Chain ID (Does not participate in signing, only the data is used for signing)
└─data string Yes Data to be signed

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent":
  {
    "txKey": "tx7dacce99c5f249b6bf486214596a5458"
  }
}

Response Data

Parameter Type Description
txKey string Transaction key

Create ethSignTypedData

Merchants can initiate an ethSignTypedData signature of specific formatted data (supporting data formats of v1, v3, and v4) through this interface. Merchants will need to format their signature data and submit it through the interface. Once the signature is created, the result can be retrieved via Retrieve a Single Web3 Signature interface or webhook. From there, merchants can complete the subsequent steps according to their own needs once they have obtained the signature.

HTTP Request

POST /v1/web3/sign/ethSignTypedData

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountKey": "accountee096876e25f440b836bbcd745987eae",
      "customerRefId": "customerRefIdExample",
      "note": "noteExample",
      "customerExt1":"customerExt1Example",
      "customerExt2":"customerExt2Example",
      "message": {
        "chainId": 1,
        "data": "{\"types\":{\"EIP712Domain\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"version\",\"type\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\"}],\"Person\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"wallet\",\"type\":\"address\"}],\"Mail\":[{\"name\":\"from\",\"type\":\"Person\"},{\"name\":\"to\",\"type\":\"Person\"},{\"name\":\"contents\",\"type\":\"string\"}]},\"primaryType\":\"Mail\",\"domain\":{\"name\":\"Ether Mail\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\"},\"message\":{\"from\":{\"name\":\"Cow\",\"wallet\":\"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\"},\"to\":{\"name\":\"Bob\",\"wallet\":\"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\"},\"contents\":\"Hello, Bob!\"}}"
        "version": "ETH_SIGNTYPEDDATA_V4"
      }
    }
}

Request Parameters

Parameter Type Required Description
accountKey string Yes Source account key
customerRefId string Yes Merchant unique business ID (100 characters max)
note string No Note
customerExt1 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
customerExt2 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
message object Yes Message
└─chainId int64 Yes Chain ID (Does not participate in signing, only the data is used for signing)
└─data string Yes Data to be signed
└─version string Yes EthSignTypedData Version

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent":
  {
    "txKey": "tx7dacce99c5f249b6bf486214596a5458"
  }
}

Response Data

Parameter Type Description
txKey string Transaction key

Create ethSignTransaction

Merchants can initiate ethSignTransaction signature transactions through this interface. The merchant must prepare transaction-related data, such as from, to, nonce, gas limit, gas price, value, data, and more. Once this data is submitted, a signature is created and the result can be obtained by Retrieve a Single Web3 Signature interface or webhook. From there, merchants can complete the subsequent steps according to their own needs once they have obtained the signature.

HTTP Request

POST /v1/web3/sign/ethSignTransaction

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "accountKey": "accountee096876e25f440b836bbcd745987eae",
      "customerRefId": "customerRefIdExample",
      "note": "noteExample",
      "customerExt1":"customerExt1Example",
      "customerExt2":"customerExt2Example",
      "transaction": {
        "to": "0xb6f61ee3b221e956611c8f5c24baa379fd506523",
        "value": 11111,
        "chainId": 3,
        "gasPrice": 15000000000,
        "gasLimit": 21000,
        "maxPriorityFeePerGas": "",
        "maxFeePerGas": "",
        "nonce": 2
      }
    }
}

Request Parameters

Parameter Type Required Description
accountKey string Yes Source account key
customerRefId string Yes Merchant unique business ID (100 characters max)
note string No Note
customerExt1 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
customerExt2 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
transaction object Yes Transaction
└─to string No To
└─value string Yes Value (Unit: wei)
└─chainId int64 Yes Chain ID
└─gasPrice string No Gas price
└─gasLimit int32 Yes Gas limit
└─maxPriorityFeePerGas string No Max priority fee per gas for EIP-1559
└─maxFeePerGas string No Max fee per gas for EIP-1559
└─nonce int64 Yes Nonce
└─data string No Data

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent":
  {
    "txKey": "tx7dacce99c5f249b6bf486214596a5458"
  }
}

Response Data

Parameter Type Description
txKey string Transaction key

Cancel Signature

Cancel pending signatures.

HTTP Request

POST /v1/web3/sign/cancel

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "txKey": "tx86c4715a60cf43a186c4a41412ddd47e"
    }
}

Request Parameters

Parameter Type Required Description
txKey string Yes Transaction key

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "result": true
  }
}

Response Data

Parameter Type Description
result boolean Execution result
True: success
False: fail

Retrieve a Single Web3 Signature

To query a specific Web3 signature, provide either the customerRefId or txKey parameter. If both are provided, the query will be performed based on the txKey value.

HTTP Request

POST /v1/web3/sign/one

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "txKey": "tx2e4a7b9d925447fcaa398c477b2699b2"
    }
}

Request Parameters

Parameter Type Required Description
txKey string No Transaction key
customerRefId string No Merchant unique business ID (100 characters max)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent":
  {
    "txKey":null,
    "accountKey":null,
    "sourceAddress":null,
    "transactionStatus":null,
    "transactionSubStatus":null,
    "createdByUserKey":null,
    "createdByUserName":null,
    "createTime":null,
    "auditUserKey":null,
    "auditUserName":null,
    "customerRefId":"{{customerRefId}}",
    "note":"",
    "customerExt1":null,
    "customerExt2":null,
    "balance":"0",
    "tokenBalance":null,
    "symbol":"ETH",
    "subjectType":null,
    "tokenSymbol":null,
    "transaction":{
      "to":"TLFNznovqX6FRjk1bkbX47KUGQX2UAaFnY",
      "value":"0",
      "chainId":1,
      "gasPrice":"0",
      "gasLimit":0,
      "maxPriorityFeePerGas":"0",
      "maxFeePerGas":"0",
      "nonce":2,
      "data":"hexData",
      "txHash":null,
      "signedTransaction": "",
      "sig": {
        "hash":"hashString",
        "sig": null
      }
    },
    "message":{
      "chainId":1,
      "data":"json",
      "sig": {
        "hash":"hashString",
        "sig": null
      }
    },
    "messageHash":{
      "chainId":1,
      "sigList":[
        {
          "hash":"hashString",
          "sig": null
        }
      ]
    }
  }
}

Response Data

Parameter Type Description
txKey string Transaction key
accountKey string Source account key
sourceAddress string Source address
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
createdByUserKey string Creator key
createdByUserName string Creator username
createTime int64 Transaction creation time, UNIX timestamp (ms)
auditUserKey string Final approver key
auditUserName string Final approver username
customerRefId string Merchant unique business ID
note string Note
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
balance string Account balance
tokenBalance string Token balance
symbol string Coin unit
tokenSymbol string Token name
subjectType string Signature Type
transaction object This field is returned when the signature type is ETH_SIGNTRANSACTION
└─to string To
└─value string Value
└─chainId int64 Chain ID
└─gasPrice string Gas price
└─gasLimit int32 Gas limit
└─maxPriorityFeePerGas string Max priority fee per gas for EIP-1559
└─maxFeePerGas string Max fee per gas for EIP-1559
└─nonce int64 Nonce
└─data string Data
└─txHash string Transaction hash (This value is returned for signed transactions)
└─signedTransaction string Hexadecimal data (This value is returned for signed transactions)
└─sig object Signature
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)
message object This field is returned when the signature type is PERSONAL_SIGN or ETH_SIGN_TYPED_DATA
└─chainId int64 Chain ID
└─data string Data
└─sig object Signature
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)
messageHash object This field is returned when the signature type is ETH_SIGN
└─chainId int64 Chain ID
└─sigList array Signature list
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)

Web3 Sign Transaction List

Filter Web3 Sign history by various conditions.

HTTP Request

POST /v1/web3/sign/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "fromId": "1",
      "direct": "NEXT",
      "limit": 100,
      "subjectType": "ETH_SIGN",
      "transactionStatus": ["SIGN_COMPLETED"],
      "accountKey": "accountee096876e25f440b836bbcd745987eae",
      "createTimeMin": 1656301641000,
      "createTimeMax": 1687837641623
    }
}

Request Parameters

Parameter Type Required Description
direct string No Query page direction, NEXT by default
limit int32 No The amount of items to retrieve at a time, the default max value is 500
fromId string No txkey of the first transaction record. If the first page has no value, provide the txKey of the last transaction record from the previous result
subjectType string No Web3 Sign type
transactionStatus array No Transaction status
accountKey string No Source account key
startTime int64 No Start time, UNIX time in milliseconds(Deprecated, please use parameter createTimeMin instead)
endTime int64 No End time, UNIX time in milliseconds(Deprecated, please use parameter createTimeMax instead)
createTimeMin int64 No Start time for creating a transaction, UNIX timestamp (ms) (If no value is provided, the default value is createTimeMax minus 24 hours)
createTimeMax int64 No End time for creating a transaction, UNIX timestamp (ms) (If no value is provided, the default value is the current UTC time)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent":
  [
    {
      "txKey":null,
      "accountKey":null,
      "sourceAddress":null,
      "transactionStatus":null,
      "transactionSubStatus":null,
      "createdByUserKey":null,
      "createdByUserName":null,
      "createTime":null,
      "auditUserKey":null,
      "auditUserName":null,
      "customerRefId":"{{customerRefId}}",
      "note":"",
      "customerExt1":null,
      "customerExt2":null,
      "balance":"0",
      "tokenBalance":null,
      "symbol":"ETH",
      "subjectType":null,
      "tokenSymbol":null,
      "transaction":{
        "to":"TLFNznovqX6FRjk1bkbX47KUGQX2UAaFnY",
        "value":"0",
        "chainId":1,
        "gasPrice":"0",
        "gasLimit":0,
        "maxPriorityFeePerGas":"0",
        "maxFeePerGas":"0",
        "nonce":2,
        "data":"hexData",
        "txHash":null,
        "signedTransaction": "",
        "sig": {
          "hash":"hashString",
          "sig": null
        }
      },
      "message":{
        "chainId":1,
        "data":"json",
        "sig": {
          "hash":"hashString",
          "sig": null
        }
      },
      "messageHash":{
        "chainId":1,
        "sigList":[
          {
            "hash":"hashString",
            "sig": null
          }
        ]
      }
    }
  ]
}

Response Data

Parameter Type Description
txKey string Transaction key
accountKey string Source account key
sourceAddress string Source address
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
createdByUserKey string Creator key
createdByUserName string Creator username
createTime int64 Transaction creation time, UNIX timestamp (ms)
auditUserKey string Final approver key
auditUserName string Final approver username
customerRefId string Merchant unique business ID
note string Note
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
balance string Account balance
tokenBalance string Token balance
symbol string Coin unit
tokenSymbol string Token name
subjectType string Signature type
transaction object This field is returned when the signature type is ETH_SIGNTRANSACTION
└─to string To
└─value string Value
└─chainId int64 Chain ID
└─gasPrice string Gas price
└─gasLimit int32 Gas limit
└─maxPriorityFeePerGas string Max priority fee per gas for EIP-1559
└─maxFeePerGas string Max fee per gas for EIP-1559
└─nonce int64 Nonce
└─data string Data
└─txHash string Transaction hash (This value is returned for signed transactions)
└─signedTransaction string Hexadecimal data (This value is returned for signed transactions)
└─sig object Signature
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)
message object This field is returned when the signature type is PERSONAL_SIGN or ETH_SIGN_TYPED_DATA
└─chainId int64 Chain ID
└─data string Data
└─sig object Signature
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)
messageHash object This field is returned when the signature type is ETH_SIGN
└─chainId int64 Chain ID
└─sigList array Signature list
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)

MPC Sign

MPC Sign Introduction

Safeheron has opened its MPC-based underlying signature capabilities, allowing you to flexibly apply the "signable but invisible-key" feature of MPC signature algorithms to scenarios, such as:

Here's how to create and sign an ETH transaction via MPC Sign:

Single private key signing process:

  1. Prepare transaction data: from, to, nonce, gasLimit, gasPrice, value, data
  2. Serialize: rawTransaction = RLP (from, to, nonce, gasLimit, gasPrice, value, data)
  3. Calculate transaction data hash: hash = sha3(rawTransaction)
  4. Sign transaction data hash by single private key: sig = secp256k1Sign (private key, hash)
  5. Signed transaction data: signedRawTransaction = RLP(from, to, nonce, gasLimit, gasPrice, value, data, sig)
  6. Calculate transaction hash: txHash = sha3(signedRawTransaction)
  7. Broadcast transaction: rpc.submitTransaction (signedRawTransaction)

When automating the above process, it becomes necessary to use a single private key in the server, which can introduce various security risks such as the possibility of private key leaks. To address the security concerns related to a single private key, you can utilize Safeheron's MPC Sign interface for distributed signing. The Safeheron MPC Sign signing process ensures that the original private key is never stored in program memory. By employing MPC technology, distributed signing is achieved while also maintaining the security of the private key.

Revised process via Safeheron MPC Sign:

  1. [Customer] Prepare transaction data: from, to, nonce, gasLimit, gasPrice, value, data
  2. [Customer] Serialize: rawTransaction = RLP(from, to, nonce, gasLimit, gasPrice, value, data)
  3. [Customer] Calculate transaction data hash: hash = sha3(rawTransaction)
  4. [Customer+Safeheron] Sign transaction data hash by single private key: sig = secp256k1Sign (private key, hash)
  5. [Customer] Signed transaction data: signedRawTransaction = RLP (from, to, nonce, gasLimit, gasPrice, value, data, sig)
  6. [Customer] Calculate transaction hash: txHash = sha3(signedRawTransaction)
  7. [Customer] Broadcast transaction: rpc.submitTransaction (signedRawTransaction)

Upon comparing the two processes, it is evident that the revised process using Safeheron MPC Sign involves signing the hash using the Safeheron MPC Sign during the signing process with the private key. The resulting signature is then returned and can be seamlessly integrated into the client's existing business logic.
Note: Currently, the MPC protocol supports signature algorithms such as Secp256k1 and Ed25519, with plans to add support for other signature algorithms such as BLS and Schnorr in the future.

API

Create a Wallet Account

Create a wallet account.

Create an MPC Sign Transaction

Merchant can initiate MPC Sign via this interface. The merchant must first serialize the transaction data and generate a hash before using this interface to submit the hash and create a transaction. The resulting signature can be retrieved via the MPC Sign transaction interface or webhook. The merchant can proceed with the necessary follow-up processes to obtain the signature according to their specific needs.

HTTP Request

POST /v1/transactions/mpcsign/create

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "customerRefId": "customerRefIdExample",
      "customerExt1":"customerExt1Example",
      "customerExt2":"customerExt2Example",
      "sourceAccountKey": "accountbb6acc4892264e8c9202b9cd3e3235a3",
      "signAlg": "ed25519",
      "dataList": [
        {
          "note": "note",
          "data": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69"
        },
        {
          "note": "note",
          "data": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69"
        }
      ]
    }
}

Request Parameters

Parameter Type Required Description
customerRefId string Yes Merchant unique business ID (100 characters max)
customerExt1 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
customerExt2 string No Merchant extended field (defined by merchant) shown to merchant (255 characters max)
sourceAccountKey string Yes Source account key
signAlg string Yes Signature algorithm
hashs array Yes Transaction signature hash list (Deprecated, please use parameter dataList instead)
└─note string No Transaction note (180 characters max) (Deprecated, please use parameter dataList instead)
└─hash string Yes Original signature hash, 32-byte hex string not starting with 0x (Deprecated, please use parameter dataList instead)
dataList array Yes List of transaction data to be signed
└─note string No Transaction note (180 characters max)
└─data string Yes Transaction data to be signed (View description below for details)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "txKey": "tx46461daa9b7a4612abce99e7ce598844"
  }
}

Response Data

Parameter Type Description
txKey string Transaction key

Retrieve a Single MPC Sign Transaction

To query a specific MPC Sign transaction, either customerRefId or txKey must be provided. If both parameters are provided, the query will be based on the txKey parameter.

HTTP Request

POST /v1/transactions/mpcsign/one

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "txKey": "tx46461daa9b7a4612abce99e7ce598844",
      "customerRefId": "customerRefIdExample"
    }
}

Request Parameters

Parameter Type Required Description
txKey string No Transaction key
customerRefId string No Merchant unique business ID (100 characters max)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "txKey": "tx46461daa9b7a4612abce99e7ce598844",
    "transactionStatus": "COMPLETED",
    "transactionSubStatus": "CONFIRMED",
    "createTime": 1626075236000,
    "sourceAccountKey": "accountbb6acc4892264e8c9202b9cd3e3235a3",
    "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "customerExt1": "1",
    "customerExt2": "2",
    "signAlg": "secp256k1",
    "auditUserName": "test",
    "createdByUserName": "test",
    "hashs": [
      {
        "note": "Initiate transaction",
        "hash": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69",
        "sig": "b3d5b45dec592d6ca60455f2926e06e5ff1c81cc4115d44d4b4f9953e6260aee55bc80e341977ab77713c80b31d960be01e09bb19014db49484db45859c77fda00"
      }
    ],
    "dataList": [
      {
        "note": "",
        "data": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69",
        "sig":""
      }
    ]
  }
}

Response Data

Parameter Type Description
txKey string Transaction key
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
createTime int64 Transaction creation time, UNIX timestamp (ms)
sourceAccountKey string Source account key
auditUserKey string Final approver key
createdByUserKey string Creator key
customerRefId string Merchant unique business ID
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
signAlg string Signature algorithm
auditUserName string Final approver username
createdByUserName string Creator username
hashs array Transaction signature hash list (Deprecated, please use parameter dataList instead)
└─note string Note (Deprecated, please use parameter dataList instead)
└─hash string Original signature hash, 32-byte hex string not starting with 0x (Deprecated, please use parameter dataList instead)
└─sig string ~~Transaction signature (Secp256k1 is 32r+32s+1v ed25519: 32R+32s) ~~(Deprecated, please use parameter dataList instead)
dataList array List of transaction data to be signed
└─note string Transaction note
└─data string Transaction data to be signed
└─sig string Transaction signature (The value of sig for Secp256k1 algorithm consists of 32 bytes r + 32 bytes s + 1 byte v;
The value of sig for Ed25519 algorithm consists of 32 bytes r + 32 bytes s)

MPC Sign Transaction List

Filter MPC Sign transaction history by various conditions.

HTTP Request

POST /v1/transactions/mpcsign/list

Example Request

{
    "apiKey":"94d96119****************6eb2056a",
    "timestamp":1690361332392,
    "key":"OFI5PMknWjLSYUbVzVWOQjhHRihvS9bmeaNsF/d/togGr9exySsZ5StRJc+VLmsMi5vxwrNbw2xI3jb8wNCxFN6SnbkHe7DheGWZN5d1YB3x4JNDBhNZ9CJjSr3Km2GOIO9XJf3AffO03qiAHs7I5QrtCoW9J/IsX7OJKqzqevA7mbuooHrysvIVYCgVwetWS4wRy2T8V7WOUBLi645SLJXedohDRLKoy5brj/7DIRI4zitdqhEvcct0LxJZpcwXtkeDfOZ7he0TbhqTRb9LbpXquJ8ZYzh4uyqh/AkwxcDBKLT2js9NidVkiYvW5+Ly8Cuc6FjyyEDzwJo/QpHrgiXYxXhTo9lodjys3J7DVU2j9T0ToFViFGNTLJJXL/8vJNxjpy/nBa4Xkkb1mTln3oEDuYgCvgGMhkV2Uz7rdMdoACjg1b2hfxoKMwtUz3JatrFzFWv4I62rp/8LT8V5L9WnrBF1kjgaOZ2zgmshgx8Hgz+9vm32EciFaSpN33H2nNemZWkw4ZnRt61m/cq3fWDPfYtIy4EPPOBHRUs8oVjCTVJPaHwjUHexX50cyMPOPyVSszRF4qRPdFqVheyqHSxM0ZCWcden09POVNj2B4Gx5wWKjzIuedAhZ06ROOnuRZLTaR+JrdPR4hXtX+N4fD6gKsYfct5pkIalM7T0dZs=",
    "sig":"aiwfvh0kCuon/LLWSjLcakDSeQJcltAGuYUA3V5MpOHjGZ3qLWYRKgXD+p1lHDVPdprsG0hr6JncGiutnTK0QIqTIFT2OW0UshOCW1fk67xQ+O+htvLP/3cWxc60/YoUCPKbql7Lbr8fZAZls5TPG1TEiPCAIotRdeSti0Q+OC4rasI9XShLilxecivZz33p5n7RDdE505rR3QhQ2wCRAwj4+/sVC3ykm4J0vLgQj3xULhrDHQ0XdJuHunh5zLGUFYlPxwdFypTdTs+krjeBILo0bXHCHubEhKMRYX8AbsviEa19BHubrFsz6aVJiNqijSqRXJmG0DxTk0EevKoYUp+dzQRL6qd3KpTROB/8ZsFsz5xqZSOkBSu9y8gz4t5Mzf41i+gZYZGARNfa85hSdPImGfg3035k/7M0nXeaChAvwwOLz4dToP8bPAhT49cR1hxi2SLI/QJt+w7ktvQyptUUzk8cMFFVsykxl4kFTmOB0dAbCYeDg6sweSxNmBhFpIdZQtjAlr6bHdRyP97TY0k4samQuxDinDYyQov55Gb3CxmYra0P4jAhFZvJeTa0+Ufbo1q/7tyP96uAAp/KjwzPt6OD08VD0neSTxO5OyVg5YPafff4aAEIbZx19yVKU1JyT1KUHo6fDQ1fAvpLa8x08l3b3H+JzJbpfckWQgw=",
    "bizContent":{
      "direct": "NEXT",
      "limit": 100,
      "fromId": "tx46461daa9b7a4612abce99e7ce598844",
      "createTimeMin": 1656301641000,
      "createTimeMax": 1687837641623
    }
}

Request Parameters

Parameter Type Required Description
direct string No Query page direction, NEXT by default
limit int32 No The number of items to retrieve at a time, default max value is 500
fromId string No txkey of the first transaction record. If the first page is not provided, then provide the txKey of the last transaction record from the previous result
createTimeMin int64 No Start time for creating a transaction, UNIX timestamp (ms) (If no value is provided, the default value is createTimeMax minus 24 hours)
createTimeMax int64 No End time for creating a transaction, UNIX timestamp (ms) (If no value is provided, the default value is the current UTC time)

Example Response

{
  "code": 200,
  "message": "SUCCESS",
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": [
    {
      "txKey": "tx46461daa9b7a4612abce99e7ce598844",
      "transactionStatus": "COMPLETED",
      "transactionSubStatus": "CONFIRMED",
      "createTime": 1626075236000,
      "sourceAccountKey": "accountbb6acc4892264e8c9202b9cd3e3235a3",
      "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "customerExt1": "1",
      "customerExt2": "2",
      "signAlg": "secp256k1",
      "auditUserName": "test",
      "createdByUserName": "test",
      "hashs": [
        {
          "note": "Initiate transaction",
          "hash": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69",
          "sig": "b3d5b45dec592d6ca60455f2926e06e5ff1c81cc4115d44d4b4f9953e6260aee55bc80e341977ab77713c80b31d960be01e09bb19014db49484db45859c77fda00"
        }
      ],
      "dataList": [
        {
          "note": "",
          "data": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69",
          "sig":""
        }
      ]
    }
  ]
}

Response Data

Parameter Type Description
txKey string Transaction key
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
createTime int64 Transaction creation time, UNIX timestamp (ms)
sourceAccountKey string Source account key
auditUserKey string Final approver key
createdByUserKey string Creator key
customerRefId string Merchant unique business ID
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
signAlg string Signature algorithm
auditUserName string Final approver username
createdByUserName string Creator username
hashs array Transaction signature hash list (Deprecated, please use parameter dataList instead)
└─note string Note (Deprecated, please use parameter dataList instead)
└─hash string Original signature hash, 32-byte hex string not starting with 0x (Deprecated, please use parameter dataList instead)
└─sig string ~~Transaction signature (Secp256k1 is 32r+32s+1v ed25519: 32R+32) ~~(Deprecated, please use parameter dataList instead)
dataList array List of transaction data to be signed
└─note string Transaction note
└─data string Transaction data to be signed (Note: This field won't be returned if the transaction's algorithm is Ed25519)
└─sig string Transaction signature (The value of sig for Secp256k1 algorithm consists of 32 bytes r + 32 bytes s + 1 byte v;
The value of sig for Ed25519 algorithm consists of 32 bytes r + 32 bytes s)

Webhook

Webhook Overview

Safeheron's webhook interface delivers proactive event notifications to your team. Such as:

To receive event notifications, log in to the Safeheron Console with a user account that has API management permission, and configure your webhook information in Settings-> API Account Management interface.

To ensure secure webhook callback, the same data encryption and signature scheme used in API Authentication is employed. Therefore, it is important to configure your webhook RSA public key in the Safeheron Console. You can generate an RSA public-private key pair by referring to the API Authentication. Once generated, you can obtain your Safeheron webhook RSA public key in the Safeheron Console. You'll need to use this public key to verify the signature of the callback data being received.

Callback Request

Safeheron will send a POST request to the webhook callback address that you have set up in the Console, The HTTP request header will contain Content-Type : application/json;charset=UTF-8.

Callback Request Parameters

Example Callback Request

{
  "timestamp": "1626336745267",
  "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
  "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
  "bizContent": {
    "eventType": "TRANSACTION_STATUS_CHANGED",
    "eventDetail": {
      "txKey": "tx46461daa9b7a4612abce99e7ce598844",
      "txHash": "0xf7292ea446b573bab7311921e2489fb29d26ec393f2d6c8e280a7157f635234",
      "coinKey": "ETH_GOERLI",
      "txAmount": "0.001",
      "sourceAccountKey": "account4b8d2c00520646c8862b68420aa1234234",
      "sourceAccountType": "VAULT_ACCOUNT",
      "sourceAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
      "destinationAccountKey": "6553009588f443b1970a5962590a2158",
      "destinationAccountType": "WHITELISTING_ACCOUNT",
      "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594F234234",
      "destinationTag": "TEST",
      "transactionType": "NORMAL",
      "transactionStatus": "COMPLETED",
      "transactionSubStatus": "CONFIRMED",
      "createTime": 1626075236000,
      "note": "Initiate transaction",
      "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "txFee": "0.000106841386050000",
      "feeCoinKey": "ETH_GOERLI",
      "replaceTxHash": "0x628626531285bb90d4130d3beb3c355d2a7fe0bdfa1fa05e3431f15340aafeb6",
      "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e723",
      "customerExt1": "1",
      "customerExt2": "2",
      "amlLock": "NO",
      "blockHeight": 10000000,
      "completedTime": 1626075236000,
      "realDestinationAccountType": "VAULT_ACCOUNT"
    }
  }
}
Parameter Type Description
timestamp string Callback timestamp, UNIX millisecond-format string
bizContent string AES-encrypted data of request parameters
sig string Signature data obtained by signing the request parameters via Safeheron webhook RSA private key
key string Data obtained by using webhook RSA public key encrypt random AES key

Follow these steps to decrypt and verify the callback data:

After receiving the webhook push notification, you need to return a successful response (HTTP status code 200), and the format of the successful response content is fixed as follows:

Example Webhook Response

{ 
  "code": "200",
  "message": "SUCCESS"
}

Example shown on the right:

Parameter Type Description
code string Webhook success response code: 200
message string Returned information from webhook, successful is fixed as SUCCESS

If Safeheron receives a response with a status code other than 200 or a response content that does not conform to the specified success format, the push notification will be regarded as failed. Safeheron will then automatically resend the notification with a frequency of 30s, 1m, 5m, 1h, 12h, and 24h.

Event Format

Decrypted data format of bizContent field as shown in the right:

Example Event Format

{
  "eventType": "TRANSACTION_STATUS_CHANGED",
  "eventDetail": {
    "txKey": "tx46461daa9b7a4612abce99e7ce598844",
    "txHash": "0xf7292ea446b573bab7311921e2489fb29d26ec393f2d6c8e280a7157f635234",
    "coinKey": "ETH_GOERLI",
    "txAmount": "0.001",
    "sourceAccountKey": "account4b8d2c00520646c8862b68420aa1234234",
    "sourceAccountType": "VAULT_ACCOUNT",
    "sourceAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
    "destinationAccountKey": "6553009588f443b1970a5962590a2158",
    "destinationAccountType": "WHITELISTING_ACCOUNT",
    "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594F234234",
    "destinationTag": "TEST",
    "transactionType": "NORMAL",
    "transactionStatus": "COMPLETED",
    "transactionSubStatus": "CONFIRMED",
    "createTime": 1626075236000,
    "note": "Initiate transaction",
    "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "txFee": "0.000106841386050000",
    "feeCoinKey": "ETH_GOERLI",
    "replaceTxHash": "0x628626531285bb90d4130d3beb3c355d2a7fe0bdfa1fa05e3431f15340aafeb6",
    "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e723",
    "customerExt1": "1",
    "customerExt2": "2",
    "amlLock": "NO",
    "blockHeight": 10000000,
    "completedTime": 1626075236000,
    "realDestinationAccountType": "VAULT_ACCOUNT"
  }
}
Parameter Type Description
eventType string Callback event type
eventDetail object Callback event details

Event Type

eventType eventDetail Description
TRANSACTION_CREATED TransactionParam Create a transaction
TRANSACTION_STATUS_CHANGED TransactionParam Change the transaction status
MPC_SIGN_CREATED MPCSignParam Create an MPC Sign transaction
MPC_SIGN_STATUS_CHANGED MPCSignParam Change the MPC Sign transaction status
WEB3_SIGN_CREATED Web3SignParam Create a Web3 Sign transaction
WEB3_SIGN_STATUS_CHANGED Web3SignParam Change the Web3 Sign transaction status

Event Details

TransactionParam

Example TransactionParam

{
  "txKey": "tx46461daa9b7a4612abce99e7ce598844",
  "txHash": "0xf7292ea446b573bab7311921e2489fb29d26ec393f2d6c8e280a7157f635234",
  "coinKey": "ETH_GOERLI",
  "txAmount": "0.001",
  "sourceAccountKey": "account4b8d2c00520646c8862b68420aa1234234",
  "sourceAccountType": "VAULT_ACCOUNT",
  "sourceAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
  "sourceAddressList": [
    {
      "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d"
    }
  ],
  "destinationAccountKey": "6553009588f443b1970a5962590a2158",
  "destinationAccountType": "WHITELISTING_ACCOUNT",
  "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594F234234",
  "destinationAddressList": [
    {
      "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d",
      "amount": "0.0001"
    },
    {
      "address": "tb1qrjrg92y7x0zc4h6e4xxg66r36jl22x84w3s3a0",
      "amount": "0.0001"
    }
  ],
  "destinationTag": "TEST",
  "transactionType": "NORMAL",
  "transactionStatus": "COMPLETED",
  "transactionSubStatus": "CONFIRMED",
  "createTime": 1626075236000,
  "note": "Initiate transaction",
  "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
  "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
  "txFee": "0.000106841386050000",
  "feeCoinKey": "ETH_GOERLI",
  "replaceTxHash": "0x628626531285bb90d4130d3beb3c355d2a7fe0bdfa1fa05e3431f15340aafeb6",
  "customerRefId": "a1ef6672-c231-43cc-b174-ff30d392e723",
  "customerExt1": "1",
  "customerExt2": "2",
  "amlLock": "NO",
  "blockHeight": 10000000,
  "completedTime": 1626075236000,
  "realDestinationAccountType": "VAULT_ACCOUNT"
}
Parameter Type Description
txKey string Transaction key
txHash string Transaction hash
coinKey string Coin key
txAmount string Transaction amount, the unit is the symbol returned by the coin list
sourceAccountKey string Source account key
sourceAccountType string Source account type
sourceAddress string Source address (If the transaction currency is of UTXO type, please use the sourceAddressList field)
sourceAddressList array Source address list
└─address string Source address
destinationAccountKey string Destination account key
destinationAccountType string Destination account type
destinationAddress string Destination address (If the transaction currency is of UTXO type, please use the destinationAddressList field)
destinationAddressList array Destination address list
└─address string Destination address
└─amount string Transaction amount
destinationTag string If the destination is tag or memo type, then this value is empty
transactionType string Transaction type
transactionStatus string Transaction status. When a transaction is in the 'confirming' state, its status will be updated to 'success' as soon as the required number of block confirmations for the coin involved has been reached
transactionSubStatus string Transaction substatus
createTime int64 Transaction creation time, UNIX timestamp (ms)
note string Note
auditUserKey string Final approver key
createdByUserKey string Creator key
txFee string Transaction fee
feeCoinKey string Coin key that is used to pay for the transaction fee when conducting a transfer, such as when transferring ERC-20 tokens, transaction fees are paid in ETH
replaceTxHash string Quoted transaction hash (Only for sped-up transactions)
customerRefId string Merchant unique business ID
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
amlLock string Whether the source address contains AML address(es)
YES: contain
NO: not contain
blockHeight int64 Block height (Available when the transaction status is pending confirmation or success)
completedTime int64 Transaction completion time
realDestinationAccountType string Type of actual destination account

MPCSignParam

Example MPCSignParam

{
  "txKey": "tx697eebea3a61440a8edf6f0a783d19b2",
  "sourceAccountKey": "sourceAccountKey",
  "auditUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
  "createdByUserKey": "a1ef6672-c231-43cc-b174-ff30d392e723",
  "createTime": 1626075236000,
  "customerRefId": "1639558034534",
  "customerExt1": "",
  "customerExt2": "",
  "signAlg": "secp256k1",
  "transactionStatus": "CANCELLED",
  "transactionSubStatus": "",
  "hashs": [
    {
      "note": "",
      "hash": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69",
      "sig":""
    }
  ],
  "dataList": [
    {
      "note": "",
      "data": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69",
      "sig":""
    }
  ]
}
Parameter Type Description
txKey string Transaction key
signAlg string Signature algorithm
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
sourceAccountKey string Source account key
auditUserKey string Final approver key
createdByUserKey string Creator key
createTime int64 Transaction creation time, UNIX timestamp (ms)
customerRefId string Custom unique business identifier; Safeheron employs this field to perform idempotent checks
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
hashs array Source account information for transaction signatures (Deprecated, please use parameter dataList instead)
└─note string Transaction note (Deprecated, please use parameter dataList instead)
└─hash string Signature hash (Deprecated, please use parameter dataList instead)
└─sig string Transaction signature (The value of sig consists of 32 bytes r + 32 bytes s + 1 byte v)~~ (Deprecated, please use parameter dataList instead)
dataList array List of transaction data to be signed
└─note string Transaction note
└─data string Transaction data to be signed
└─sig string Transaction signature (The value of sig consists of 32 bytes r + 32 bytes s + 1 byte v)

Web3SignParam

Example Web3SignParam

{
  "txKey":null,
  "subjectType":null,
  "accountKey":null,
  "sourceAccountType":null,
  "sourceAddress":null,
  "transactionStatus":null,
  "transactionSubStatus":null,
  "createdByUserKey":null,
  "createTime":null,
  "auditUserKey":null,
  "note":"",
  "customerExt1":null,
  "customerExt2":null,
  "transaction":{
    "to":"TLFNznovqX6FRjk1bkbX47KUGQX2UAaFnY",
    "value":"0",
    "chainId":1,
    "gasPrice":"0",
    "gasLimit":0,
    "maxPriorityFeePerGas":"0",
    "maxFeePerGas":"0",
    "nonce":2,
    "data":"hexData",
    "txHash":null,
    "signedTransaction": "",
    "sig": {
      "hash":"hashString",
      "sig": null
    }
  },
  "message":{
    "chainId":1,
    "data":"json",
    "sig": {
      "hash":"hashString",
      "sig": null
    }
  },
  "messageHash":{
    "chainId":1,
    "sigList":[
      {
        "hash":"hashString",
        "sig": null
      }
    ]
  }
}
Parameter Type Description
txKey string Transaction key
subjectType string Signature type
accountKey string Source account key
sourceAccountType string Source account type
sourceAddress string Source address
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
createdByUserKey string Creator key
createTime int64 Transaction creation time, UNIX timestamp (ms)
auditUserKey string Final approver key
note string Note
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
transaction object This field is returned when the signature type is ETH_SIGNTRANSACTION
└─to string To
└─value string Value
└─chainId int64 Chain ID
└─gasPrice string Gas price
└─gasLimit int32 Gas limit
└─maxPriorityFeePerGas string EIP-1559 max priority fee per gas
└─maxFeePerGas string EIP-1559 max fee per gas
└─nonce int64 Nonce
└─data string Data
└─txHash string Transaction hash (This value is returned for signed transactions)
└─signedTransaction string Hexadecimal data (This value is returned for signed transactions)
└─sig object Signature
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)
message object This field is returned when the signature type is PERSONAL_SIGN or ETH_SIGN_TYPED_DATA
└─chainId int64 Chain ID
└─data string Data
└─sig object Signature
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)
messageHash object This field is returned when the signature type is ETH_SIGN
└─chainId int64 Chain ID
└─sigList array Signature list
     └─hash string Hash
     └─sig string Signature (This value is returned for signed transactions)

API Co-Signer

API Co-Signer Overview

API Co-Signer is a tool designed to automate signing process which is privately deployed by you. API Co-Signer includes the authorization private key used for authorizing transactions, as well as MPC private key shards utilized for MPC signing.

After API Co-Signer triggers a transaction approval task callback to your business system, it will either approve or reject the transaction approval based on the response from your business system. The process of automated signing is outlined below:

Automated signing

Co-Signer Callback

API Co-Signer will send a POST request to the configured callback address. The Content-Type in the HTTP request header is application/json;charset=UTF-8.

Once a callback is triggered by API Co-Signer, it will utilize the identical data encryption and signature scheme as specified in the API Authentication. To enable this functionality, you must configure your callback RSA public key within API Co-Signer. You can generate an RSA public-private key pair by referring to the API Authentication.

When configure API Co-Signer, you need to configure API RSA public-private key pair to communicate with Safeheron API gateway.During callback of your business system by API Co-Signer, API RSA public-private key pair will be readopted to communicate with your business system.

Callback Request

Callback request parameters as follow:

Example Callback Request

{
    "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
    "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
    "timestamp":"1626336745267",
    "bizContent": {
      "auditRecordKey": "57e3a3e0eb3140c3ba538cc094bcb024",
      "txKey": "txc0710da7db2b42ff9bf28df8910f8a88",
      "coinKey": "ETH_GOERLI",
      "txAmount": "0.012000000000000000",
      "sourceAddress":"0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
      "sourceAccountKey": "accounta5867fecbbbc4a4f876532c87477407a",
      "sourceAccountType": "VAULT_ACCOUNT",
      "destinationAccountKey": "0259e8c481c345ca922f489961bc331b",
      "destinationAccountType": "INTERNAL_WALLET",
      "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
      "destinationTag": null,
      "customerRefId": "123234111112112",
      "triggerTime": 1635938498071,
      "triggerUserName": "signer",
      "txHash": "",
      "blockHeight": null,
      "feeCoinKey": "ETH_GOERLI",
      "fee": null,
      "customerExt1": "",
      "customerExt1": ""
    }
}
Parameter Type Description
timestamp string Callback timestamp
bizContent string AES-encrypted data of request parameters
sig string Signature data after signing request parameters by your API RSA private key
key string Encrypted data of random AES key by callback RSA public key

You can decrypt the callback data and verify its signature as outlined below:

Callback Response

Callback response parameters as follow:

Example Callback Response

{
    "code": 200,
    "message": "SUCCESS",
    "timestamp": "1628652100447",
    "sig": "ZHIHfOoAH9WMCK2yXg8TkLSrotntBuVzMjTPTKrffpTb1rQlffTrlIFloinflgje/2gkZ8Jj9OPkOt/J1QDbyAkuQCbwu3lVOur83NzPsckFETbhmRHEUKmZYbNXm3abheVA7wx06NA1jtDy0NgUxL/f8WOJn0T3pUBdSj9lmKdeXJ8K2v9JS1wPDjnW0WTGlxviOgAy2rxRio7cj6f/GrVokN2I6itNYF82njOV2WI3P2fVOBPwq0SoRcFnHcH9OjxmXjJWqrhd/N5V5KfSHUORarDtDGOXuknplJ9bhUjN30lF6FDzidZVyeptbUeNK0yeWRoUVmnt+MhsjOHnyA==",
    "key": "y0WmiDSL23d4H5uYgc+F+yopfapj113jZYNK5nEdf7ebETIjb2IWBjaKEIAnbkxE/TJ0C/Y2EUx7D6j8ojuRcji9jnprSvdiRu9po/t08pZ3X9DEV9D6FJEud5xVCdhFLXWynYtmRpo9bGQB840s7Lykc8zM971wEk8vEhDDQeiD6C/JSDPGo6+TuTyKlOdqe9tO2fIX/4FqaYrAe8mC7yOp7oYJqV7oTi5/b8yNI5pgGXhGUqG1QDeDN218vwFctxbae01N3Q1+WgSHO+YhcBIc0bzo8ppSICUSudbY4E0DTRdF89t3df7iL7dd0zB6QWxNjHCKVeu1kmIW7GqLqg==",
    "bizContent": {
      "approve": true,
      "txKey": "txc0710da7db2b42ff9bf28df8910f8a88"
    }
}
Parameter Type Description
code int Response result code for log output, use 200 for normal return
message string Response result description for log output, use SUCCESS for normal return
timestamp string Response timestamp
sig string Signature data after signing response parameters by your callback RSA private key
key string Encrypted data of random AES key by your API RSA public key
bizContent object AES-encrypted data of response parameters

You can decrypt the response data and verify its signature as outlined below:

Co-Signer Business Callback Dictionary

Callback Dictionary

Parameter Type Description
type string Business Type
customerContent object Business content

Callback Type

type customerContent Description
TRANSACTION Transaction approval Approve transactions
MPC_SIGN MPC Sign approval Sign transactions
Web3_SIGN Web3 Sign approval Sign transactions

Transaction Approval

Example

{
    "auditRecordKey": "57e3a3e0eb3140c3ba538cc094bcb024",
    "txKey": "txc0710da7db2b42ff9bf28df8910f8a88",
    "coinKey": "ETH_GOERLI",
    "txAmount": "0.012000000000000000",
    "sourceAddress":"0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
    "sourceAddressList": [
      {
        "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d"
      }
    ],
    "sourceAccountKey": "accounta5867fecbbbc4a4f876532c87477407a",
    "sourceAccountType": "VAULT_ACCOUNT",
    "destinationAccountKey": "0259e8c481c345ca922f489961bc331b",
    "destinationAccountType": "INTERNAL_WALLET",
    "destinationAddress": "0xCa104eA8CB4722e33a3E68eD4D12d3569594FBC5",
    "destinationAddressList": [
      {
        "address": "tb1q4heth3mzkhz7v6zsz9l9t7aqcmgly96l3hep7d",
        "amount": "0.0001"
      },
      {
        "address": "tb1qrjrg92y7x0zc4h6e4xxg66r36jl22x84w3s3a0",
        "amount": "0.0001"
      }
    ],
    "destinationTag": null,
    "transactionType": "NORMAL",
    "customerRefId": "123234111112112",
    "triggerTime": 1635938498071,
    "triggerUserName": "signer",
    "txHash": "",
    "blockHeight": null,
    "feeCoinKey": "ETH_GOERLI",
    "fee": null,
    "customerExt1": "",
    "customerExt1": ""
}
Parameter Type Description
txKey string Transaction key
txHash string Transaction hash
coinKey string Coin key
txAmount string Transaction amount, the unit is the symbol returned by the coin list
sourceAccountKey string Source account key
sourceAccountType string Source account type
sourceAddress string Source address (If the transaction currency is of UTXO type, please use the sourceAddressList field)
sourceAddressList array Source address list
└─address string Source address
destinationAccountKey string Destination account key
destinationAccountType string Destination account type
destinationAddress string Destination address (If the transaction currency is of UTXO type, please use the destinationAddressList field)
destinationAddressList array Destination address list
└─address string Destination address
└─amount string Transaction amount
destinationTag string If the destination is tag or memo type, then this value is empty
vaultTxDirection string Transaction Direction
transactionType string Transaction type
transactionStatus string Transaction status. When the status is "confirming", it will be updated to "successful" when the block confirmations reaches the specified confirmation count for the currency
transactionSubStatus string Transaction substatus
createTime int64 Transaction creation time, UNIX timestamp (ms)
note string Note
auditUserKey string Final approver key
createdByUserKey string Creator key
estimateFee string Estimated transaction fee
feeCoinKey string Currency key for the transaction fee consumed during the transaction. For example, in the case of transferring ERC-20 token, the token used for the transaction fee would be ETH
replaceTxHash string Referenced transaction hash (Only for sped-up transactions)
customerRefId string Merchant unique business ID
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field

MPC Sign Approval

Example

{
    "auditRecordKey": "57e3a3e0eb3140c3ba538cc094bcb024",
    "txKey": "tx697eebea3a61440a8edf6f0a783d19b2",
    "triggerTime": 1635938498071,
    "triggerUserName": "signer",
    "note": "",
    "customerRefId": "1639558034534",
    "customerExt1": "",
    "customerExt2": "",
    "signAlg": "secp256k1",
    "hashs": [
        {
            "sourceAccountKey": "sourceAccountKey",
            "hash": "d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f69"
        }
    ]
}
Parameter Type Description
auditRecordKey string Unique identifier for approval history
customerRefId string Merchant unique business ID
note string Transaction note
triggerTime string Approval triggered time
triggerUserName string Approval trigger name
txKey string Transaction unique ID key
customerExt1 string Merchant extended field
customerExt2 string Merchant extended field
signAlg string Signature algorithm
hashs array Source account information for transaction signatures
└─sourceAccountKey string Source account key
└─hash string Signature hash

Web3 Sign Approval

Example

  {
  "txKey":null,
  "subjectType":null,
  "accountKey":null,
  "sourceAddress":null,
  "transactionStatus":null,
  "transactionSubStatus":null,
  "createdByUserKey":null,
  "createTime":null,
  "auditUserKey":null,
  "customerRefId":"",
  "transaction":{
    "to":"TLFNznovqX6FRjk1bkbX47KUGQX2UAaFnY",
    "value":"0",
    "chainId":1,
    "gasPrice":"0",
    "gasLimit":0,
    "maxPriorityFeePerGas":"0",
    "maxFeePerGas":"0",
    "nonce":2,
    "data":"hexData",
    "txHash":null
  },
  "message":{
    "chainId":1,
    "data":"json"
  },
  "messageHash":{
    "chainId":1,
    "data":[""]
  }
}
Parameter Type Description
txKey string Transaction key
subjectType string Signature type
accountKey string Source account key
sourceAddress string Source address
transactionStatus string Transaction status
transactionSubStatus string Transaction substatus
createdByUserKey string Creator key
createTime int64 Transaction creation time, UNIX timestamp (ms)
auditUserKey string Key of the last approver
customerRefId string Merchant unique business ID
transaction object This field is returned when the signature type is ETH_SIGNTRANSACTION
└─to string To
└─value string Value
└─chainId int64 Chain ID
└─gasPrice string Gas price
└─gasLimit int32 Gas limit
└─maxPriorityFeePerGas string EIP-1559 max priority fee per gas
└─maxFeePerGas string EIP-1559 max fee per gas
└─nonce int64 Nonce
└─data string Data
└─txHash string Transaction hash
message object This field is returned when the signature type is PERSONAL_SIGN or ETH_SIGN_TYPED_DATA
└─chainId int64 Chain ID
└─data string Data
messageHash object This field is returned when the signature type is ETH_SIGN
└─chainId int64 Chain ID
└─data array Hash to be signed

Response Dictionary

Transaction Approval Task

Example Response

{
    "approve": true,
    "txKey": "txc0710da7db2b42ff9bf28df8910f8a88"
}
Parameter Type Required Description
approve boolean Yes Approval result:
True: approved
False: rejected
txKey string No Transaction key

Error Code

Error Code Description
200 Success
429 Too many requests
500 System error
1001 Error unknown, please contact Safeheron Support
1004 Duplicate request
1005 User doesn't have permission
1008 Invalid request
1009 Invalid API key
1010 Parameter decryption failed
1011 Invalid IP
1012 Signature verification failed
1013 Timestamp verification failed
1014 IP exceeds frequency limit
1015 Invalid user
1016 Invalid API key
1017 Parameter validation error
1018 Request record doesn't exist
1019 Parameter parsing exception
1020 Wrong request parameter
1021 Coin key doesn't exist
1022 RSA public key error
1023 You cannot request the current interface, please contact customer service to upgrade your account
3009 Frozen merchant
3010 Closed merchant
3016 Failed to request basic service
3017 Deactivated wallet
3018 Invalid merchant
3019 Insufficient funds for withdrawal
3020 The transaction is not in 'pending approval' status
3021 Request transaction result exception
3022 Request transaction failed
3023 The current wallet does not allow this operation
3024 Transaction package data verification failed
3025 Signing failed
3026 Record cancelled
3027 Transaction approval record has been processed
3028 The current wallet does not allow this operation
3029 The hash entered is invalid
3030 The network corresponding to the chain ID does not exist
3031 Hash temporarily supports 1 element
3032 Data is required
3033 Chain ID is required
3034 Invalid data format
3035 Data length must be between 0 and 100000
3036 Value is required
3037 Nonce is required
3038 Invalid value
3039 Invalid gas price
3040 Gas limit too high
3041 Invalid max priority fee per gas
3042 Invalid max fee per gas
3043 Gas limit is required
3044 Max priority fee per gas is lower than current value on network
3045 Max fee too low
3046 Gas price and fee per gas cannot both be empty
3047 Data length must be between 0 and 1000000
3048 Nonce too low
3049 Nonce too high
3050 Balance verification is required for UTXOs
3051 This asset is not supported yet
3052 Version is required
3053 Version error
3054 This coin does not support speed-up
3055 Back up private key before creating wallets
3056 Fee rate must be greater than 0
3057 Gas limit must be greater than 0
3058 Max priority fee must be greater than 0
3059 Max fee must be greater than 0
3060 Hashs and data list cannot both be empty
3061 This algorithm is not supported yet
3062 This application is not supported yet
3063 Signature data too long
3064 The transaction amount cannot be 0
3065 Invalid receiving address
3066 Gas fee cap too low
3067 The version of Co-Signer too low
3068 Transaction failed due to exceeding the maximum number of UTXO transactions. Please collect UTXOs and try again
3069 Duplicate approval data
3070 Expired security certificate
3071 Only support to label wallets created by API
3072 The existing wallet has been used to sweep the target account
3073 The non-UTXO type does not allow batch transactions
9001 Merchant unique business ID already exists
9002 System under maintenance, and asset transfer is suspended
9003 Wrong decimal for the amount sent
9004 Wrong decimal for fee rate
9005 Hidden account cannot change name
9006 Hidden account cannot withdraw assets
9007 Frozen source account
9008 Address already exists
9009 Wrong address format
9010 There are security risks associated with this deposit address
9011 Address book already has this coin
9012 Address doesn't exist
9013 Invalid whitelisted address
9015 Frozen destination account
9016 There are security risks associated with this address. In order to ensure the safety of your assets, please proceed with caution. If you have any questions or concerns, please contact Safeheron Support
9017 Insufficient transaction fee
9018 Transaction fee too high
9019 Transaction fee too low
9020 Source address and destination address cannot be the same for TRX and TRC-20 tokens
9021 The transaction to be replaced doesn't exist
9022 Only broadcasting transaction can be sped up
9023 This coin does not support speed-up
9024 Unauthorized user tried to initiate or approve a transaction
9025 The withdrawal amount is below the minimum limit
9026 Insufficient amount for withdrawal
9027 Matched with the policy, but the approver does not possess the approval role
9028 No matching transaction policy
9030 Non-cancellable status
9031 The estimated online transaction fee is greater than the maximum transaction fee
9032 This coin is not UTXO-based type
9033 Whitelisted address name already exists
9034 Address and ID are not matched
9035 This transaction record doesn't exist
9036 Source account doesn't exist
9037 Account coin doesn't exist
9038 This coin is not supported yet
9039 The number of wallet accounts exceeds the limit
9040 The number of addresses exceeds the limit
9041 Wallet name already exists
9042 Do not meet sweeping requirements for UTXOs
9043 MPC Sign currently only supports one account
9044 Invalid hash
9045 Another address book already has this address
9047 Gas limit is less than the minimum value
9048 Abnormal risk control detection
9049 There are security risks associated with this transfer address
9050 Address format error
9051 Please wait patiently during transaction broadcasting
9052 The transaction output already used and cannot be accelerated
9053 Transaction already on the chain or nonce already used
9054 Whitelisted addresses must be approved before any transfer is allowed
9055 Insufficient UTXO
9056 Duplicate speed-up
9057 To accelerate a transaction using RBF, the fee rate of the sped-up transaction must be higher than that of the original transaction
9058 GasBudget too low
9059 GasPrice too low
9060 Insufficient SUI object
9061 The handling fee is greater than the collected amount
9062 The whitelist address does not exist or has been deleted
9063 GasUnitPrice too low
9064 GasUnitPrice too high
9065 MaxGasAmount too low
9066 Replace a transaction on Aptos should have a higher gas unit price than that of the original transaction
9067 Replace a transaction on Aptos should have a max gas amount equal to that of the original transaction
9068 SequenceNumber too low
9069 SequenceNumber too high
9070 The accelerated transaction has been linked or sequenceNumber has been occupied

Data Dictionary

Transaction Status

Dictionary Code Description
SUBMITTED Pending authorization
SIGNING Signing
BROADCASTING Broadcasting
CONFIRMING Confirming
CANCELLED Transaction cancelled
COMPLETED Transaction succeeded
FAILED Transaction failed
REJECTED Rejected

Transaction Substatus

Dictionary Code Description
CONFIRMED Confirmed
UN_KNOW_ERROR Unexpected error
REVIEW_REJECTED Rejected
TRADING_STRATEGY_BLOCKING Transaction policy blocks
MATCHING_RULE_NO_AUDITOR Matched with the policy, but the editor does not possess the approval role
TX_INFO_ERROR Failed to transact
NONCE_TOO_LOW Nonce too low
INTRINSIC_GAS_TOO_LOW Gas limit too low, cannot perform transaction
INSUFFICIENT_FUNDS Insufficient amount for withdrawal
AMOUNT_TOO_SMALL The withdrawal amount is below the minimum limit
TRANSACTION_UNDERPRICED Transaction fee too low, transaction is rejected by node
MISSING_INPUTS Invalid input
INVALID_SIGNATURE Invalid transaction signature
INTERNAL_ERROR An internal error occurred while processing the transaction
TIMEOUT The transaction request timed out
PENDING_BLOCKCHAIN_CONFIRMATIONS Pending blockchain confirmation
TAPOS_ERROR Tapos check error
NODE_SERVER_BUSY Node service is busy
DUP_TRANSACTION_ERROR The transaction is on-chain, and a duplicate submission has been made.
TRANSACTION_EXPIRATION_ERROR Transaction timed out
TRANSACTION_EXECUTION_FAILED Transaction execution failed
BANDWITH_ERROR If a user has insufficient account resources (bandwidth and energy) for TRON-based transaction, they can increase the transaction fee or purchase additional bandwidth or energy to complete the transaction.
ACCOUNT_DOES_NOT_EXIST Account doesn't exist
NO_MATCHING_RULE_FOUND Transaction failed, configure transaction policy first
WHITELIST_ADDRESS_STATUS_ILLEGAL The whitelisted address is not approved
AML_SCREENING_REJECTED Rejected by AML check
CONTRACT_VALIDATE_ERROR Transaction verification error
THE_DEAL_WAS_ABANDONED Transaction abandoned
MANUAL_TX_FAIL Manual processing
CANCELLED_BY_USER User cancelled transaction
RISK_CHECK_ILLEGAL Exceptions detected by risk control.
WALLET_NOT_ALLOWED The wallet doesn't support current operation
USER_NO_PERMISSION User has no permission
EXCHANGE_EMAIL_CONFIRMING Pending email confirmation
EXCHANGE_UN_KNOW_ERROR Unexpected error
EXCHANGE_INVALID_INFO Invalid API private key, IP or operation permission
EXCHANGE_AMOUNT_OVER_LIMIT The transfer amount exceeds the maximum
EXCHANGE_BALANCE_LACK Insufficient balance

Web3 Transaction Status

Dictionary Code Description
SUBMITTED Pending authorization
SIGNING Signing
CANCELLED Transaction cancelled
SIGN_COMPLETED MPC successfully signed
FAILED Transaction failed
REJECTED Rejected

Transaction Fee Rate Grade

Dictionary Code Description
LOW Low
MIDDLE Medium
HIGH High

Account Type

Dictionary Code Description
VAULT_ACCOUNT Vault account

Account Tag

Dictionary Code Description
NONE None
DEPOSIT Deposit Wallet
Scenario: If you need to auto-sweep a wallet using Safeheron's Auto-Sweep, tag this label to it

Transaction Source Account Type

Dictionary Code Description
VAULT_ACCOUNT Vault account
UNKNOWN External account

Transaction Destination Account Type

Dictionary Code Description
VAULT_ACCOUNT Vault account
WHITELISTING_ACCOUNT Whitelisted account
ONE_TIME_ADDRESS Unknown address account

Coin's Whitelist Status

Dictionary Code Description
VERIFY_PENDING Approving
VERIFY_PASS Approved
VERIFY_REFUSE Rejected
AML_REFUSE Rejected by risk control

Coin Type

Dictionary Code Description
NATIVE Native token, such as ETH, BTC
ERC20 Token standard on ETH
OMNI Token standard on BTC
TRC20 Token standard on TRON
BEP20 Token standard on BSC

Supported Coins

Coins Coin's Block Confirmations Account type
Ethereum 12 ACCOUNT
Ethereum(Ropsten) 50 ACCOUNT
Bsc 12 ACCOUNT
Heco 12 ACCOUNT
Tron 20 ACCOUNT
Avalanche 120 ACCOUNT
Ether Classic 500 ACCOUNT
FTM 30 ACCOUNT
MATIC 130 ACCOUNT
NEAR 120 ACCOUNT
FIL 900 ACCOUNT
Bitcoin 2 UTXO
Bitcoin cash 10 UTXO
Dash 10 UTXO

Address Type

Dictionary Code Description
DEFAULT Normal address
P2PKH Normal address
P2WPKH SegWit address
P2PKH_CASH BCH-format normal address

Transaction Type

Dictionary Code Description
TRANSACTION Transaction
MPC_SIGN Native signature

Transaction Subtype

Dictionary Code Description
NORMAL Normal transaction
UTXO_COLLECTION UTXO-sweeping transaction
ABNORMAL Transfers to external destinations (not in the Safeheron platform) or transactions signed by the original private key recovered by key shards
AUTO_SWEEP Auto-sweeping transaction
AUTO_FUEL Auto-fueling transaction
UTXO_BATCH_TRANSFER UTXO Multi-Address Transfer

Web3 Sign Type

Dictionary Code Description
ETH_SIGN ethSign
PERSONAL_SIGN personalSign
ETH_SIGN_TYPED_DATA ethSignTypedData
ETH_SIGNTRANSACTION ethSignTransaction

Signature Algorithm

Dictionary Code Description
secp256k1 secp256k1
ed25519 ed25519

Query Page Direction

Dictionary Code Description
PREV Previous
NEXT Next

Balance Verification

Dictionary Code Description
BALANCE_CHECK Verify the balance
NON_CHECK Do not verify the balance

Version of EthSignTypedData

Dictionary Code Description
ETH_SIGNTYPEDDATA_V1 eth_signTypedData_v1
ETH_SIGNTYPEDDATA_V3 eth_signTypedData_v3
ETH_SIGNTYPEDDATA_V4 eth_signTypedData_v4

API SDK

We provide API SDKs for four programming languages: Java, JavaScript, Golang, and Python.

Changelog

2024-02-22 v2.1.11

2023-11-28 v2.1.10

2023-11-09 v2.1.9

2023-10-17 v2.1.8

2023-08-17 v2.1.7

2023-07-25 v2.1.6

2023-06-29 v2.1.5

2023-03-16 v2.1.4

2023-02-17 v2.1.3

2022-11-24 v2.1.2

2022-11-03 v2.1.1

2022-09-27 v2.1.0

2022-06-30 v2.0.0

2022-06-18 v1.0.4

2022-01-18 v1.0.3

2021-12-03 v1.0.2

2021-11-17 v1.0.1

2021-08-31 v1.0.0