---
title: "Store a log record"
method: POST
path: "/v3/record"
tags: ["Blockchain storage"]
---

# Store a log record

`POST /v3/record`

## Request

- Base URL: `https://api.tatum.io`
- URL: `https://api.tatum.io/v3/record`
- Auth: API key in header `x-api-key`

/v3/record

**2 credits per API call + additional credits based on the size of the stored data and the type of the blockchain**

Store data on the blockchain.

The total cost of a transaction on Ethereum (in credits) depends on the size of the data. The data is stored as a string in the hexadecimal format, and the maximum size of the data is approximately 130 kB on the mainnet and 30 kB on testnet. Every 5 characters cost 1 credit.  
Therefore, one API call with 1 kB of data (1024 characters) would cost 205 credits.

This API is supported for the following blockchains:

*   BNB Smart Chain
*   Celo
*   Elrond
*   Ethereum (only the mainnet or the Sepolia testnet)
*   Harmony
*   Klaytn
*   Polygon
*   XDC

## Request body

- union
  - CreateRecord
    - `data` string, required: The data to be stored on the blockchain
    - `chain` 'BSC' | 'EGLD' | 'ETH' | 'KLAY' | 'MATIC' | 'ONE' | 'XDC', required: The blockchain to store the data on
    - `fromPrivateKey` string, required: The private key of the blockchain address from which the transaction will be made and the transaction fee will be deducted
    - `from` string: (Elrond only; required) The blockchain address from which the transaction will be made<br/>This is a mandatory parameter for Elrond. Do not use it with any other blockchain.
    - `to` string: The blockchain address to store the data on<br/>If not provided, the data will be stored on the address from which the transaction is made.
    - `nonce` number: The nonce to be set to the transaction; if not present, the last known nonce will be used
    - `fromShardID` number: (Harmony only) The ID of the shard from which the data should be read
    - `toShardID` number: (Harmony only) The ID of the shard to which the data should be recorded
    - `ethFee` CustomFee: The custom defined fee; if not present, will be calculated automatically
      - `gasPrice` string, required: The price for one gas unit (in Gwei)
      - `gasLimit` string, required: The maximum number of gas units that you are willing to spend on processing the transaction at the provided gas price
  - CreateRecordKMS
    - `data` string, required: The data to be stored on the blockchain
    - `chain` 'ETH', required: The blockchain to store the data on
    - `signatureId` string, uuid, required: Identifier of the mnemonic / private key associated in signing application. When hash identifies mnemonic, index must be present to represent specific account to pay from.
    - `index` integer: Derivation index of sender address.
    - `to` string: The blockchain address to store the data on<br/>If not provided, the data will be stored on the address from which the transaction is made.
    - `nonce` number: The nonce to be set to the transaction; if not present, the last known nonce will be used
    - `fee` CustomFee: The custom defined fee; if not present, will be calculated automatically
      - `gasPrice` string, required: The price for one gas unit (in Gwei)
      - `gasLimit` string, required: The maximum number of gas units that you are willing to spend on processing the transaction at the provided gas price
  - CreateRecordCelo
    - `data` string, required: The data to be stored on the blockchain
    - `chain` 'CELO', required: The blockchain to store the data on
    - `feeCurrency` 'CELO' | 'CUSD' | 'CEUR', required: The currency in which the transaction fee will be paid
    - `fee` CustomFee: The custom defined fee; if not present, will be calculated automatically
      - `gasPrice` string, required: The price for one gas unit (in Gwei)
      - `gasLimit` string, required: The maximum number of gas units that you are willing to spend on processing the transaction at the provided gas price
    - `fromPrivateKey` string, required: Private key of account, from which the transaction will be initiated. If not present, transaction fee will be debited from Tatum internal account and additional credits will be charged.
    - `nonce` number: Nonce to be set to Ethereum transaction. If not present, last known nonce will be used.
    - `to` string: The blockchain address to store the data on<br/>If not provided, the data will be stored on the address from which the transaction is made.

## Response `200`

OK

- CustomFee: The custom defined fee; if not present, will be calculated automatically
  - `gasPrice` string, required: The price for one gas unit (in Gwei)
  - `gasLimit` string, required: The maximum number of gas units that you are willing to spend on processing the transaction at the provided gas price

## 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 perform the required operation due to a 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.dev/tatum/apis/storage.md) - [All operations](https://skmtc.dev/tatum/apis/storage/llms.txt) - [OpenAPI document](https://skmtc.dev/tatum/apis/storage/revisions/d5dc3eec52c2?raw)
