Create Automatic Coins Forwarding

Through this endpoint customers can set up an automatic forwarding function specifically for coins (not tokens). They can have a toAddress which is essentially the main address and the destination for the automatic coins forwarding.

There is also a minimumTransferAmount which only when reached will then trigger the forwarding. Through this the customer can save from fees.

Moreover, feePriority can be also set, which defines how quickly to move the coins once they are received. The higher priority, the larger the fee will be. It can be "SLOW", "STANDARD" or "FAST".

The response of this endpoint contains an attribute fromAddress which can be used as a deposit address. Any funds received by this address will be automatically forwarded to toAddress based on what the customer has set for the automation.

For this automatic forwarding the customer can set a callback subscription.

The subscription will work for all incoming transactions until it is deleted. There is no need to do that for every transaction.

This endpoint generates a new fromAddress each time.

Supports Callback Functionality Single Result - This endpoint returns only one single result. POST /blockchain-automations/{blockchain}/{network}/coins-forwarding/automations

Path Parameters

  • Required
    blockchain string

    Represents the specific blockchain protocol name, e.g. Ethereum, Bitcoin, etc.

    Example : bitcoin
    Possible Values : bitcoin bitcoin-cash litecoin dogecoin dash ethereum ethereum-classic
  • Required
    network string

    Represents the name of the blockchain network used; blockchain networks are usually identical as technology and software, but they differ in data, e.g. - "mainnet" is the live network with actual data while networks like "testnet", "ropsten" are test networks.

    Example : testnet
    Possible Values : mainnet testnet mordor sepolia

Query parameters

  • Optional
    context string

    In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

    Example : yourExampleString

Request body schema application/json

  • Optional
    context string

    In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

    Example : yourExampleString
  • Required
    data object
    • Required
      item object
      • Required
        callbackSecretKey string

        Represents the Secret Key value provided by the customer. This field is used for security purposes during the callback notification, in order to prove the sender of the callback as Crypto APIs. For more information please see our Documentation.

        Example : yourSecretString
      • Required
        callbackUrl string

        Represents the URL that is set by the customer where the callback will be received at. The callback notification will be received only if and when the event occurs. We support ONLY httpS type of protocol.

        Example : https://example.com
      • Required
        confirmationsCount integer

        Represents the number of confirmations, i.e. the amount of blocks that have been built on top of this block.

        Example : 3
      • Required
        feePriority string

        Represents the fee priority of the automation, whether it is "slow", "standard" or "fast".

        Example : standard
        Possible Values : slow standard fast
      • Required
        minimumTransferAmount string

        Represents the minimum transfer amount of the currency in the fromAddress that can be allowed for an automatic forwarding.

        Example : 0.02
      • Required
        toAddress string

        Represents the hash of the address the currency is forwarded to.

        Example : mzYijhgmzZrmuB7wBDazRKirnChKyow4M3

Response schema

201 400 401 402 403 404 409 415 422 429 500
HTTP Status Code: 201
Content-Type: application/json

The resource has been successfully created.

  • Object :

  • Required
    apiVersion string

    Specifies the version of the API that incorporates this endpoint.

    Example : 2023-04-25
  • Required
    requestId string

    Defines the ID of the request. The requestId is generated by Crypto APIs and it's unique for every request.

    Example : 601c1710034ed6d407996b30
  • Optional
    context string

    In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

    Example : yourExampleString
  • Required
    data object
    • Required
      item object
      • Required
        callbackUrl string

        Represents the URL that is set by the customer where the callback will be received at. The callback notification will be received only if and when the event occurs. We support ONLY httpS type of protocol.

        Example : https://example.com
      • Required
        confirmationsCount integer

        Represents the number of confirmations, i.e. the amount of blocks that have been built on top of this block.

        Example : 3
      • Required
        createdTimestamp integer

        Defines the specific time/date when the automatic forwarding was created in Unix Timestamp.

        Example : 1611238648
      • Required
        feePriority string

        Represents the fee priority of the automation, whether it is "SLOW", "STANDARD" OR "FAST".

        Example : standard
        Possible Values : slow standard fast
      • Required
        fromAddress string

        Represents the hash of the address that forwards the currency.

        Example : mzAsK3csTnozLnYVdca4gaoH1btBZBC6QB
      • Required
        minimumTransferAmount string

        Represents the minimum transfer amount of the currency in the fromAddress that can be allowed for an automatic forwarding.

        Example : 0.0002
      • Required
        referenceId string

        Represents a unique ID used to reference the specific callback subscription.

        Example : 6017c964973cdcf4d4f69e29
      • Required
        toAddress string

        Represents the hash of the address the currency is forwarded to.

        Example : mzYijhgmzZrmuB7wBDazRKirnChKyow4M3

Callback parameters Method : POST

You can use the optional parameter callbackSecretKey in your request for additional security. It is then used to create a unique hash string in the x-signature response header in the callback request itself. For more information, please see our Documentation.
COINS_FORWARDING_SUCCESS COINS_FORWARDING_FAIL

Content-Type : application/json

  • Object :

  • Required
    apiVersion string

    Specifies the version of the API that incorporates this endpoint.

    Example : 2021-03-20
  • Required
    referenceId string

    Represents a unique identifier that serves as reference to the specific request which prompts a callback, e.g. Blockchain Events Subscription, Blockchain Automation, etc.

    Example : 6038d09050653d1f0e40584c
  • Required
    idempotencyKey string

    Specifies a unique ID generated by the system and attached to each callback. It is used by the server to recognize consecutive requests with the same data with the purpose not to perform the same operation twice.

    Example : e55bf7a4a7188855f1c27541a6c387d04cc3b22ee34d1304b0e6ecad61c9906c
  • Required
    data object

    Specifies all data, as attributes, included into the callback notification, which depends on the event.

    • Required
      product string

      Represents the Crypto APIs 2.0 product which sends the callback.

      Example : BLOCKCHAIN_AUTOMATIONS
    • Required
      event string

      Defines the specific event, for which a callback subscription is set.

      Example : COINS_FORWARDING_SUCCESS
    • Required
      item object

      Defines an item as one result.

      • Required
        blockchain string

        Represents the specific blockchain protocol name, e.g. Ethereum, Bitcoin, etc.

        Example : bitcoin
      • Required
        network string

        Represents the name of the blockchain network used; blockchain networks are usually identical as technology and software, but they differ in data, e.g. - "mainnet" is the live network with actual data while networks like "testnet", "ropsten", "rinkeby" are test networks.

        Example : testnet
      • Required
        fromAddress string

        Represents the hash of the address that provides the coins.

        Example : mmd963W1fECjLyaDCHcioSCZYHkRwjkGST
      • Required
        toAddress string

        Represents the hash of the address to forward the coins to.

        Example : ms4KNsbNpoU8g424pzmEjbkFbfAHae1msB
      • Required
        forwardedAmount string

        Represents the amount of coins that have been forwarded.

        Example : 00059441
      • Required
        forwardedUnit string

        Represents the unit of coins that have been forwarded, e.g. BTC.

        Example : BTC
      • Required
        spentFeesAmount string

        Represents the amount of the fee spent for the coins to be forwarded.

        Example : 0.00022827
      • Required
        spentFeesUnit string

        Represents the unit of the fee spent for the coins to be forwarded, e.g. BTC.

        Example : BTC
      • Required
        triggerTransactionId string

        Defines the unique Transaction ID that triggered the coin forwarding.

        Example : 86a7546bde4ac28b34504909d138592a6d6fc1277ea1f8f2f9c75dc04bdf3b7b
      • Required
        forwardingTransactionId string

        Defines the unique Transaction ID that forwarded the coins.

        Example : 2241b5264fac8acb92e9fc597035b99cdd22f6578d63c6f52b099729f7c4f979

Credits Cost : 1000 Credits For 1 Result(s)

Try it out

Request Example

POST
https://rest.cryptoapis.io/blockchain-automations/bitcoin/testnet/coins-forwarding/automations?context=yourExampleString
Headers
Content-Type: application/json
X-API-Key: my-api-key

Request Body
{
    "context": "yourExampleString",
    "data": {
        "item": {
            "callbackSecretKey": "yourSecretString",
            "callbackUrl": "https://example.com",
            "confirmationsCount": 3,
            "feePriority": "standard",
            "minimumTransferAmount": "0.02",
            "toAddress": "mzYijhgmzZrmuB7wBDazRKirnChKyow4M3"
        }
    }
}

Response Example

{
    "apiVersion": "2023-04-25",
    "requestId": "601c1710034ed6d407996b30",
    "context": "yourExampleString",
    "data": {
        "item": {
            "callbackUrl": "https://example.com",
            "confirmationsCount": 3,
            "createdTimestamp": 1611238648,
            "feePriority": "standard",
            "fromAddress": "mzAsK3csTnozLnYVdca4gaoH1btBZBC6QB",
            "minimumTransferAmount": "0.0002",
            "referenceId": "6017c964973cdcf4d4f69e29",
            "toAddress": "mzYijhgmzZrmuB7wBDazRKirnChKyow4M3"
        }
    }
}

Callback Example

{
    "apiVersion": "2021-03-20",
    "referenceId": "6038d09050653d1f0e40584c",
    "idempotencyKey": "e55bf7a4a7188855f1c27541a6c387d04cc3b22ee34d1304b0e6ecad61c9906c",
    "data": {
        "product": "BLOCKCHAIN_AUTOMATIONS",
        "event": "COINS_FORWARDING_SUCCESS",
        "item": {
            "blockchain": "bitcoin",
            "network": "testnet",
            "fromAddress": "mmd963W1fECjLyaDCHcioSCZYHkRwjkGST",
            "toAddress": "ms4KNsbNpoU8g424pzmEjbkFbfAHae1msB",
            "forwardedAmount": "00059441",
            "forwardedUnit": "BTC",
            "spentFeesAmount": "0.00022827",
            "spentFeesUnit": "BTC",
            "triggerTransactionId": "86a7546bde4ac28b34504909d138592a6d6fc1277ea1f8f2f9c75dc04bdf3b7b",
            "forwardingTransactionId": "2241b5264fac8acb92e9fc597035b99cdd22f6578d63c6f52b099729f7c4f979"
        }
    }
}