Create Coins Transaction Request from Wallet

Through this endpoint users can create a new transaction request from the entire Wallet instead from just a specific address. This endpoint can generate transactions from multiple to multiple addresses.

This is available only for UTXO-based protocols such as Bitcoin, Bitcoin Cash, Litecoin, etc. It is not available for Account-based protocols like Ethereum.

Supports Callback Functionality Single Result - This endpoint returns only one single result. POST /wallet-as-a-service/wallets/{walletId}/{blockchain}/{network}/transaction-requests

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 zcash
  • 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", "goerli" are test networks.

    Default : testnet
    Example : testnet
    Possible Values : mainnet testnet
  • Required
    walletId string

    Represents the sender's specific and unique Wallet ID of the sender.

    Example : 609e221675d04500068718dc

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
      • Optional
        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 : yourSecretKey
      • Optional
        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
        feePriority string

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

        Example : standard
        Possible Values : slow standard fast
      • Optional
        note string

        Represents an optional note to add a free text in, explaining or providing additional detail on the transaction request.

        Example : yourAdditionalInformationhere
      • Optional
        prepareStrategy string

        Refers to a model of a UTXO spending strategy, where customers can choose how to spend their transaction outputs from multiple Bitcoin addresses. Two options available - "minimize-dust" (select lower amounts from multiple addresses) or "optimize-size" (select higher amounts from less addresses).

        Default : minimize-dust
        Example : minimize-dust
        Possible Values : minimize-dust optimize-size
      • Required
        recipients array
        Items (object)

        Defines the destination of the transaction, whether it is incoming or outgoing.

        • Required
          address string

          Defines the specific recipient/destination address.

          Example : 2MtzNEqm2D9jcbPJ5mW7Z3AUNwqt3afZH66
        • Required
          amount string

          Represents the specific amount of the transaction's destination.

          Example : 0.125

Response schema

201 400 401 402 403 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
      • Optional
        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 : yourSecretKey
      • Optional
        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
        feePriority string

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

        Example : standard
        Possible Values : slow standard fast
      • Optional
        note string

        Represents an optional note to add a free text in, explaining or providing additional detail on the transaction request.

        Example : yourAdditionalInformationhere
      • Required
        recipients array

        Defines the destination of the transaction, whether it is incoming or outgoing.

        • Required
          address string

          Defines the specific destination address.

          Example : mmd963W1fECjLyaDCHcioSCZYHkRwjkhtr
        • Required
          amount string

          Represents the specific amount of the transaction's destination.

          Example : 0.00123
      • Required
        totalTransactionAmount string

        Represents the specific amount of the transaction.

        Example : 0.001
      • Required
        transactionRequestId string

        Represents a unique identifier of the transaction request (the request sent to make a transaction), which helps in identifying which callback and which referenceId concern that specific transaction request.

        Example : 6017dd02a309213863be9e55
      • Required
        transactionRequestStatus string

        Defines the status of the transaction, e.g. "created, "await_approval", "pending", "prepared", "signed", "broadcasted", "success", "failed", "rejected", mined".

        Example : created
        Possible Values : created await-approval pending prepared signed broadcasted success failed rejected mined

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.
TRANSACTION_REQUEST_APPROVAL TRANSACTION_REQUEST_REJECTION TRANSACTION_REQUEST_BROADCASTED TRANSACTION_REQUEST_MINED TRANSACTION_REQUEST_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 : WALLET_AS_A_SERVICE
    • Required
      event string

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

      Example : TRANSACTION_REQUEST_APPROVAL
    • 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/Ethereum (whichever applicable)
      • 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", "goerli", "mordor" are test networks.

        Example : Testnet/Mainnet (whichever applicable)
      • Required
        requiredApprovals integer

        The required number of approvals needed to approve the transaction.

        Example : 2
      • Required
        requiredRejections integer

        The required number of rejections needed to reject the transaction.

        Example : 2
      • Required
        currentApprovals integer

        The current number of approvals given for the transaction.

        Example : 1
      • Required
        currentRejections integer

        The current number of rejections given for the transaction.

        Example : 0

Credits Cost : 500 Credits For 1 Result(s)

Try it out

Request Example

POST
https://rest.cryptoapis.io/wallet-as-a-service/wallets/609e221675d04500068718dc/bitcoin/testnet/transaction-requests?context=yourExampleString
Headers
Content-Type: application/json
X-API-Key: my-api-key

Request Body
{
    "context": "yourExampleString",
    "data": {
        "item": {
            "callbackSecretKey": "yourSecretKey",
            "callbackUrl": "https://example.com",
            "feePriority": "standard",
            "note": "yourAdditionalInformationhere",
            "prepareStrategy": "minimize-dust",
            "recipients": [
                {
                    "address": "2MtzNEqm2D9jcbPJ5mW7Z3AUNwqt3afZH66",
                    "amount": "0.125"
                }
            ]
        }
    }
}

Response Example

{
    "apiVersion": "2023-04-25",
    "requestId": "601c1710034ed6d407996b30",
    "context": "yourExampleString",
    "data": {
        "item": {
            "callbackSecretKey": "yourSecretKey",
            "callbackUrl": "https://example.com",
            "feePriority": "standard",
            "note": "yourAdditionalInformationhere",
            "recipients": [
                {
                    "address": "mmd963W1fECjLyaDCHcioSCZYHkRwjkhtr",
                    "amount": "0.00123"
                }
            ],
            "totalTransactionAmount": "0.001",
            "transactionRequestId": "6017dd02a309213863be9e55",
            "transactionRequestStatus": "created"
        }
    }
}

Callback Example

{
    "apiVersion": "2021-03-20",
    "referenceId": "6038d09050653d1f0e40584c",
    "idempotencyKey": "e55bf7a4a7188855f1c27541a6c387d04cc3b22ee34d1304b0e6ecad61c9906c",
    "data": {
        "product": "WALLET_AS_A_SERVICE",
        "event": "TRANSACTION_REQUEST_APPROVAL",
        "item": {
            "blockchain": "Bitcoin\/Ethereum (whichever applicable)",
            "network": "Testnet\/Mainnet (whichever applicable)",
            "requiredApprovals": 2,
            "requiredRejections": 2,
            "currentApprovals": 1,
            "currentRejections": 0
        }
    }
}