---
title: "Send DOGE to Dogecoin addresses"
method: POST
path: "/v3/dogecoin/transaction"
tags: ["Dogecoin - Tatum API"]
---

# Send DOGE to Dogecoin addresses

`POST /v3/dogecoin/transaction`

/v3/dogecoin/transaction

**2 credits per API call**

Send DOGE to blockchain addresses.

Dogecoin transactions are based on UTXOs. "UTXO" stands for "Unspent Transaction Output". A UTXO is the amount of DOGE that remains at a Bitcoin Cash address after a cryptocurrency transaction involving this address has been performed. The UTXO can then be used as input for a new cryptocurrency transaction. For more information the UTXO, see the [Bitcoin user documentation](https://developer.bitcoin.org/devguide/transactions.html). To check UTXOs in a transaction, see the [API for getting information about a transaction output (UTXO) in a Dogecoin transaction](#operation/DogeGetUTXO)

You build a DOGE transaction by sending DOGE from UTXOs. Each UTXO is included in the transaction.

When an UTXO is entered into a transaction, the whole UTXO amount is included and must be spent. For example, address A receives two transactions, T1 with 1 DOGE and T2 with 2 DOGE. A transaction that consumes the UTXOs from both T1 and T2 will have an available amount of 3 DOGE to spend:  
`1 DOGE (from T1) + 2 DOGE (from T2) = 3 DOGE (to spend in total)`

You can send the assets to one or multiple recipients in one transaction. If you send the assets to multiple addresses, each address must have its own amount to receive.

**Paying the gas fee and receiving the change**  
When the amount that the recipients should receive is lower than the amount from the UTXOs, the difference between these two amounts is by default used as the gas fee for the transaction. Because this amount may be considerable and you may not want to spend it all on the gas fee, you can explicitly specify the fee amount and the blockchain address where any extra funds remaining after covering the fee will be sent (the `fee` and `changeAddress` parameters in the request body, correspondingly).

**Signing a transaction**  
When sending DOGE, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.

Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the **testnet** of a blockchain.

For signing transactions on the **mainnet**, we strongly recommend that you use the Tatum [Key Management System (KMS)](https://github.com/tatumio/tatum-kms) and provide the signature ID instead of the private key in the API. Alternatively, you can use the [Tatum JavaScript client](https://github.com/tatumio/tatum-js/tree/v2).

## Request body

- union
  - DogeTransactionAddress
    - `fromAddress` object[], required — The array of blockchain addresses to send the assets from and their private keys. For each address, the last 100 transactions are scanned for any UTXO to be included in the transaction.
      - `address` string, required — The blockchain address to receive the assets
      - `privateKey` string, required — The private key of the blockchain address that holds the UTXO to be spent
    - `to` object[], required — The array of blockchain addresses to send the assets to and the amounts that each address should receive (in DOGE). The difference between the UTXOs calculated in the <code>fromAddress</code> section and the total amount to receive calculated in the <code>to</code> section will be used as the gas fee. To explicitly specify the fee amount and the blockchain address where any extra funds remaining after covering the fee will be sent, set the <code>fee</code> and <code>changeAddress</code> parameters.
      - `address` string, required — The blockchain address to receive the assets
      - `value` number, required — The amount to receive (in DOGE)
    - `fee` string — The fee to be paid for the transaction (in DOGE); if you are using this parameter, you have to also use the <code>changeAddress</code> parameter because these two parameters only work together.
    - `changeAddress` string — The blockchain address to send any extra assets remaning after covering the fee to; if you are using this parameter, you have to also use the <code>fee</code> parameter because these two parameters only work together.
  - DogeTransactionAddressKMS
    - `fromAddress` object[], required — The array of blockchain addresses to send the assets from and their private keys. For each address, the last 100 transactions are scanned for any UTXO to be included in the transaction.
      - `address` string, required — The blockchain address to receive the assets
      - `signatureId` string, uuid, required — The KMS identifier of the private key of the address to send the assets from
      - `index` number — (Only if the signature ID is mnemonic-based and you run KMS v6.2 or later) The index of the address to send the assets from that was generated from the mnemonic
    - `to` object[], required — The array of blockchain addresses to send the assets to and the amounts that each address should receive (in DOGE). The difference between the UTXOs calculated in the <code>fromAddress</code> section and the total amount to receive calculated in the <code>to</code> section will be used as the gas fee. To explicitly specify the fee amount and the blockchain address where any extra funds remaining after covering the fee will be sent, set the <code>fee</code> and <code>changeAddress</code> parameters.
      - `address` string, required — The blockchain address to receive the assets
      - `value` number, required — The amount to receive (in DOGE)
    - `fee` string — The fee to be paid for the transaction (in DOGE); if you are using this parameter, you have to also use the <code>changeAddress</code> parameter because these two parameters only work together.
    - `changeAddress` string — The blockchain address to send any extra assets remaning after covering the fee to; if you are using this parameter, you have to also use the <code>fee</code> parameter because these two parameters only work together.
  - DogeTransactionUTXO
    - `fromUTXO` object[], required — The array of transaction hashes, indexes of its UTXOs, and the private keys of the associated blockchain addresses
      - `txHash` string, required — The transaction hash of the UTXO to be spent
      - `value` string, required — The amount to send (in DOGE)
      - `address` string, required — The blockchain address to receive the assets
      - `index` number, required — The index of the UTXO to be spent
      - `privateKey` string, required — The private key of the blockchain address that holds the UTXO to be spent
    - `to` object[], required — The array of blockchain addresses to send the assets to and the amounts that each address should receive (in DOGE). The difference between the UTXOs calculated in the <code>fromUTXO</code> section and the total amount to receive calculated in the <code>to</code> section will be used as the gas fee. To explicitly specify the fee amount and the blockchain address where any extra funds remaining after covering the fee will be sent, set the <code>fee</code> and <code>changeAddress</code> parameters.
      - `address` string, required — The blockchain address to receive the assets
      - `value` number, required — The amount to receive (in DOGE)
    - `fee` string — The fee to be paid for the transaction (in DOGE); if you are using this parameter, you have to also use the <code>changeAddress</code> parameter because these two parameters only work together.
    - `changeAddress` string — The blockchain address to send any extra assets remaning after covering the fee to; if you are using this parameter, you have to also use the <code>fee</code> parameter because these two parameters only work together.
  - DogeTransactionUTXOKMS
    - `fromUTXO` object[], required — The array of transaction hashes, indexes of its UTXOs, and the signature IDs of the associated blockchain addresses
      - `txHash` string, required — The transaction hash of the UTXO to be spent
      - `value` string, required — The amount to send (in DOGE)
      - `address` string, required — The blockchain address to receive the assets
      - `index` number, required — The index of the UTXO to be spent
      - `signatureId` string, uuid, required — The KMS identifier of the private key of the blockchain address that holds the UTXO to be spent
      - `signatureIdIndex` number — Index of the address in the wallet. Required when signatureId represents the mnenomic.
    - `to` object[], required — The array of blockchain addresses to send the assets to and the amounts that each address should receive (in DOGE). The difference between the UTXOs calculated in the <code>fromUTXO</code> section and the total amount to receive calculated in the <code>to</code> section will be used as the gas fee. To explicitly specify the fee amount and the blockchain address where any extra funds remaining after covering the fee will be sent, set the <code>fee</code> and <code>changeAddress</code> parameters.
      - `address` string, required — The blockchain address to receive the assets
      - `value` number, required — The amount to receive (in DOGE)
    - `fee` string — The fee to be paid for the transaction (in DOGE); if you are using this parameter, you have to also use the <code>changeAddress</code> parameter because these two parameters only work together.
    - `changeAddress` string — The blockchain address to send any extra assets remaning after covering the fee; if you are using this parameter, you have to also use the <code>fee</code> parameter because these two parameters only work together.

## Response `200`

OK

- union
  - TransactionHash
    - `txId` string, required — The hash (ID) of the transaction
  - SignatureId
    - `signatureId` string, uuid, required — The internal Tatum ID of the prepared transaction for Key Management Sysytem (KMS) to sign<br/>This is different from the <code>signatureId</code> parameter that you provided in the request body. The <code>signatureId</code> parameter in the request body specifies the signature ID associated with the private key in KMS.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
- `403` — Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.
- `500` — Internal server error. There was an error on the server during the processing of the request.

---

[API](https://skmtc.net/tatum/apis/blockchain-data.md) · [All operations](https://skmtc.net/tatum/apis/blockchain-data/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tatum/blockchain-data/versions/8622ee4b8fae/schema)
