How to send an Ethereum transaction

Sending an Ethereum transaction is very straightforward, you only have to execute one API call to Tatum.

The Ethereum blockchain is account-based. Your address is the account from which you send and receive every transaction.

In order to send Ethereum to another blockchain address, you have to provide the recipient address, the amount to be transferred, and the private key of the account you want to send money from. The fee for the transaction is calculated automatically based on the usage of the blockchain network, but can be entered manually.

Data to calculate transaction fees can be obtained from the https://ethgasstation.info. The trader gas price is used.

Sending an Ethereum transaction

Enough of the theory. Let's send some Ethereum using an Ethereum/Send endpoint.

Request
Response
Request
curl --location --request POST 'https://api-eu1.tatum.io/v3/ethereum/transaction' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"to": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
"currency": "ETH",
"amount": "0.01",
"fromPrivateKey": "0xcd2fe348ecbde2a9b1caf0429dfaac4b656b9d969eca290cc106e6cbb38ef1e9"
}'
Response
{
"txId": "0x7698f412a70385f3e1ab513a9ecf5edd7dc1c76f0e369b1c7b059d98892091c0"
}

Blockchain transactions are signed using a private key via API, which is not a secure way of signing transactions. Your private keys and mnemonics should never leave your security perimeter. To correctly and securely sign a transaction, you can use Tatum CLI from the command line, a specific language library like Tatum JS, the local middleware API, or our complex key management system, Tatum KMS.

Getting transaction detail

The result is the transaction ID that can be obtained and checked via the Ethereum/Get transaction endpoint.

Request
Response
Request
curl --location --request GET 'https://api-eu1.tatum.io/v3/ethereum/transaction/0x7698f412a70385f3e1ab513a9ecf5edd7dc1c76f0e369b1c7b059d98892091c0' \
--header 'x-api-key: YOUR_API_KEY'
Response
{
"blockHash": "0x51ba00b430d47ab623a8d4e516cb8a11dc5ee7e773bd9649ac2ad2573b9d3616",
"blockNumber": 9115179,
"contractAddress": null,
"gas": 26000,
"gasPrice": "60000000000",
"gasUsed": 21000,
"logs": [],
"nonce": 0,
"status": true,
"transactionHash": "0x7698f412a70385f3e1ab513a9ecf5edd7dc1c76f0e369b1c7b059d98892091c0",
"transactionIndex": 0,
"value": "10000000000000000",
"from": "0xfb99f8ae9b70a0c8cd96ae665bbaf85a7e01a2ef",
"to": "0x687422eea2cb73b5d3e242ba5456b782919afc85"
}

And that's it. A piece of cake. Now you know how to create your wallet, receive assets, and send them somewhere else. To find out more about the endpoints you used today, read our API Reference.