Get information about blocks (when they were added, how many NFTs and events were ingested and list of transaction hashes that were processed within them) on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started, provide a chain and specify one of the filters listed below (combination of these filters is not allowed):
Get all events on given addresses and / or in the requested block range on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
To improve response times and obtain specific data, it is recommended to use proper filtering techniques. Please provide a chain name and a combination of filters that will accomplish this (at least block range or contract addresses must be specified).
\n
It is possible to specify multiple contract addresses at once by passing them as a comma separated string.
\n
If block range is not specified, the API attempts to go through all available blocks, which may result in a timeout error.
\n
It is recommended to filter only one specific type of events, which comes with built-in decoding for all the supported types.
\n
It is, however, also possible to filter by signature hashes, which can be passed together as a comma separated string.
\n
\n
As noted above, aside from general info and hashed event data, the API also decodes them for you in case you filter by one of the following supported event types:
\n
\n
tokenTransfer: All transfers of fungible tokens (including stablecoins) and NFTs as per ERC-20 and ERC-721 standard.
\n
multitokenTransfer: All transfers of multitokens (both single transfers and batch transfers) as per ERC-1155 standard.
\n
stablecoinTransfer: Refers to the transfer of specific stablecoins on the mainnet. Typically, the top 10 to 16 stablecoins on each chain according to CoinMarketCap are included. If the contractAddresses parameter is also used in the filter combination, any tokens specified in it will also be included in the list.
\n
uniswapTrade: Provides all swap events that occur on both Uniswap V2 and V3. In some cases, it may not be possible to map the swapped amounts to specific tokens. As a result, certain decoded data such as token amounts might be missing or in the original big number format. This will be indicated by the response parameter partiallyRaw: true.
Get information about latest added block on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started, you can just provide a chain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Data/introduction.md b/v0/Blockchain Data/introduction.md
new file mode 100644
index 00000000..2ad2fd4a
--- /dev/null
+++ b/v0/Blockchain Data/introduction.md
@@ -0,0 +1,41 @@
+---
+title: "Introduction"
+slug: "introduction"
+excerpt: "Blockchain Data is a comprehensive collection of products, designed for developers to easily access on-chain data such as token balances, NFT owners, metadata, and more, all through a suite of user-friendly APIs."
+hidden: false
+createdAt: "Tue Feb 06 2024 06:16:15 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 06 2024 07:42:50 GMT+0000 (Coordinated Universal Time)"
+---
+Blockchain Data offers a reliable, cross chain, scalable, and cost-effective way for developers to access on-chain data, making it an essential tool for any blockchain project.
+
+
+
Don't have an API key?>
+
Get one to start using Blockchain Data in your app today.
+
+# Costs
+
+All the features/functionalities across the Blockchain Data Suite cost 70 credits/call for a simple call,
+and 70 \* Number of Operations for Batch calls.
+
+Example :
+
+1. Batch Call to Get Balance of Address for 10 Addresses - 70 \* 10 = 700 Credits
+
+# Products
+
+## NFT API
+
+NFT API product aims to help you fetch all NFT Related On Chain Data you would ever need for your web3 App.
+Read more about the functionalities/features offered [here](https://tatumdocs.readme.io/v0/reference/nft-api).
+
+## Token API
+
+Token API product aims to help you fetch information about a token like Name, Symbol, Supply and more. The product is still in early stage and we will be adding more features in the offerings. Read More & Submit any Feedback or Feature request if any [here](https://tatumdocs.readme.io/v0/reference/token-api).
+
+## Wallet API
+
+## Transactions API
+
+## DeFi API
diff --git a/v0/Blockchain Data/nft-api.md b/v0/Blockchain Data/nft-api.md
new file mode 100644
index 00000000..1b325cd7
--- /dev/null
+++ b/v0/Blockchain Data/nft-api.md
@@ -0,0 +1,20 @@
+---
+title: "NFT API"
+slug: "nft-api"
+excerpt: "NFT API is a sub product of Blockchain Data that aims to help you get any NFT related on-chain data you would need to add NFT functionality in your web3 app."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 06 2024 06:59:46 GMT+0000 (Coordinated Universal Time)"
+---
+# List of Features Available
+
+| Feature | Description | Supported Mainnets | Supported Testnets |
+| :--------------------------- | :----------------------------------------------------------------------------------------------------------- | :---------------------------------------------------- | :-------------------------------------------- |
+| Get Tokens From a Collection | This function helps you to fetch all tokens from an NFT Collection of a MultiToken Collection | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz, Tezos | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+| Get Tokens Metadata | This function helps you to fetch metadata informations about an NFT or a MultiToken Collection | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+| Get Owners of a Token | This function helps you to find all the owners of a specific token for Fungible Tokens, NFT's or Multitokens | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+| Check ownership for a Token | This function allows you to check if a wallet owns a specific Fungible Token, or NFT or a MultiToken. | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+
+# Costs
+
+Each method in this sub-product (NFT API) is charged the same as the parent product (Blockchain Data) where each call is worth 70 credits & each batch call is 70 x Number of Operations.
diff --git a/v0/Blockchain Data/nft-api/checkowner.md b/v0/Blockchain Data/nft-api/checkowner.md
new file mode 100644
index 00000000..961a37f5
--- /dev/null
+++ b/v0/Blockchain Data/nft-api/checkowner.md
@@ -0,0 +1,8 @@
+---
+title: "Check owner of token"
+slug: "checkowner"
+excerpt: "
1 credit per API call
\n
Check if wallet address owns any specified token (ERC-20, ERC-721 or ERC-1155) on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name, wallet address and address of any fungible token, NFT or multitoken collection. Our API will return true if provided wallet address owns them.
\n
If wallet address does not own the specific token, response body is false and status code is 200.
\n
It is also possible to check if wallet address owns a specific NFT by specifying a tokenId.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:07:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Data/nft-api/getcollections.md b/v0/Blockchain Data/nft-api/getcollections.md
new file mode 100644
index 00000000..9e6d3460
--- /dev/null
+++ b/v0/Blockchain Data/nft-api/getcollections.md
@@ -0,0 +1,8 @@
+---
+title: "Get tokens from a collection"
+slug: "getcollections"
+excerpt: "
10 credits per API call
\n
Get all NFTs (ERC-721 and ERC-1155) and multitokens (ERC-1155 only) of your favorite collections! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
Tezos - tezos-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and comma-separated list of collection addresses. Our API will return relevant information about each token, including its name, description, image, and more.
\n
Aside from relevant information about each token, the response also contains metadata (they can, however, be excluded by setting excludeMetadata to true).
\n
If not specified, the API returns results for all supported types of tokens (nft, multitokens), but you can also choose to filter only one tokenType.
\n
For Tezos blockchain query parameters excludeMetadata and tokenType won't have any effect on filtering data.
Get metadata of NFTs (ERC-721 and ERC-1155) or multitokens (ERC-1155 only) by IDs for a given token address! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name, token address and comma-separated list of IDs. Our API will return relevant metadata about each specified token, including its name, description, image, and more.
\n
Aside from the metadata information, the response also contains token types and metadata url minted in each token.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:07:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Data/nft-api/getowners.md b/v0/Blockchain Data/nft-api/getowners.md
new file mode 100644
index 00000000..5c6e63ea
--- /dev/null
+++ b/v0/Blockchain Data/nft-api/getowners.md
@@ -0,0 +1,8 @@
+---
+title: "Get owners of a token"
+slug: "getowners"
+excerpt: "
20 credits per API call
\n
Get all addresses that own your favorite token (ERC-20, ERC-721 or ERC-1155)! Our API lets you search for all token owners on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and address of any fungible token, NFT or multitoken collection. Our API will return a list of addresses of all of their owners.
\n
You can also get an owner of a specific NFT by specifying tokenId. In case of multitoken, result is an array of addresses.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:07:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Data/token-api.md b/v0/Blockchain Data/token-api.md
new file mode 100644
index 00000000..f50e5845
--- /dev/null
+++ b/v0/Blockchain Data/token-api.md
@@ -0,0 +1,17 @@
+---
+title: "Token API"
+slug: "token-api"
+excerpt: "Token API is a sub product of Blockchain Data that aims to help you get Token related on-chain data you would need in your web3 app."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 06 2024 07:45:53 GMT+0000 (Coordinated Universal Time)"
+---
+# List of Features Available
+
+| Feature | Description | Supported Mainnets | Supported Testnets |
+| :---------------------------------------- | :---------------------------------------------------------------------------------------- | :---------------------------------------------------- | :-------------------------------------------- |
+| Get Information about Token or Collection | This function helps you to fetch information related to a specific token or a Collection. | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz, Tezos | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+
+# Costs
+
+Each method in this sub-product (NFT API) is charged the same as the parent product (Blockchain Data) where each call is worth 70 credits & each batch call is 70 x Number of Operations.
diff --git a/v0/Blockchain Data/token-api/gettokens.md b/v0/Blockchain Data/token-api/gettokens.md
new file mode 100644
index 00000000..ccadaafa
--- /dev/null
+++ b/v0/Blockchain Data/token-api/gettokens.md
@@ -0,0 +1,8 @@
+---
+title: "Get information about collection or token"
+slug: "gettokens"
+excerpt: "
1 credit per API call
\n
Get information about your favorite token! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
Tezos - tezos-mainnet
\n
\n
To get started:
\n
\n
Provide a chain and address of any fungible token, NFT or multitoken collection. If available, our API will return information about them such as their name, symbol, supply, and more.
\n
You can also get extra infomation (such as metadata) of a specific NFT or multitoken by passing tokenId as a query parameter.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:07:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Data/transactions-api.md b/v0/Blockchain Data/transactions-api.md
new file mode 100644
index 00000000..2bc2bb18
--- /dev/null
+++ b/v0/Blockchain Data/transactions-api.md
@@ -0,0 +1,8 @@
+---
+title: "Transactions API"
+slug: "transactions-api"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Data/transactions-api/estimatefeeblockchain.md b/v0/Blockchain Data/transactions-api/estimatefeeblockchain.md
new file mode 100644
index 00000000..485e08ac
--- /dev/null
+++ b/v0/Blockchain Data/transactions-api/estimatefeeblockchain.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a transaction on a blockchain"
+slug: "estimatefeeblockchain"
+excerpt: "
10 credits per API call
\n
Estimate the current fee for different types of transactions.
\n
This API is supported for the following blockchains:
\n
\n
Bitcoin
\n
BNB Smart Chain
\n
Celo
\n
Dogecoin
\n
Ethereum
\n
Harmony
\n
Klaytn
\n
Litecoin
\n
Polygon
\n
XinFin
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Data/transactions-api/getblockchainfee.md b/v0/Blockchain Data/transactions-api/getblockchainfee.md
new file mode 100644
index 00000000..948d44b0
--- /dev/null
+++ b/v0/Blockchain Data/transactions-api/getblockchainfee.md
@@ -0,0 +1,8 @@
+---
+title: "Get the recommended fee/gas price for a blockchain"
+slug: "getblockchainfee"
+excerpt: "
1 credit per API call
\n
Get the recommended fee/gas price for a blockchain.
\n
Fee is in satoshis(meaning currency(BTC, DOGE,... / 100 000 000) per byte\n
This API is supported for the following blockchains:
Provide a chain name and comma-separated list of addresses. Our API will return all of their transactions along with further information such as their block number, ID of involved token, and more.
\n
If not specified, the API returns transactions of various types (fungible, nft, multitoken, native), but you can also choose to filter specific transactionTypes and even transactionSubtype (incoming, outgoing, zero-transfer).
\n
On top of that, you can add further filters such as specifying block range where the transactions should have occurred, or address and ID of involved tokens.
\n
For Tezos blockchain, the API accepts only one wallet address in addresses query parameter. Following query parameters won't have any effect on filtering data: transactionTypes, transactionSubtype, tokenId, blockTo.
\n
When querying Tezos transactions for a specified wallet or contract address, pagination is supported via pageSize and offset query parameters. \n
When querying Tezos transactions for a specified block, pagination is supported via cursor query parameter, by filling in the value from prevPage or nextPage field in the response body.
Get balances of fungible tokens (ERC-20), NFTs (ERC-721 and ERC-1155) or multitokens (ERC-1155 only) for a specific wallet address on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Tezos - tezos-mainnet
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and comma-separated list of addresses. Our API will return balances of each token along with further information such as its type, id, and more.
\n
Aside from relevant information about each token and its balance, the response also contains metadata (they can, however, be excluded by setting excludeMetadata to true).
\n
If not specified, the API returns balances for all supported types of tokens (fungible tokens, nft, multitokens), but you can also choose to filter specific tokenTypes.
\n
For Tezos blockchain, the API returns balance of any tokens including native token (XTZ) for specified wallet addresses. Following query parameters won't have any effect on filtering data excludeMetadata.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:07:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Data/wallet-api/getutxosbyaddress.md b/v0/Blockchain Data/wallet-api/getutxosbyaddress.md
new file mode 100644
index 00000000..175a68b8
--- /dev/null
+++ b/v0/Blockchain Data/wallet-api/getutxosbyaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Get unspent UTXOs for an address"
+slug: "getutxosbyaddress"
+excerpt: "
100 credits per API call
\n
Get unspent UTXOs for a specific address up to a specific total amount.\nIf you want to prepare a transaction on UTXO-based chains like Bitcoin, you need to enter unspent UTXOs to be able to perform a transaction. By providing ```totalValue``` as a total, our API will return a list of UTXOs that will be enough to cover the transaction.
\nOur API lets you get the unpenst UTXOs for a specific address on:
\n
\n
Bitcoin - bitcoin / bitcoin-testnet
\n
Litecoin - litecoin / litecoin-testnet
\n
Dogecoin - doge / doge-testnet
\n
Cardano - cardano / cardano-preprod
\n
\n
To get started:
\n
\n
Provide a chain and address you want to list unspent UTXOs for. If available, our API will return information about the unspent UTXOs for a specific address. API traverses latest 200k incoming transactions.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:24:13 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Utility InP/account/blockamount.md b/v0/Blockchain Utility InP/account/blockamount.md
new file mode 100644
index 00000000..a9bb5b8e
--- /dev/null
+++ b/v0/Blockchain Utility InP/account/blockamount.md
@@ -0,0 +1,8 @@
+---
+title: "Block an amount in an account"
+slug: "blockamount"
+excerpt: "
2 credits per API call.
\n
Blocks an amount in an account. Any number of distinct amounts can be blocked in one account.\nEvery new blockage has its own distinct ID, which is used as a reference. When the amount is blocked, it is debited from the available balance of the account.\nThe account balance remains the same. The account balance represents the total amount of funds in the account. The available balance represents the total amount of funds that can be used to perform transactions. When an account is frozen, the available balance is set to 0 minus all blockages for the account.
If the customer that you specified in the request body already exists, the newly created virtual account is added to this customer's list of accounts.
\n
If the customer that you specified in the request body does not exist yet, a new customer is created together with the virtual account, and the virtual account is added to this customer.
\n
\n
You can create a virtual account for any supported cryptocurrency, fiat currency, Tatum virtual currency, or fungible tokens created within Tatum. Once the currency/asset is set for a virtual account, it cannot be changed.
\n
Virtual account balance
\n
A virtual account has its own balance. The balance can be logically presented by the account balance and available balance:
\n
\n
The account balance (accountBalance) represents all assets on the account, both available and blocked.
\n
The available balance (availableBalance) represents the account balance minus the blocked assets. Use the available balance to determine how much a customer can send or withdraw from their virtual account.
\n
\n
Cryptocurrency virtual accounts
\n
When you create a virtual account based on a cryptocurrency (for example, BTC or ETH), you have to provide the extended public key (xpub) of the blockchain wallet that will be connected to this account.
\n
NOTE: Adding xpub to the virtual account does not connect any specific blockchain address to this account. xpub is a generator of addresses, not an address itself.
\n
Not all blockchains provide xpub for wallets, or Tatum may not support wallets on some blockchains. In such cases, use the wallet address or the account address instead.
\n
\n
ALGO: No xpub provided; use address from the generated wallet instead.
EGLD: No xpub provided; use address from the generated blockchain address instead. Blockchain addresses on Elrond are generated based on the mnemonic of an Elrond wallet. If you do not have an Elrond wallet, create one.
If the virtual account was created with the wallet's or account's address instead of the wallet's xpub, assign an existing blockchain address to this account.
\n
\n
You can connect multiple blockchain addresses to one virtual account.
\n
Digital assets:
\n
\n
USDC_MATIC refers to contract 0x2791bca1f2de4661ed88a30c99a7a9449aa84174 on Polygon mainnet.
\n
USDC_MATIC_NATIVE refers to contract 0x3c499c542cef5e3811e1192ce70d8cc03d5c3359 on Polygon mainnet.
Deactivates an account. Only accounts with account and available balances of zero can be deactivated. Deactivated accounts are not visible in the list of accounts, it is not possible to send funds to these accounts or perform transactions. However, they are still present in the ledger and all transaction histories.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:23:37 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Utility InP/account/deleteallblockamount.md b/v0/Blockchain Utility InP/account/deleteallblockamount.md
new file mode 100644
index 00000000..a56c014a
--- /dev/null
+++ b/v0/Blockchain Utility InP/account/deleteallblockamount.md
@@ -0,0 +1,8 @@
+---
+title: "Unblock all blocked amounts in an account"
+slug: "deleteallblockamount"
+excerpt: "
1 credit per API call, 1 credit for each deleted blockage. 1 API call + 2 blockages = 3 credits.
Unblocks previously blocked amounts in an account. Increases the available balance in the account where the amount was blocked.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:24:15 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Utility InP/account/deleteblockamount.md b/v0/Blockchain Utility InP/account/deleteblockamount.md
new file mode 100644
index 00000000..4a896607
--- /dev/null
+++ b/v0/Blockchain Utility InP/account/deleteblockamount.md
@@ -0,0 +1,8 @@
+---
+title: "Unblock a blocked amount in an account"
+slug: "deleteblockamount"
+excerpt: "
1 credit per API call.
Unblocks a previously blocked amount in an account. Increases the available balance in the account where the amount was blocked.
Disables all outgoing transactions. Incoming transactions to the account are available. When an account is frozen, its available balance is set to 0. This operation will create a new blockage of type ACCOUNT_FROZEN, which is automatically deleted when the account is unfrozen.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:24:15 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain Utility InP/account/unblockamountwithtransaction.md b/v0/Blockchain Utility InP/account/unblockamountwithtransaction.md
new file mode 100644
index 00000000..b98cee04
--- /dev/null
+++ b/v0/Blockchain Utility InP/account/unblockamountwithtransaction.md
@@ -0,0 +1,8 @@
+---
+title: "Unblock an amount in an account and perform a transaction"
+slug: "unblockamountwithtransaction"
+excerpt: "
2 credits per API call.
\n
Unblocks a previously blocked amount in an account and invokes a ledger transaction from that account to a different recipient.\nIf the request fails, the amount is not unblocked.
Disabled customer cannot perform end-user operations, such as create new accounts or send transactions. Available balance on all accounts is set to 0. Account balance will stay untouched.
Using anonymized external ID or internal customer ID you can access customer detail information. Internal ID is needed to call other customer related methods.
Sends a payment within Tatum Private Ledger. All assets are settled instantly. \nWhen a transaction is settled, 2 transaction records are created, 1 for each of the participants. These 2 records are connected via a transaction reference, which is the same for both of them. \nThis method is only used for transferring assets between accounts within Tatum and will not send any funds to blockchain addresses. \nIf there is an insufficient balance in the sender account, no transaction is recorded. \nIt is possible to perform an anonymous transaction where the sender account is not visible for the recipient. \nThe FIAT currency value of every transaction is calculated automatically. The FIAT value is based on the accountingCurrency of the account connected to the transaction and is available in the marketValue parameter of the transaction.
2 + 2 * N per API call. (N - count of transactions)
\n
Sends the N payments within Tatum Private Ledger. All assets are settled instantly. \nWhen a transaction is settled, 2 transaction records are created, 1 for each of the participants. These 2 records are connected via a transaction reference, which is the same for both of them. \nThis method is only used for transferring assets between accounts within Tatum and will not send any funds to blockchain addresses. \nIf there is an insufficient balance in the sender account, no transaction is recorded. \nIt is possible to perform an anonymous transaction where the sender account is not visible for the recipient. \nThe FIAT currency value of every transaction is calculated automatically. The FIAT value is based on the accountingCurrency of the account connected to the transaction and is available in the marketValue parameter of the transaction.
Create new virtual currency with given supply stored in account. This will create Tatum internal virtual currency. Every virtual currency must be prefixed with VC_.
\n
Every virtual currency must be pegged to existing FIAT or supported cryptocurrency. 1 unit of virtual currency has then the same amount as 1 unit of the base currency it is pegged to. It is possible to set a custom base rate for the virtual currency. (baseRate = 2 => 1 VC unit = 2 basePair units)
This operation returns the newly created Tatum Ledger account with an initial balance set to the virtual currency's total supply. Total supply can be changed in the future.
\n
Digital assets:
\n
\n
USDC_MATIC refers to contract 0x2791bca1f2de4661ed88a30c99a7a9449aa84174 on Polygon mainnet.
\n
USDC_MATIC_NATIVE refers to contract 0x3c499c542cef5e3811e1192ce70d8cc03d5c3359 on Polygon mainnet.
Destroy supply of virtual currency linked on the given accountId. Method decreases the total supply of the currency. \nThis method creates Ledger transaction with operationType REVOKE with undefined counterAccountId.
Change base pair and/or base rate of existing virtual currency.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:23:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain operations/contracts-deployments.md b/v0/Blockchain operations/contracts-deployments.md
new file mode 100644
index 00000000..3eef7c63
--- /dev/null
+++ b/v0/Blockchain operations/contracts-deployments.md
@@ -0,0 +1,8 @@
+---
+title: "Contracts Deployments"
+slug: "contracts-deployments"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:37:18 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:37:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain operations/exchange-rate.md b/v0/Blockchain operations/exchange-rate.md
new file mode 100644
index 00000000..4ebf2abb
--- /dev/null
+++ b/v0/Blockchain operations/exchange-rate.md
@@ -0,0 +1,8 @@
+---
+title: "Exchange Rate"
+slug: "exchange-rate"
+excerpt: ""
+hidden: false
+createdAt: "Tue Feb 20 2024 06:59:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 20 2024 06:59:48 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain operations/execute-contract-functions.md b/v0/Blockchain operations/execute-contract-functions.md
new file mode 100644
index 00000000..bf71eefe
--- /dev/null
+++ b/v0/Blockchain operations/execute-contract-functions.md
@@ -0,0 +1,8 @@
+---
+title: "Execute Contract Functions"
+slug: "execute-contract-functions"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:49 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain operations/fee-estimation.md b/v0/Blockchain operations/fee-estimation.md
new file mode 100644
index 00000000..3a4dea42
--- /dev/null
+++ b/v0/Blockchain operations/fee-estimation.md
@@ -0,0 +1,8 @@
+---
+title: "Fee Estimation"
+slug: "fee-estimation"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:52:55 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:52:55 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain operations/storage-logs.md b/v0/Blockchain operations/storage-logs.md
new file mode 100644
index 00000000..3b4f99c9
--- /dev/null
+++ b/v0/Blockchain operations/storage-logs.md
@@ -0,0 +1,8 @@
+---
+title: "Storage - Logs"
+slug: "storage-logs"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:56:44 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 06 2024 07:02:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain operations/strorage-ipfs.md b/v0/Blockchain operations/strorage-ipfs.md
new file mode 100644
index 00000000..3c82f38a
--- /dev/null
+++ b/v0/Blockchain operations/strorage-ipfs.md
@@ -0,0 +1,8 @@
+---
+title: "Strorage - IPFS"
+slug: "strorage-ipfs"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:53:45 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:53:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain operations/transact.md b/v0/Blockchain operations/transact.md
new file mode 100644
index 00000000..186d192f
--- /dev/null
+++ b/v0/Blockchain operations/transact.md
@@ -0,0 +1,8 @@
+---
+title: "Transact"
+slug: "transact"
+excerpt: ""
+hidden: false
+createdAt: "Tue Feb 20 2024 07:00:27 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 20 2024 07:00:33 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockchain operations/wallet-operations.md b/v0/Blockchain operations/wallet-operations.md
new file mode 100644
index 00000000..7c182e6b
--- /dev/null
+++ b/v0/Blockchain operations/wallet-operations.md
@@ -0,0 +1,8 @@
+---
+title: "Wallet Operations"
+slug: "wallet-operations"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:26:28 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:26:28 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockhain Abstraction/auction.md b/v0/Blockhain Abstraction/auction.md
new file mode 100644
index 00000000..ebeee282
--- /dev/null
+++ b/v0/Blockhain Abstraction/auction.md
@@ -0,0 +1,8 @@
+---
+title: "Auction"
+slug: "auction"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:52:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:52:32 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockhain Abstraction/custodial.md b/v0/Blockhain Abstraction/custodial.md
new file mode 100644
index 00000000..d2649880
--- /dev/null
+++ b/v0/Blockhain Abstraction/custodial.md
@@ -0,0 +1,8 @@
+---
+title: "Custodial Wallet"
+slug: "custodial"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:55:21 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Feb 07 2024 09:41:03 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockhain Abstraction/gas-pump.md b/v0/Blockhain Abstraction/gas-pump.md
new file mode 100644
index 00000000..8214c8e5
--- /dev/null
+++ b/v0/Blockhain Abstraction/gas-pump.md
@@ -0,0 +1,8 @@
+---
+title: "Gas Pump"
+slug: "gas-pump"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:51:39 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:51:39 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockhain Abstraction/kms.md b/v0/Blockhain Abstraction/kms.md
new file mode 100644
index 00000000..51dcc03b
--- /dev/null
+++ b/v0/Blockhain Abstraction/kms.md
@@ -0,0 +1,8 @@
+---
+title: "KMS"
+slug: "kms"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:55:12 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:55:13 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockhain Abstraction/marketplace.md b/v0/Blockhain Abstraction/marketplace.md
new file mode 100644
index 00000000..2919696f
--- /dev/null
+++ b/v0/Blockhain Abstraction/marketplace.md
@@ -0,0 +1,8 @@
+---
+title: "Marketplace"
+slug: "marketplace"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:52:24 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:52:23 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockhain Abstraction/virtual-accounts-1.md b/v0/Blockhain Abstraction/virtual-accounts-1.md
new file mode 100644
index 00000000..aba699bd
--- /dev/null
+++ b/v0/Blockhain Abstraction/virtual-accounts-1.md
@@ -0,0 +1,8 @@
+---
+title: "Virtual Accounts"
+slug: "virtual-accounts-1"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:55:33 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:55:34 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Blockhain Abstraction/virtual-accounts-1/accounts.md b/v0/Blockhain Abstraction/virtual-accounts-1/accounts.md
new file mode 100644
index 00000000..d31e5675
--- /dev/null
+++ b/v0/Blockhain Abstraction/virtual-accounts-1/accounts.md
@@ -0,0 +1,8 @@
+---
+title: "Accounts"
+slug: "accounts"
+excerpt: ""
+hidden: true
+createdAt: "Mon Feb 19 2024 14:14:26 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 19 2024 14:14:27 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Documentation/getting-started.md b/v0/Documentation/getting-started.md
new file mode 100644
index 00000000..918541ed
--- /dev/null
+++ b/v0/Documentation/getting-started.md
@@ -0,0 +1,30 @@
+---
+title: "Getting Started with Tatum 🚀"
+slug: "getting-started"
+excerpt: "Welcome to Tatum SDK!"
+hidden: false
+createdAt: "Thu Jan 18 2024 08:41:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Jan 24 2024 17:04:07 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum's API and SDK are here to make your life easier when building blockchain applications! No more complicated setups, no need for previous blockchain experience. We've got you covered.
+
+# Why Tatum? 💡
+
+1. **Super fast development:** Start building blockchain applications in no time.
+2. **No previous blockchain experience required:** Perfect for beginners and experts alike.
+3. **One line of code:** Perform complex tasks with minimal effort.
+
+# Key Features 🌟
+
+- Monitor activity on a blockchain address 🕵️♂️
+- Perform RPC calls to various blockchains 📞
+- Read information about NFTs such as balances, transactions, or ownerships 🖼️
+- Get information about a specific wallet like balances or transaction history 💰
+
+Ready to build fantastic blockchain applications? Check out the official documentation for more information and examples!
+
+Happy coding! 🎉
+
+> 📘 **[Join our Discord](https://discord.com/invite/tatum) **to stay up to date with the latest updates from product news to upcoming events.
+>
+> You'll also be able to submit feedback and help shape future updates. Learn more about our community [here](https://tatum.io/community).
diff --git a/v0/Documentation/getting-started/testing-this.md b/v0/Documentation/getting-started/testing-this.md
new file mode 100644
index 00000000..d97160ca
--- /dev/null
+++ b/v0/Documentation/getting-started/testing-this.md
@@ -0,0 +1,13 @@
+---
+title: "Reusable Components"
+slug: "testing-this"
+excerpt: ""
+hidden: true
+createdAt: "Thu Jan 18 2024 11:13:56 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Jan 22 2024 13:05:04 GMT+0000 (Coordinated Universal Time)"
+---
+Sign Up
+
+> 📘 **[Join our Discord](https://discord.com/invite/tatum) **to stay up to date with the latest updates from product news to upcoming events.
+>
+> You'll also be able to submit feedback and help shape future updates. Learn more about our community [here](https://tatum.io/community).
diff --git a/v0/Guides/auth-api-keys-mainnet-vs-testnet.md b/v0/Guides/auth-api-keys-mainnet-vs-testnet.md
new file mode 100644
index 00000000..3756a3f4
--- /dev/null
+++ b/v0/Guides/auth-api-keys-mainnet-vs-testnet.md
@@ -0,0 +1,14 @@
+---
+title: "Auth API Keys: Mainnet vs Testnet"
+slug: "auth-api-keys-mainnet-vs-testnet"
+excerpt: ""
+hidden: false
+createdAt: "Mon Jan 29 2024 12:04:54 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:41:51 GMT+0000 (Coordinated Universal Time)"
+---
+When you sign up in the [Tatum.io Dashboard](https://dashboard.tatum.io/login), you'll get one development (Testnet) Auth API key and one for production (Mainnet) API key. You can create more API keys as you need them.
+
+- **Mainnet** stands for "main network". This is where your production app will run.
+- **Testnet** stands for "testing network". In most cases, has the same features and characteristics as the mainnet. The Testnet blockchain is completely isolated from the Mainnet blockchain. It doesn't have the same data, and it doesn't guarantee data persistence. On the other hand, all operations on the Testnet are free. This makes Testnet a great environment for developing and testing apps.
+
+> 🚧 All **Mainnet** transactions are final. If you send assets like BTC to the wrong address over Testnet it's fine since Testnet assets hold no value. However, if this happens in Mainnet, you'll lose real money!
diff --git a/v0/Guides/blockchain-operations.md b/v0/Guides/blockchain-operations.md
new file mode 100644
index 00000000..aabef4ca
--- /dev/null
+++ b/v0/Guides/blockchain-operations.md
@@ -0,0 +1,8 @@
+---
+title: "Blockchain Operations"
+slug: "blockchain-operations"
+excerpt: ""
+hidden: false
+createdAt: "Sat Jan 27 2024 18:03:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:42:10 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Guides/blockchain-operations/cancel-or-replace-a-blockchain-transaction.md b/v0/Guides/blockchain-operations/cancel-or-replace-a-blockchain-transaction.md
new file mode 100644
index 00000000..dc7fe70b
--- /dev/null
+++ b/v0/Guides/blockchain-operations/cancel-or-replace-a-blockchain-transaction.md
@@ -0,0 +1,39 @@
+---
+title: "Cancel or Replace a blockchain transaction"
+slug: "cancel-or-replace-a-blockchain-transaction"
+excerpt: ""
+hidden: false
+createdAt: "Mon Jan 29 2024 10:11:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:42:10 GMT+0000 (Coordinated Universal Time)"
+---
+In some cases, you may want to cancel or replace a transaction.
+
+- **Cancel**: for EVM chains (like Ethereum), it may be possible to replace a pending transaction in the mempool via another one with value zero (0) to your own address. UTXO transactions can't be "canceled".
+- **Replace**: for UTXO chains (like Bitcoin), it may be possible to increase the fee of a pending transaction via [RBF](https://tatumdocs.readme.io/docs/bitcoin-replace-by-fee-and-stuck-transactions-in-the-mempool) (if enabled) or via [CPFP](https://tatumdocs.readme.io/docs/bitcoin-cpfp-and-stuck-transactions-in-the-mempool). For EVM chains, it may be possible to replace a pending transaction.
+
+## Cancelling a transaction
+
+EVM chains allow a bit of a trick to cancel a pending (unconfirmed) transaction in the mempool:
+
+1. Verify the transaction you want to cancel is not confirmed yet and is still pending in the mempool. Check an Explorer.
+2. Verify the nonce value of the unconfirmed transaction you want to cancel.
+3. Create a new transaction where the sender and receiver blockchain address is the same with a zero (0) amount. Use the same nonce value you got from step 2 and put a much higher fee.
+4. Broadcast this transaction. Ideally, the miners will prioritize this new transaction over the original due to a higher fee.
+5. If all worked well, your new transaction will get confirmed first and the original will be dropped due to invalid.
+
+## Replacing a transaction
+
+UTXO chains may allow [RBF](https://tatumdocs.readme.io/docs/bitcoin-replace-by-fee-and-stuck-transactions-in-the-mempool) or in some cases [CPFP](https://tatumdocs.readme.io/docs/bitcoin-cpfp-and-stuck-transactions-in-the-mempool) on pending (unconfirmed) transactions.
+
+EVM chains may allow replacing a transaction using the same method as if you were to cancel it:
+
+1. Verify the transaction you want to cancel is not confirmed yet and is still pending in the mempool. Check an Explorer.
+2. Verify the nonce value of the unconfirmed transaction you want to replace.
+3. Create a new transaction where the receiver blockchain address may or may not be the same as in the original to replace. Use the same nonce value you got from step 2 and put a much higher fee.
+4. Broadcast this transaction. Ideally, the miners will prioritize this new transaction over the original due to a higher fee.
+5. If all works well, your new transaction will get confirmed first and the original will be dropped due to invalid.
+
+## Good to know
+
+- Incorrectly executed transactions may result in the loss of funds.
+- Blockchain transactions, once confirmed, are irreversible. There's no guarantee of success in canceling or replacing them.
diff --git a/v0/Guides/blockchain-operations/evm-like-ethereum.md b/v0/Guides/blockchain-operations/evm-like-ethereum.md
new file mode 100644
index 00000000..48c8ef3e
--- /dev/null
+++ b/v0/Guides/blockchain-operations/evm-like-ethereum.md
@@ -0,0 +1,8 @@
+---
+title: "EVM (like Ethereum)"
+slug: "evm-like-ethereum"
+excerpt: ""
+hidden: false
+createdAt: "Sat Jan 27 2024 18:04:29 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:42:10 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Guides/blockchain-operations/mnemonic-derivation-path.md b/v0/Guides/blockchain-operations/mnemonic-derivation-path.md
new file mode 100644
index 00000000..b20ddfbe
--- /dev/null
+++ b/v0/Guides/blockchain-operations/mnemonic-derivation-path.md
@@ -0,0 +1,47 @@
+---
+title: "Mnemonic Derivation Path"
+slug: "mnemonic-derivation-path"
+excerpt: ""
+hidden: false
+createdAt: "Mon Jan 29 2024 10:19:43 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:42:10 GMT+0000 (Coordinated Universal Time)"
+---
+In blockchain technology, the **Derivation path** is a critical element of a wallet structure. The Derivation Path determines how exactly a wallet generates the XPUB, addresses, and Private Keys.
+
+To generate the expected Blockchain Addresses and Private Keys, the **Derivation Path must match 1:1**. Blockchain Addresses generated via other services external to the Tatum API and or KMS may or may not match the expected Derivation Path. For example, Wallet services like [MetaMask use a different derivation path](https://metamask.zendesk.com/hc/en-us/articles/360060331752).
+
+> 📘 Tatum wallets use specific Mnemonic derivation paths per chain. These derivation paths are the same for API, SDKs, and KMS.
+
+## Tatum Mnemonic Derivation Paths
+
+```Text JSON
+//MAINNET
+ BTC: "m/44'/0'/0'/0", //SegWit (starts with a "bc1q")
+ LTC: "m/44'/2'/0'/0",
+ ETH: "m/44'/60'/0'/0",
+ DOGE: "m/44'/3'/0'/0",
+ CELO: "m/44'/52752'/0'/0",
+ POLYGON: "m/44'/966'/0'/0",
+ KCS: "m/44'/60'/0'/0",
+ HARMONY: "m/44'/1023'/0'/0",
+ KLAY: "m/44'/8217'/0'/0",
+ BSC: "m/44'/60'/0'/0",
+ BCH: "m/44'/145'/0'/0",
+ TRON: "m/44'/195'/0'/0",
+ EGLD: "m/44'/508'/0'/0'",
+ ALGO: '@TODO - TBD',
+ ADA: "m/1852'/1815'/0'",
+ FLOW: "m/44'/539'/0'/0",
+ NEO: "m/44'/888'/0'/0",
+ SOL: "m/44'/501'/0'/0'",
+ VET: "m/44'/818'/0'/0",
+ XDC: "m/44'/550'/0'/0",
+ XLM: "m/44'/148'/0'",
+ XRP: "m/44'/144'/0'/0",
+ BNB: "m/44'/714'/0'/0",
+
+//TESTNET
+ COMMON_TESTNET_DERIVATION_PATH = "m/44'/1'/0'/0"
+```
+
+> 📘 Additional information is available at [the following link](https://github.com/tatumio/tatum-js/blob/ad5471b726ae3c0e0578862b480264f89b69b11d/src/constants.ts).
diff --git a/v0/Guides/blockchain-operations/testnet-faucets.md b/v0/Guides/blockchain-operations/testnet-faucets.md
new file mode 100644
index 00000000..07503bc3
--- /dev/null
+++ b/v0/Guides/blockchain-operations/testnet-faucets.md
@@ -0,0 +1,50 @@
+---
+title: "Testnet Faucets"
+slug: "testnet-faucets"
+excerpt: ""
+hidden: false
+createdAt: "Mon Jan 29 2024 12:00:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:42:10 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum has an official faucet for you to get Tesnet coins:
+
+For coins we don't support yet or if you need more, here's a list of popular faucets:
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Chain name",
+ "h-1": "Faucet Link",
+ "0-0": "Bitcoin",
+ "0-1": "",
+ "1-0": "Bitcoin Cash",
+ "1-1": "",
+ "2-0": "BNB",
+ "2-1": "",
+ "3-0": "Celo (Alfajores)",
+ "3-1": "",
+ "4-0": "Ethereum",
+ "4-1": "Sepolia: \nHoleski: ",
+ "5-0": "Harmony One",
+ "5-1": " \nNOTE: Deposit is an internal transaction going undetected by ONE Virtual Accounts. Please transfer from another One account to the deposit address of your Virtual Account.",
+ "6-0": "KLAY",
+ "6-1": "",
+ "7-0": "LTC",
+ "7-1": "",
+ "8-0": "Polygon",
+ "8-1": "Matic: ",
+ "9-0": "TRON",
+ "9-1": "Shasta: ",
+ "10-0": "XLM",
+ "10-1": "",
+ "11-0": "XRP",
+ "11-1": ""
+ },
+ "cols": 2,
+ "rows": 12,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v0/Guides/blockchain-operations/utxo.md b/v0/Guides/blockchain-operations/utxo.md
new file mode 100644
index 00000000..2ffd44ec
--- /dev/null
+++ b/v0/Guides/blockchain-operations/utxo.md
@@ -0,0 +1,8 @@
+---
+title: "UTXO (like Bitcoin)"
+slug: "utxo"
+excerpt: ""
+hidden: false
+createdAt: "Sat Jan 27 2024 18:04:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:42:10 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Guides/virtual-accounts.md b/v0/Guides/virtual-accounts.md
new file mode 100644
index 00000000..602600b8
--- /dev/null
+++ b/v0/Guides/virtual-accounts.md
@@ -0,0 +1,8 @@
+---
+title: "Virtual Accounts"
+slug: "virtual-accounts"
+excerpt: ""
+hidden: false
+createdAt: "Fri Jan 26 2024 12:51:30 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:41:55 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Guides/virtual-accounts/adding-unsupported-tokens.md b/v0/Guides/virtual-accounts/adding-unsupported-tokens.md
new file mode 100644
index 00000000..04663610
--- /dev/null
+++ b/v0/Guides/virtual-accounts/adding-unsupported-tokens.md
@@ -0,0 +1,183 @@
+---
+title: "Adding more tokens"
+slug: "adding-unsupported-tokens"
+excerpt: "Tatum Virtual Accounts can support any existing or new ERC-20 (or compatible) token which is not included out of the box. This guide explains how."
+hidden: false
+createdAt: "Fri Jan 26 2024 12:55:59 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:41:55 GMT+0000 (Coordinated Universal Time)"
+---
+Adding more ERC-20 (or compatible) tokens to your Virtual Account ledger can be done with a few steps. You will need to create a new Virtual Account and register a new Virtual Currency representing the token inside your ledger.
+
+To do so, there are a few parameters required like "`symbol`", "`supply`" (of a selected blockchain deposit address), "`digits`", "`name`" and "`tokenAddress`".
+
+# Steps
+
+The following guide was executed in the ETH-Testnet (Sepolia). All steps are also applicable to Mainnet.
+
+**Example - key parameters:**
+
+```json JSON
+//Token to add in the Virtual Account ledger
+"symbol": "TTOKEN",
+"decimals": 18,
+"description": "Tatum_Token", //The token "name" as seen in the blockchain
+"TokenAddress":"0xCf15c60f66e49d3C41a98717eb0f40AcD764DD57",
+
+//Blockchain deposit address - acting as the initial "token holder" for the Virtual Account
+"address": "0x7a8c2f6f3bd2dc45812e5daae0373eaef2e2dddd",
+"supply": "50000", //At the time of linking the EOA to the VA, the address was holding 500000 tokens
+```
+
+> 📘 Token details are available in the Ethereum (Sepolia) chain at [the following link](https://sepolia.etherscan.io/token/0xCf15c60f66e49d3C41a98717eb0f40AcD764DD57).
+
+## Step_1:
+
+Create a new Virtual Account with the token details - v3 REST API endpoint:
+
+- [EVM](https://apidoc.tatum.io/tag/Blockchain-operations#operation/registerErc20Token) - `/v3/offchain/token/:chain`
+- [TRON](https://apidoc.tatum.io/tag/Blockchain-operations#operation/createTrc) - `/v3/offchain/tron/trc`
+
+```json cURL
+curl --location '
+--header 'Content-Type: application/json'
+--header 'x-api-key: {testnet_API_KEY}'
+--data '{
+ "symbol": "TTOKEN",
+ "supply": "50000",
+ "decimals": 18,
+ "description": "Tatum_Token",
+ "basePair": "USD",
+ "address": "0x7a8c2f6f3bd2dc45812e5daae0373eaef2e2dddd",
+ "customer":{
+ "externalId": "EX_CUST_1"
+ }
+}'
+//response:
+{
+ "accountId": "646dfe380b4f44ca693f12b1",
+ "address": "0x7a8c2f6f3bd2dc45812e5daae0373eaef2e2dddd"
+}
+```
+
+**Payload details:**
+
+- “`Symbol`”: must be the same as the token to add. Check the token SmartContract details
+- “`Decimals`”: must be the same as the token to add. Check the token SmartContract details
+- “`Supply`”: Considering we are adding a blockchain address with potentially existing funds as the Virtual account deposit address, for data consistency, it is best to match the amount available in the blockchain address at the time of this operation, so the Virtual Account off-chain balance will match with the amount of on-chain balance of the deposit address.
+- “`Description`” is the name of the token. Check the token SmartContract details
+- “`basePair`” by default 1:1. Virtual Account transactions value will be calculated according to this base pair.
+- “`Address`”: the blockchain address where the on-chain "`supply`" is located. --> Acts as any other "deposit address" for a Virtual Account. Make sure this address holds as much coin as you set up in the "`supply`" param. **You are expected to control the PrivateKey of this address**
+- "`externalId`": This optional parameter is intended for you to track the account on your DataBase.
+
+## Step_2:
+
+Verify that the Virtual Account has been created - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Account#operation/getAccountByAccountId).
+The status at this point should be “`frozen`” with “`availableBalance`” at zero (0).
+
+```json cURL
+curl --location 'https://api.tatum.io/v3/ledger/account/646dfe380b4f44ca693f12b1' \
+--header 'x-api-key: {testnet_API_KEY}'
+//response:
+{
+ "balance": {
+ "accountBalance": "50000",
+ "availableBalance": "0"
+ },
+ "active": true,
+ "frozen": true,
+ "currency": "TTOKEN",
+ "xpub": null,
+ "customerId": "63889d0395bfe9fd220ffdf0",
+ "accountingCurrency": "USD",
+ "id": "646dfe380b4f44ca693f12b1"
+}
+```
+
+## Step_3:
+
+Register the Token via the "`symbol`" and the "`tokenAddress`" in your Virtual Account ledger - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-operations#operation/storeTokenAddress):
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/offchain/token/TTOKEN/0xCf15c60f66e49d3C41a98717eb0f40AcD764DD57' \
+--header 'x-api-key: {testnet_API_KEY}'
+//response:
+//204 No content
+```
+
+## Step_4:
+
+Verify that the Virtual Account has been "unfrozen" - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Account/#operation/getAccountByAccountId):
+
+```json cURL
+curl --location 'https://api.tatum.io/v3/ledger/account/646dfe380b4f44ca693f12b1' \
+--header 'x-api-key: {testnet_API_KEY}'
+//response:
+{
+ "balance": {
+ "accountBalance": "50000",
+ "availableBalance": "50000" //This confirms the Virtual Account has been "unfrozen"
+ },
+ "active": true,
+ "frozen": false, //This confirms the Virtual Account has been "unfrozen"
+ "currency": "TTOKEN",
+ "xpub": null,
+ "customerId": "63889d0395bfe9fd220ffdf0",
+ "accountingCurrency": "USD",
+ "id": "646dfe380b4f44ca693f12b1"
+}
+```
+
+## Step_5 (optional)
+
+You may create any number of additional Virtual Accounts with the token you added - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Account/#operation/createAccount):
+
+```json cURL
+
+curl --location 'https://api.tatum.io/v3/ledger/account' \
+--header 'x-api-key: {testnet_API_KEY}' \
+--header 'Content-Type: application/json' \
+--data '{
+ "currency": "TTOKEN",
+ "xpub": "xpub6EMcUVjBn8qrftjMxinPS34ebPPHATDPkYvmxhex9H8rmwE4dTaiW94c3rZzBbk55WFoSspYCyQRSkMmGzDjDdyJNUpqtwq1ZGCDC7dgtjC",
+ "customer":{
+ "externalId": "EX_CUST_2"
+ }
+}'
+//response:
+{
+ "currency": "TTOKEN",
+ "active": true,
+ "balance": {
+ "accountBalance": "0",
+ "availableBalance": "0"
+ },
+ "frozen": false,
+ "xpub": "xpub6EMcUVjBn8qrftjMxinPS34ebPPHATDPkYvmxhex9H8rmwE4dTaiW94c3rZzBbk55WFoSspYCyQRSkMmGzDjDdyJNUpqtwq1ZGCDC7dgtjC",
+ "customerId": "638f4cfad2e6f3168bb11a40",
+ "accountingCurrency": "EUR",
+ "id": "646e040b0b4f44ca693f198e"
+}
+
+
+```
+
+**Payload details:**
+
+- "`currency`": Now we can use the symbol token we have added by following the previous steps.
+- "`xpub`" comes from a new and unused mnemonic generated to use with Virtual Accounts.
+
+## Step_6 (optional)
+
+Following the creation of an additional Virtual Account in Step_5, we will generate a deposit address - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-addresses/#operation/generateDepositAddress):
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/offchain/account/646e040b0b4f44ca693f198e/address' \
+--header 'x-api-key: {testnet_API_KEY}'
+//response:
+{
+ "xpub": "xpub6EMcUVjBn8qrftjMxinPS34ebPPHATDPkYvmxhex9H8rmwE4dTaiW94c3rZzBbk55WFoSspYCyQRSkMmGzDjDdyJNUpqtwq1ZGCDC7dgtjC",
+ "derivationKey": 1,
+ "address": "0xe29744c6de04d062e5785b2f35dc11e57610ab34",
+ "currency": "TTOKEN"
+}
+```
diff --git a/v0/Guides/virtual-accounts/supported-tokens-out-of-the-box.md b/v0/Guides/virtual-accounts/supported-tokens-out-of-the-box.md
new file mode 100644
index 00000000..091b36fb
--- /dev/null
+++ b/v0/Guides/virtual-accounts/supported-tokens-out-of-the-box.md
@@ -0,0 +1,57 @@
+---
+title: "List of supported tokens - out of the box"
+slug: "supported-tokens-out-of-the-box"
+excerpt: "Virtual Accounts support out of the box several ERC-20 (or compatible) tokens as Virtual Currencies. Here you can find the list."
+hidden: false
+createdAt: "Fri Jan 26 2024 13:34:41 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:41:55 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum Virtual Accounts support natively a handful of tokens. You can find the list below.
+
+If you want your Virtual Accounts to work with a token that Tatum doesn't natively support, you can add it via [the following guide](https://tatumdocs.readme.io/docs/adding-unsupported-tokens).
+
+| Chain | VA Symbol | ContractAddress | Digits |
+| :---- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------- | :----- |
+| BSC | BBCH | [0x8ff795a6f4d97e7887c79bea79aba5cc76444adf](https://bscscan.com/token/0x8ff795a6f4d97e7887c79bea79aba5cc76444adf) | 18 |
+| BSC | BBTC | [0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c](https://bscscan.com/token/0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c) | 18 |
+| BSC | BDOT | [0x7083609fce4d1d8dc0c979aab8c869ea2c873402](https://bscscan.com/token/0x7083609fce4d1d8dc0c979aab8c869ea2c873402) | 18 |
+| BSC | BETH | [0x2170ed0880ac9a755fd29b2688956bd959f933f8](https://bscscan.com/token/0x2170ed0880ac9a755fd29b2688956bd959f933f8) | 18 |
+| BSC | BLTC | [0x4338665cbb7b2485a8855a139b75d5e34ab0db94](https://bscscan.com/token/0x4338665cbb7b2485a8855a139b75d5e34ab0db94) | 18 |
+| BSC | BUSD_BSC | [0xe9e7cea3dedca5984780bafc599bd69add087d56](https://bscscan.com/token/0xe9e7cea3dedca5984780bafc599bd69add087d56) | 18 |
+| BSC | BXRP | [0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe](https://bscscan.com/token/0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe) | 18 |
+| BSC | CAKE | [0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82](https://bscscan.com/token/0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82) | 18 |
+| BSC | GMC_BSC | [0xa6272359bc37f61af398071b65c8934aca744d53](https://bscscan.com/token/0xa6272359bc37f61af398071b65c8934aca744d53) | 18 |
+| BSC | RMD | [0x02888e65324a98219c26f292e7cd3e52ef39c5c2](https://bscscan.com/token/0x02888e65324a98219c26f292e7cd3e52ef39c5c2) | 18 |
+| BSC | USDC_BSC | [0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d](https://bscscan.com/token/0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d) | 18 |
+| BSC | WBNB | [0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c](https://bscscan.com/token/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c) | 18 |
+| CELO | CEUR | [0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73](https://celoscan.io/token/0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73) | 18 |
+| CELO | CUSD | [0x765DE816845861e75A25fCA122bb6898B8B1282a](https://celoscan.io/token/0x765DE816845861e75A25fCA122bb6898B8B1282a) | 18 |
+| ETH | BAT | [0x0d8775f648430679a709e98d2b0cb6250d2887ef](https://etherscan.io/token/0x0d8775f648430679a709e98d2b0cb6250d2887ef) | 18 |
+| ETH | BUSD | [0x4fabb145d64652a948d72533023f6e7a623c7c53](https://etherscan.io/token/0x4fabb145d64652a948d72533023f6e7a623c7c53) | 18 |
+| ETH | FREE | [0x2f141ce366a2462f02cea3d12cf93e4dca49e4fd](https://etherscan.io/token/0x2f141ce366a2462f02cea3d12cf93e4dca49e4fd) | 18 |
+| ETH | GMC | [0xa6272359bc37f61af398071b65c8934aca744d53](https://etherscan.io/token/0xa6272359bc37f61af398071b65c8934aca744d53) | 18 |
+| ETH | LATOKEN | [0xe50365f5d679cb98a1dd62d6f6e58e59321bcddf](https://etherscan.io/token/0xe50365f5d679cb98a1dd62d6f6e58e59321bcddf) | 18 |
+| ETH | LEO | [0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3](https://etherscan.io/token/0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3) | 18 |
+| ETH | LINK | [0x514910771af9ca656af840dff83e8264ecf986ca](https://etherscan.io/token/0x514910771af9ca656af840dff83e8264ecf986ca) | 18 |
+| ETH | MATIC_ETH | [0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0](https://etherscan.io/token/0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0) | 18 |
+| ETH | MKR | [0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2](https://etherscan.io/token/0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2) | 18 |
+| ETH | PAX | [0x8e870d67f660d95d5be530380d0ec0bd388289e1](https://etherscan.io/token/0x8e870d67f660d95d5be530380d0ec0bd388289e1) | 18 |
+| ETH | PAXG | [0x45804880de22913dafe09f4980848ece6ecbaf78](https://etherscan.io/token/0x45804880de22913dafe09f4980848ece6ecbaf78) | 18 |
+| ETH | REVV | [0x557b933a7c2c45672b610f8954a3deb39a51a8ca](https://etherscan.io/token/0x557b933a7c2c45672b610f8954a3deb39a51a8ca) | 18 |
+| ETH | SAND | [0x3845badade8e6dff049820680d1f14bd3903a5d0](https://etherscan.io/token/0x3845badade8e6dff049820680d1f14bd3903a5d0) | 18 |
+| ETH | TUSD | [0x0000000000085d4780B73119b644AE5ecd22b376](https://etherscan.io/token/0x0000000000085d4780B73119b644AE5ecd22b376) | 18 |
+| ETH | UNI | [0x1f9840a85d5af5bf1d1762f925bdaddc4201f984](https://etherscan.io/token/0x1f9840a85d5af5bf1d1762f925bdaddc4201f984) | 18 |
+| ETH | USDC | [0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48](https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48) | 6 |
+| ETH | USDT | [0xdac17f958d2ee523a2206206994597c13d831ec7](https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7) | 6 |
+| ETH | WBTC | [0x2260fac5e5542a773aa44fbcfedf7c193bc2c599](https://etherscan.io/token/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599) | 8 |
+| ETH | XCON | [0x0f237d5ea7876e0e2906034d98fdb20d43666ad4](https://etherscan.io/token/0x0f237d5ea7876e0e2906034d98fdb20d43666ad4) | 18 |
+| FLOW | FUSD | [A.3c5959b568896393.FUSD](https://www.flowdiver.io/contract/A.3c5959b568896393.FUSD) | ? |
+| MATIC | GAMEE | [0xcf32822ff397ef82425153a9dcb726e5ff61dca7](https://polygonscan.com/token/0xcf32822ff397ef82425153a9dcb726e5ff61dca7) | 18 |
+| MATIC | USDC_MATIC | [0x2791bca1f2de4661ed88a30c99a7a9449aa84174](https://polygonscan.com/token/0x2791bca1f2de4661ed88a30c99a7a9449aa84174) | 6 |
+| MATIC | USDC_MATIC_NATIVE | [0x3c499c542cef5e3811e1192ce70d8cc03d5c3359](https://polygonscan.com/token/0x3c499c542cef5e3811e1192ce70d8cc03d5c3359) | 6 |
+| MATIC | USDT_MATIC | [0xc2132d05d31c914a87c6611c10748aeb04b58e8f](https://polygonscan.com/token/0xc2132d05d31c914a87c6611c10748aeb04b58e8f) | 18 |
+| SOL | USDC_SOL | [EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v](https://explorer.solana.com/address/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) | 6 |
+| TRON | INRT_TRON | [TX66VmiV1txm45vVLvcHYEqPXXLoREyAXm](https://tronscan.org/#/token20/TX66VmiV1txm45vVLvcHYEqPXXLoREyAXm) | 2 |
+| TRON | USDT_TRON | [TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t](https://tronscan.org/#/contract/TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t) | 6 |
+
+> 📘 Find additional information in GitHub [at the following link](https://github.com/tatumio/tatum-js/blob/v2/packages/shared/core/src/lib/contract.common.ts).
diff --git a/v0/Guides/virtual-accounts/virtual-accounts-use-case-introduction.md b/v0/Guides/virtual-accounts/virtual-accounts-use-case-introduction.md
new file mode 100644
index 00000000..f114e6ef
--- /dev/null
+++ b/v0/Guides/virtual-accounts/virtual-accounts-use-case-introduction.md
@@ -0,0 +1,95 @@
+---
+title: "Use Case Introduction and Functionalities"
+slug: "virtual-accounts-use-case-introduction"
+excerpt: ""
+hidden: false
+createdAt: "Sat Jan 27 2024 18:08:31 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:41:55 GMT+0000 (Coordinated Universal Time)"
+---
+Virtual accounts allow you to build an off-chain exchange type of ledger parallel to the blockchain and bypass the slow and often congested transaction mechanism of the blockchain itself.
+
+If your customers want to send their crypto outside of your application, they can withdraw it from their virtual account to their blockchain deposit addresses.
+
+> 🚧 This is intended as a self-custodial solution. You are expected to hold 1:1 asset liquidity between your off-chain ledger to your on-chain assets.
+
+## No blockchain fees for off-chain transfers
+
+Because transactions between virtual accounts do not happen on the blockchain, they do not incur blockchain transaction fees and happen instantly. This provides huge benefits for working with blockchains like Ethereum and Bitcoin, both of which have high transaction fees and slow transaction times.
+
+## Grouping multiple Virtual Accounts
+
+Multiple virtual accounts of different currencies can be grouped using a "customer ID". In this way, your customers can easily view the balances of all the currencies they hold with one API call, allowing you to build multi-currency wallets and various fintech applications.
+
+## Deposit addresses and automatic balance updates
+
+A virtual Account has at least one real blockchain address associated with it. This blockchain address is called “deposit address”.
+
+You can either connect an existing blockchain address (or addresses) to the virtual account or generate a new blockchain address and associate it with the account. In either case, the blockchain address becomes a deposit address for this virtual account.
+
+Virtual Accounts automatically scan associated deposit addresses for incoming transactions and update their own balances to reflect the assets received. Whenever any blockchain address connected to a Virtual Account receives an incoming transaction, the virtual account's balance will be updated to reflect the newly received funds.
+
+[block:image]
+{
+ "images": [
+ {
+ "image": [
+ "https://files.readme.io/4633730-ledger_and_off_chain.webp",
+ "",
+ "Virtual Account and deposit addresses"
+ ],
+ "align": "center",
+ "caption": "Virtual Account and deposit addresses"
+ }
+ ]
+}
+[/block]
+
+
+If you transfer assets from one virtual account to the other one, the total balance of all virtual accounts does not change.
+
+[block:image]
+{
+ "images": [
+ {
+ "image": [
+ "https://files.readme.io/bf416a9-va_transfers.webp",
+ "",
+ "Virtual Account off-chain transfers do not affect on-chain assets"
+ ],
+ "align": "center",
+ "caption": "Virtual Account off-chain transfers do not affect on-chain assets"
+ }
+ ]
+}
+[/block]
+
+
+## Single currency per Virtual Account
+
+Each virtual account is in a single currency. This can be either a cryptocurrency or a virtual fiat currency.
+
+Virtual accounts can be connected to blockchain addresses or represent virtual currencies that can be pegged to a fiat currency. Virtual accounts can be in Bitcoin or Ethereum, Euro or U.S. dollar. Using virtual currencies, you can use fiat and cryptocurrencies in the same way with the same API calls.
+
+Although each virtual account contains a single currency, it can be connected to multiple blockchain addresses for that currency.
+
+> 📘 Virtual accounts can only perform transactions with other virtual accounts of the same currency.
+
+## Running in the background
+
+When a customer transfers assets from their virtual account to a real blockchain address, they do not know where the assets are withdrawn from in the background.
+
+Imagine that you have three customers with their custodial accounts: **A**, **B,** and **C**, and each of them has a virtual account connected to the customer’s blockchain address.
+
+The following scenario takes place:
+
+1. **Customer_A** received 1 ETH.
+2. **Customer_A** transfers this 1 ETH to **Customer_B**.
+3. **Customer_B** receives 1 ETH and transfers it to **Customer_C**.
+4. **Customer_C** receives 1 ETH and uses it to pay for something (in other words, transfers it to a blockchain address that is outside of your custodial application).
+
+When **Customer_C** transfers 1 ETH to a blockchain address that is outside of your custodial application:
+
+- On the **Virtual Account level**, the amount is deducted from **Customer_C**'s virtual account. -> This is what the customer sees.
+- On the **Blockchain level**, the amount is deducted from **Customer_A**'s blockchain address because **Customer_A** is the one who owned that 1 ETH in the beginning. -> This is what you see as the owner of the custodial application.
+
+> 📘 Tatum Virtual Accounts back-end take care of calculating the balance and tracking the assets.
diff --git a/v0/Guides/virtual-accounts/withdrawing-assets.md b/v0/Guides/virtual-accounts/withdrawing-assets.md
new file mode 100644
index 00000000..85ccc5da
--- /dev/null
+++ b/v0/Guides/virtual-accounts/withdrawing-assets.md
@@ -0,0 +1,32 @@
+---
+title: "Withdrawing Assets"
+slug: "withdrawing-assets"
+excerpt: ""
+hidden: false
+createdAt: "Sat Jan 27 2024 18:34:13 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:41:55 GMT+0000 (Coordinated Universal Time)"
+---
+Setting up virtual accounts is similar for all the supported blockchains.
+
+However, withdrawing funds from a virtual account works differently depending on what blockchain the virtual account is created for.
+
+## UTXO-based blockchains
+
+On UTXO-based blockchains such as Bitcoin, Bitcoin Cash, Dogecoin, and Litecoin, withdrawing funds from virtual accounts is "easier" when **the virtual accounts are associated with the same extended public key (xpub)**.
+
+This way, all the deposit addresses that you generate for those virtual accounts are associated with the same xpub, and you do not have to track all UTXO transactions. During the withdrawal, all the deposit addresses are automatically scanned for incoming deposits that are then used as a source of the withdrawal transaction.
+
+**BTC Example:**
+
+To withdraw funds from BTC Virtual Accounts associated with the same xpub, you can use [the following v3 REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-operations/#operation/BtcTransfer) for sending the funds from a BTC-based Virtual Account to the blockchain.
+
+## EVM-compatible blockchains
+
+On EVM-compatible blockchains such as Ethereum, BNB Smart Chain, Celo, and so on, you can choose from the following approaches to withdrawals:
+
+- Withdraw deposits from each deposit address separately. (NOT recommended)
+- Collect all deposits on a separate blockchain address and withdraw them from this address. (Recommended)
+
+## BNB Beacon Chain, Stellar, and XRPL
+
+On BNB Beacon Chain, Stellar, and XRPL, one deposit address is used and customers are identified by blockchain-specific parameters such as `memo`, `message`, and `DestinationTag`, accordingly.
diff --git a/v0/Learn blockchain/what-are-transactions.md b/v0/Learn blockchain/what-are-transactions.md
new file mode 100644
index 00000000..8fbeaf8e
--- /dev/null
+++ b/v0/Learn blockchain/what-are-transactions.md
@@ -0,0 +1,20 @@
+---
+title: "What are Transactions?"
+slug: "what-are-transactions"
+excerpt: ""
+hidden: false
+createdAt: "Fri Jan 19 2024 11:23:37 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jan 19 2024 11:36:55 GMT+0000 (Coordinated Universal Time)"
+---
+At its most basic level, a transaction is the exchange of value between two parties. In the context of blockchain technology, a transaction is a digital record of this exchange of value, which is recorded and verified on a blockchain network. Let's explore some of the key components of a transaction and how it works. 💰
+
+💳 **Inputs and Outputs:** A transaction on a blockchain network typically consists of inputs and outputs. The inputs represent the funds being spent, while the outputs represent where those funds are going. Each input and output is represented by a specific address on the network.
+
+🔒 **Signatures:** To ensure the security and validity of a transaction, each input must be signed by the sender using a private key. This signature is used to verify that the transaction is legitimate and that the sender has authorised the transfer of funds.
+
+📈 **Transaction Fees:** When a transaction is initiated on a blockchain network, a small fee is charged to the sender to incentivise network participants to validate the transaction. The size of the fee is determined by network congestion and the complexity of the transaction.
+
+🕰️ **Confirmation:** After a transaction is initiated, it must be validated and confirmed by multiple computers on the network. This validation process ensures that the transaction is legitimate and that the funds are being transferred from the sender to the intended recipient.
+
+🔍 **Transparency: **One of the key benefits of blockchain technology is its transparency. Because each transaction is recorded on a public ledger, anyone can view the details of a transaction and verify its legitimacy.
+In conclusion, transactions are a fundamental part of blockchain technology, allowing for the secure and transparent exchange of value between two parties. While the process may seem complex, understanding the key components of a transaction can help you better navigate the world of blockchain and cryptocurrency. 💻
diff --git a/v0/Learn blockchain/what-are-transactions/what-are-internal-transactions.md b/v0/Learn blockchain/what-are-transactions/what-are-internal-transactions.md
new file mode 100644
index 00000000..48d227b2
--- /dev/null
+++ b/v0/Learn blockchain/what-are-transactions/what-are-internal-transactions.md
@@ -0,0 +1,19 @@
+---
+title: "What are Internal Transactions?"
+slug: "what-are-internal-transactions"
+excerpt: ""
+hidden: false
+createdAt: "Fri Jan 19 2024 11:25:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jan 19 2024 11:25:06 GMT+0000 (Coordinated Universal Time)"
+---
+Internal transactions are 💎 another crucial aspect of blockchain technology that play a vital role in facilitating transactions and maintaining the integrity of the network. Internal transactions occur when tokens are transferred between two addresses on the same blockchain network. 🔁
+
+These transactions are different from external transactions, which involve the transfer of tokens between different blockchain networks or to external addresses outside of the network. 🌐
+
+Internal transactions can be initiated by a variety of actors on the network, including individual users, smart contracts, and decentralised applications (dApps). 💻 Smart contracts are particularly important in facilitating internal transactions, as they can execute complex transactions automatically based on pre-determined conditions.
+
+One of the primary benefits of internal transactions is that they are typically faster and cheaper than external transactions, as they do not require the same level of validation and verification as external transactions. This makes them ideal for small transactions and for sending tokens between different wallets or accounts on the same network. 💰
+
+In addition to their speed and efficiency, internal transactions are also transparent and secure. Since all transactions on a blockchain network are publicly visible and recorded on a distributed ledger, internal transactions can be easily traced and audited. This helps to prevent fraud and other forms of malicious activity on the network. 🔒
+
+Overall, internal transactions are a fundamental component of blockchain technology and are critical to the functioning of many blockchain networks. Whether you are a developer, investor, or enthusiast, understanding the role of internal transactions is essential for navigating the complex and rapidly evolving world of blockchain technology. 🚀
diff --git a/v0/Learn blockchain/what-are-transactions/what-are-the-reasons-a-transaction-fails.md b/v0/Learn blockchain/what-are-transactions/what-are-the-reasons-a-transaction-fails.md
new file mode 100644
index 00000000..0541b928
--- /dev/null
+++ b/v0/Learn blockchain/what-are-transactions/what-are-the-reasons-a-transaction-fails.md
@@ -0,0 +1,21 @@
+---
+title: "What are the reasons a transaction fails?"
+slug: "what-are-the-reasons-a-transaction-fails"
+excerpt: ""
+hidden: false
+createdAt: "Fri Jan 19 2024 11:24:21 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jan 19 2024 11:37:19 GMT+0000 (Coordinated Universal Time)"
+---
+One of the benefits of blockchain technology is its ability to facilitate secure and transparent transactions. However, like any technology, blockchain is not perfect, and transactions can sometimes fail for a variety of reasons. Let's explore some of the most common reasons why a transaction might fail on a blockchain network. 🧐
+
+🔴** Insufficient Funds:** One of the most common reasons for a failed transaction is that the sender does not have enough funds in their account to cover the transaction fees. When a transaction is initiated on a blockchain network, a small fee is charged to the sender to incentivize network participants to validate the transaction. If the sender does not have enough funds to cover the fees, the transaction will fail.
+
+🔴 **Network Congestion:** Another reason for failed transactions is network congestion. When a blockchain network is congested with a high volume of transactions, it can take longer for transactions to be validated and added to the blockchain. In some cases, transactions may time out or fail altogether if the network is too congested.
+
+🔴 **Invalid Address:** If a sender enters an incorrect or invalid address when initiating a transaction, the transaction will fail. It's important to double-check the address before sending any funds to ensure that the transaction goes through.
+
+🔴 **Gas Limit Too Low: **Each transaction on a blockchain network requires a certain amount of "gas," which is a measure of computational power needed to execute the transaction. If the gas limit set by the sender is too low, the transaction will fail.
+
+🔴 **Smart Contract Issues:** Some transactions involve the use of smart contracts, which are self-executing contracts with the terms of the agreement between buyer and seller being directly written into lines of code. If there is an error in the smart contract code, the transaction may fail.
+
+In conclusion, transactions can fail on a blockchain network for a variety of reasons, including insufficient funds, network congestion, invalid addresses, low gas limits, and smart contract issues. While these failures can be frustrating, it's important to remember that blockchain technology is still in its early stages, and as the technology continues to develop, many of these issues will be resolved. If you're experiencing a failed transaction, be patient, and double-check the details before trying again. 💻
diff --git a/v0/Learn blockchain/what-is-a-blockchain.md b/v0/Learn blockchain/what-is-a-blockchain.md
new file mode 100644
index 00000000..34112f12
--- /dev/null
+++ b/v0/Learn blockchain/what-is-a-blockchain.md
@@ -0,0 +1,19 @@
+---
+title: "What is a blockchain?"
+slug: "what-is-a-blockchain"
+excerpt: ""
+hidden: false
+createdAt: "Thu Jan 18 2024 11:54:00 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jan 18 2024 11:54:01 GMT+0000 (Coordinated Universal Time)"
+---
+Blockchain technology is a hot topic these days, but what exactly is it and how does it work? 🤔
+
+At its core, a blockchain is a digital ledger that records and verifies transactions. Each block in the chain contains information about a transaction, such as the time it occurred, the parties involved, and the details of the exchange. Once a block is added to the chain, it cannot be altered or deleted, creating a permanent and unalterable record of the transaction. 🔒
+
+The beauty of blockchain technology is that it allows for secure and transparent transactions between two parties without the need for a central authority, such as a bank or government. This is because the ledger is stored across a network of computers, making it difficult for any one person or entity to manipulate the information. 👥
+
+To ensure the security of the blockchain, each block is verified by multiple computers on the network before it is added to the chain. This makes it virtually impossible for any one person or entity to alter the ledger or commit fraud. 🔍
+
+One of the most well-known applications of blockchain technology is cryptocurrency, such as Bitcoin. However, blockchain has the potential to be used in many other areas, such as supply chain management, voting systems, and digital identity verification. 💰
+
+In conclusion, blockchain technology is a powerful tool that has the potential to revolutionize the way we conduct transactions and manage data. Whether you're a business owner, developer, or simply interested in the future of technology, blockchain is definitely something worth learning more about! 💻
diff --git a/v0/Learn blockchain/what-is-a-token-on-blockchain.md b/v0/Learn blockchain/what-is-a-token-on-blockchain.md
new file mode 100644
index 00000000..824264ec
--- /dev/null
+++ b/v0/Learn blockchain/what-is-a-token-on-blockchain.md
@@ -0,0 +1,35 @@
+---
+title: "What is a Token on Blockchain?"
+slug: "what-is-a-token-on-blockchain"
+excerpt: ""
+hidden: false
+createdAt: "Thu Jan 18 2024 11:54:58 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jan 19 2024 11:35:58 GMT+0000 (Coordinated Universal Time)"
+---
+Tokens are digital assets that are created and managed on a blockchain network. They can be broadly classified into two types: native tokens and non-native tokens.
+
+Native tokens are created when a blockchain network is launched and are integral to the underlying protocol of the blockchain. They are also known as protocol tokens and are used to facilitate transactions on that network. Examples of native tokens include Bitcoin (BTC), Ether (ETH), and Binance Coin (BNB).
+
+Non-native tokens, on the other hand, are created through smart contracts and can be used to represent specific assets or utility on a blockchain network. They can be further classified into fungible, non-fungible tokens (NFTs) & multi tokens.
+
+🔸 **Fungible tokens:** Fungible tokens are identical to each other and are interchangeable. Each token holds the same value and can be exchanged with any other token of the same type. Examples of fungible tokens include stable coins like Tether (USDT) and MakerDAO (DAI), which are pegged to the value of a specific asset or currency.
+
+🔸 **Non-fungible tokens (NFTs):** NFTs are unique and indivisible tokens that represent a specific asset or item. Each NFT is one-of-a-kind and holds a specific value. Examples of NFTs include digital art, collectibles, and in-game items.
+
+🔸 **Multitokens:** Multitokens are a type of digital asset that contain multiple other tokens within them. They provide a way to bundle multiple tokens together into a single asset, making it easier to manage and trade multiple tokens at once. Multitokens can contain both fungible and non-fungible tokens, as well as other multitokens, and can have a variety of use cases, including investment, trading, and DeFi.
+
+Tokens can have a variety of use cases on their respective blockchain networks, including:
+
+🔸 **Representing assets:** Tokens can be used to represent a variety of assets, such as real estate, precious metals, or even other cryptocurrencies.
+
+🔸 **Utility tokens:** Some tokens are designed specifically for use within a particular decentralised application or dApp. These tokens are often used to pay for services or to incentivise network participants to contribute to the network.
+
+🔸 **Governance tokens:** Some tokens are used for governance purposes, allowing token holders to vote on important network decisions, such as protocol upgrades and changes.
+
+🔸 **Security tokens:** Security tokens are tokens that are backed by real-world assets, such as stocks or bonds. These tokens are regulated by securities laws and are subject to the same regulations as traditional securities.
+
+One of the primary benefits of tokens is that they allow for the creation of decentralised economies and ecosystems. By creating tokens that represent specific assets or utility on a blockchain network, developers and entrepreneurs can incentivise network participants to contribute to the network and to help grow the ecosystem.
+
+Tokens also provide a way for investors to participate in the growth of blockchain networks and dApps. By investing in tokens, investors can gain exposure to the potential upside of a particular network or project.
+
+Overall, tokens are a powerful tool for building decentralised economies and ecosystems on blockchain networks. Whether you are a developer, investor, or enthusiast, understanding the role of tokens is essential for navigating the complex and rapidly evolving world of blockchain technology. 💻🌱
diff --git a/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-fungible-tokens.md b/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-fungible-tokens.md
new file mode 100644
index 00000000..f0cda47a
--- /dev/null
+++ b/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-fungible-tokens.md
@@ -0,0 +1,17 @@
+---
+title: "What are Fungible Tokens?"
+slug: "what-are-fungible-tokens"
+excerpt: ""
+hidden: false
+createdAt: "Thu Jan 18 2024 11:57:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jan 18 2024 11:57:41 GMT+0000 (Coordinated Universal Time)"
+---
+Fungible tokens are a type of 💰 digital asset that are identical to each other and can be exchanged for one another. Each token holds the same value and can be exchanged with any other token of the same type. Examples of fungible tokens include stable coins like Tether (USDT) and MakerDAO (DAI), which are pegged to the value of a specific asset or currency.
+
+Fungible tokens are designed to be interchangeable, which means that one token can be exchanged for another token of the same type without any loss of value. This makes them ideal for use as a currency or for representing assets that are uniform and interchangeable, such as 💰 gold or 🛢️ oil.
+
+One of the primary benefits of fungible tokens is their divisibility. Fungible tokens can be divided into smaller units, which allows for more granular transactions and enables micro-transactions on a blockchain network. For example, a single Bitcoin can be divided into 100 million satoshi's, which allows for very small transactions to take place on the Bitcoin network. 💸
+
+Fungible tokens also provide a high degree of liquidity, which means that they can be easily bought and sold on 💹 cryptocurrency exchanges. This allows for the creation of markets and trading pairs, which can help to determine the value of a particular fungible token.
+
+Overall, fungible tokens are an important component of the blockchain ecosystem, providing a way to represent and exchange assets in a uniform and standardised way. Whether you are a developer, investor, or enthusiast, understanding the role of fungible tokens is essential for navigating the complex and rapidly evolving world of blockchain technology. 💻🌱
diff --git a/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-multitokens.md b/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-multitokens.md
new file mode 100644
index 00000000..6ea456e9
--- /dev/null
+++ b/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-multitokens.md
@@ -0,0 +1,25 @@
+---
+title: "What are MultiTokens?"
+slug: "what-are-multitokens"
+excerpt: ""
+hidden: false
+createdAt: "Thu Jan 18 2024 11:58:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jan 19 2024 11:36:30 GMT+0000 (Coordinated Universal Time)"
+---
+Multitokens are a type of 🎁 digital asset that contain multiple other tokens within them. They are designed to provide a way to bundle multiple tokens together into a single asset, making it easier to manage and trade multiple tokens at once.
+
+Multitokens can contain both fungible and non-fungible tokens, as well as other multitokens. This allows for the creation of complex digital assets that represent multiple tokens and assets on a blockchain network. 🌐
+
+One of the primary benefits of multitokens is their ability to provide diversification within a single asset. By bundling multiple tokens together, multitokens can help to reduce risk and increase exposure to different types of assets and tokens.
+
+Multitokens are created through smart contracts and are stored on a blockchain network, which ensures that they are tamper-proof and transparent. This allows for the creation of trustless and decentralised marketplaces for multitokens, where buyers and sellers can transact with each other without the need for intermediaries. 🤝
+
+Multitokens can have a variety of use cases, including:
+
+🔸 **Investment:** Multitokens can be used to create diversified investment portfolios that span multiple blockchain networks and asset classes.
+
+🔸 **Trading:** Multitokens can be traded on cryptocurrency exchanges, providing a way to trade multiple tokens at once and to diversify trading strategies.
+
+🔸 **Decentralised finance (DeFi):** Multitokens can be used as collateral or liquidity in DeFi protocols, allowing for more efficient and diverse use of assets in the DeFi ecosystem.
+
+Overall, multitokens are a powerful tool for creating diversified digital assets and for navigating the complex and rapidly evolving world of blockchain technology. Whether you are a developer, investor, or enthusiast, understanding the role of multitokens is essential for staying ahead of the curve in the blockchain industry. 💻🌱
diff --git a/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-native-tokens.md b/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-native-tokens.md
new file mode 100644
index 00000000..bd76331a
--- /dev/null
+++ b/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-native-tokens.md
@@ -0,0 +1,24 @@
+---
+title: "What are Native Tokens?"
+slug: "what-are-native-tokens"
+excerpt: ""
+hidden: false
+createdAt: "Thu Jan 18 2024 11:55:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Jan 22 2024 13:04:39 GMT+0000 (Coordinated Universal Time)"
+---
+Native tokens are a type of digital token that are created and used on a specific blockchain network. These tokens are usually created during the initial launch of a blockchain network and are used to facilitate transactions on that network. They are also known as protocol tokens, since they are integral to the underlying protocol of the blockchain.
+One of the most well-known examples of a native token is Ether (ETH), which is the native token of the Ethereum blockchain. ETH is used to pay for transaction fees and to incentivise network participants to secure and validate transactions. It can also be used as a currency to purchase goods and services, much like Bitcoin.
+
+Native tokens can have a variety of uses on their respective blockchain networks, including:
+
+🔸 **Payment for transaction fees:** Native tokens are used to pay for transaction fees on the network. This ensures that the network remains secure and that transactions are processed in a timely manner.
+
+🔸 **Incentivising network participants:** Native tokens are often used to incentivize network participants to contribute to the network. For example, miners who validate transactions on the network are rewarded with native tokens.
+
+🔸 **Governance:** Native tokens can also be used for governance purposes, allowing token holders to vote on important network decisions, such as protocol upgrades and changes.
+
+🔸 **Staking:** Some native tokens can be staked, or locked up, in order to secure the network and earn rewards.
+
+It's important to note that not all tokens on a blockchain network are native tokens. In fact, many blockchain networks have multiple types of tokens, each with their own specific use cases. For example, the Ethereum network has ERC-20 tokens, which are used for creating and managing smart contracts.
+
+In conclusion, native tokens are an important part of many blockchain networks, providing the backbone for transactions and incentivising network participants to contribute to the network. If you're interested in blockchain technology, learning more about native tokens is a great place to start! 💻
diff --git a/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-non-fungible-tokens.md b/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-non-fungible-tokens.md
new file mode 100644
index 00000000..e8787c9b
--- /dev/null
+++ b/v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-non-fungible-tokens.md
@@ -0,0 +1,18 @@
+---
+title: "What are Non Fungible Tokens?"
+slug: "what-are-non-fungible-tokens"
+excerpt: ""
+hidden: false
+createdAt: "Thu Jan 18 2024 11:58:03 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jan 18 2024 11:58:08 GMT+0000 (Coordinated Universal Time)"
+---
+Non-fungible tokens (NFTs) are a type of 💎 digital asset that are unique and indivisible. Each NFT is one-of-a-kind and holds a specific value. Examples of NFTs include 🎨 digital art, 🎮 collectibles, and in-game items.
+Unlike fungible tokens, which are interchangeable with one another, each NFT holds a unique set of attributes and characteristics that set it apart from all other tokens. This uniqueness is what makes NFTs valuable and desirable to collectors and enthusiasts.
+
+NFTs are created through smart contracts and are stored on a blockchain network, which ensures that they are tamper-proof and transparent. This allows for the creation of trustless and decentralised marketplaces for NFTs, where buyers and sellers can transact with each other without the need for intermediaries. 🤝
+
+One of the primary benefits of NFTs is their ability to represent ownership and provenance of digital assets. Since each NFT is unique and indivisible, it can be used to represent ownership of a specific piece of digital art or a rare collectible. This allows creators and collectors to monetise their work and to create new revenue streams. 💰
+
+NFTs can also be used to create new types of decentralised applications (dApps) and games. For example, NFTs can be used to represent in-game items that have real-world value, which allows for the creation of new types of gaming economies and ecosystems. 🎮
+
+Overall, NFTs are a powerful tool for representing ownership and provenance of digital assets, creating new types of decentralised economies and ecosystems, and unlocking new revenue streams for creators and collectors. Whether you are a developer, investor, or enthusiast, understanding the role of NFTs is essential for navigating the complex and rapidly evolving world of blockchain technology. 💻🌱
diff --git a/v0/Notifications/general-transactions.md b/v0/Notifications/general-transactions.md
new file mode 100644
index 00000000..25091437
--- /dev/null
+++ b/v0/Notifications/general-transactions.md
@@ -0,0 +1,8 @@
+---
+title: "General Transactions"
+slug: "general-transactions"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:17:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:17:53 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Notifications/incoming-wallet-transfers.md b/v0/Notifications/incoming-wallet-transfers.md
new file mode 100644
index 00000000..503d3117
--- /dev/null
+++ b/v0/Notifications/incoming-wallet-transfers.md
@@ -0,0 +1,8 @@
+---
+title: "Incoming Transactions"
+slug: "incoming-wallet-transfers"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 09:09:46 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:17:08 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Notifications/incoming-wallet-transfers/sub_create.md b/v0/Notifications/incoming-wallet-transfers/sub_create.md
new file mode 100644
index 00000000..a1e037ba
--- /dev/null
+++ b/v0/Notifications/incoming-wallet-transfers/sub_create.md
@@ -0,0 +1,8 @@
+---
+title: "create subscriptions"
+slug: "sub_create"
+excerpt: "Creates subscriptions."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:09:46 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:09:46 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/Notifications/introduction-copy.md b/v0/Notifications/introduction-copy.md
new file mode 100644
index 00000000..f16e78f5
--- /dev/null
+++ b/v0/Notifications/introduction-copy.md
@@ -0,0 +1,33 @@
+---
+title: "Introduction"
+slug: "introduction-copy"
+excerpt: "Notifications is a comprehensive collection of products, designed for developers to easily build realtime on-chain events based functionalities such as informing a user on a successful transfer & more."
+hidden: true
+createdAt: "Tue Feb 06 2024 07:47:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Feb 08 2024 10:59:08 GMT+0000 (Coordinated Universal Time)"
+---
+Notifications offers a reliable, cross chain, scalable, and cost-effective way for developers to listen to realtime on-chain events, making it an essential tool for any blockchain project.
+
+
+
Don't have an API key?>
+
Get one to start using Blockchain Data in your app today.
+
+# Costs
+
+All the features/functionalities across the Notifications Suite cost 70 credits/Notification Sent. Example :
+
+1. Batch Call to Get Balance of Address for 10 Addresses - 70 \* 10 = 700 Credits
+
+# Products
+
+## Incoming Notifications
+
+Incoming Notifications as they sound, help you to listen to all the Incoming Transactions to a wallet like Incoming Native Transactions (When a wallet receives Native Tokens), Incoming Internal Transactions and more. You can read abo [here](https://tatumdocs.readme.io/v0/reference/nft-api).
+
+## Outgoing Notifications
+
+Token API product aims to help you fetch information about a token like Name, Symbol, Supply and more. The product is still in early stage and we will be adding more features in the offerings. Read More & Submit any Feedback or Feature request if any [here](https://tatumdocs.readme.io/v0/reference/token-api).
+
+## General Notifications
diff --git a/v0/Notifications/outgoing-transactions.md b/v0/Notifications/outgoing-transactions.md
new file mode 100644
index 00000000..645010e0
--- /dev/null
+++ b/v0/Notifications/outgoing-transactions.md
@@ -0,0 +1,8 @@
+---
+title: "Outgoing Transactions"
+slug: "outgoing-transactions"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:17:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:17:47 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/avalanche.md b/v0/RPC/avalanche.md
new file mode 100644
index 00000000..2c6239c3
--- /dev/null
+++ b/v0/RPC/avalanche.md
@@ -0,0 +1,8 @@
+---
+title: "Avalanche"
+slug: "avalanche"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:19:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:19:59 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/bsc-copy.md b/v0/RPC/bsc-copy.md
new file mode 100644
index 00000000..3d9b4f74
--- /dev/null
+++ b/v0/RPC/bsc-copy.md
@@ -0,0 +1,8 @@
+---
+title: "Arbitrum"
+slug: "bsc-copy"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:19:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:19:20 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum.md b/v0/RPC/ethereum.md
new file mode 100644
index 00000000..dafd9800
--- /dev/null
+++ b/v0/RPC/ethereum.md
@@ -0,0 +1,8 @@
+---
+title: "Ethereum"
+slug: "ethereum"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_accounts.md b/v0/RPC/ethereum/eth_accounts.md
new file mode 100644
index 00000000..7b4a1a19
--- /dev/null
+++ b/v0/RPC/ethereum/eth_accounts.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_accounts"
+slug: "eth_accounts"
+excerpt: "Returns a list of addresses owned by client."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_blocknumber.md b/v0/RPC/ethereum/eth_blocknumber.md
new file mode 100644
index 00000000..d7df5487
--- /dev/null
+++ b/v0/RPC/ethereum/eth_blocknumber.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_blockNumber"
+slug: "eth_blocknumber"
+excerpt: "Returns the number of the most recent block."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_call.md b/v0/RPC/ethereum/eth_call.md
new file mode 100644
index 00000000..36ff371d
--- /dev/null
+++ b/v0/RPC/ethereum/eth_call.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_call"
+slug: "eth_call"
+excerpt: "Executes a new message call immediately without creating a transaction on the block chain."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_chainid.md b/v0/RPC/ethereum/eth_chainid.md
new file mode 100644
index 00000000..faebc0a8
--- /dev/null
+++ b/v0/RPC/ethereum/eth_chainid.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_chainId"
+slug: "eth_chainid"
+excerpt: "Returns the currently configured chain ID."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_createaccesslist.md b/v0/RPC/ethereum/eth_createaccesslist.md
new file mode 100644
index 00000000..f89d20d6
--- /dev/null
+++ b/v0/RPC/ethereum/eth_createaccesslist.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_createAccessList"
+slug: "eth_createaccesslist"
+excerpt: "Ethereum API - Creates an EIP2930 type accessList based on a given Transaction object. Returns list of addresses and storage keys that are read and written by the transaction (except the sender account and precompiles), plus the estimated gas consumed when the access list is added."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_estimategas.md b/v0/RPC/ethereum/eth_estimategas.md
new file mode 100644
index 00000000..e3f4e570
--- /dev/null
+++ b/v0/RPC/ethereum/eth_estimategas.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_estimateGas"
+slug: "eth_estimategas"
+excerpt: "Estimate the amount of gas that will be required to execute a transaction."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_feehistory.md b/v0/RPC/ethereum/eth_feehistory.md
new file mode 100644
index 00000000..4ed93216
--- /dev/null
+++ b/v0/RPC/ethereum/eth_feehistory.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_feeHistory"
+slug: "eth_feehistory"
+excerpt: "Returns a collection of historical gas information."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_gasprice.md b/v0/RPC/ethereum/eth_gasprice.md
new file mode 100644
index 00000000..965d77c2
--- /dev/null
+++ b/v0/RPC/ethereum/eth_gasprice.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_gasPrice"
+slug: "eth_gasprice"
+excerpt: "Returns the current price per gas in wei."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getbalance.md b/v0/RPC/ethereum/eth_getbalance.md
new file mode 100644
index 00000000..4fc0f408
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getbalance.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getBalance"
+slug: "eth_getbalance"
+excerpt: "Returns the native eth balance of the account of a given address."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getblockbyhash.md b/v0/RPC/ethereum/eth_getblockbyhash.md
new file mode 100644
index 00000000..1af5fa7a
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getblockbyhash.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getBlockByHash"
+slug: "eth_getblockbyhash"
+excerpt: "Returns information about a block by block hash."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getblockbynumber.md b/v0/RPC/ethereum/eth_getblockbynumber.md
new file mode 100644
index 00000000..99c71dab
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getblockbynumber.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getBlockByNumber"
+slug: "eth_getblockbynumber"
+excerpt: "Returns information about a block by block number."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getblockreceipts.md b/v0/RPC/ethereum/eth_getblockreceipts.md
new file mode 100644
index 00000000..e6e758ab
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getblockreceipts.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getBlockReceipts"
+slug: "eth_getblockreceipts"
+excerpt: "Get all transaction receipts for a given block on Ethereum."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getblocktransactioncountbyhash.md b/v0/RPC/ethereum/eth_getblocktransactioncountbyhash.md
new file mode 100644
index 00000000..ff098ea6
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getblocktransactioncountbyhash.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getBlockTransactionCountByHash"
+slug: "eth_getblocktransactioncountbyhash"
+excerpt: "Returns the number of transactions in a block matching the given block hash."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getblocktransactioncountbynumber.md b/v0/RPC/ethereum/eth_getblocktransactioncountbynumber.md
new file mode 100644
index 00000000..36e313d3
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getblocktransactioncountbynumber.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getBlockTransactionCountByNumber"
+slug: "eth_getblocktransactioncountbynumber"
+excerpt: "Returns the number of transactions in a block matching the given block number."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getcode.md b/v0/RPC/ethereum/eth_getcode.md
new file mode 100644
index 00000000..8e4dd185
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getcode.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getCode"
+slug: "eth_getcode"
+excerpt: "Returns code at a given address."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getfilterchanges.md b/v0/RPC/ethereum/eth_getfilterchanges.md
new file mode 100644
index 00000000..c77670a7
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getfilterchanges.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getFilterChanges"
+slug: "eth_getfilterchanges"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getfilterlogs.md b/v0/RPC/ethereum/eth_getfilterlogs.md
new file mode 100644
index 00000000..5feb048c
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getfilterlogs.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getFilterLogs"
+slug: "eth_getfilterlogs"
+excerpt: "Returns an array of all logs matching filter with given id. Can compute the same results with an eth_getLogs call."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getlogs.md b/v0/RPC/ethereum/eth_getlogs.md
new file mode 100644
index 00000000..86273d64
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getlogs.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getLogs"
+slug: "eth_getlogs"
+excerpt: "Returns an array of logs matching a specified filter object."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getproof.md b/v0/RPC/ethereum/eth_getproof.md
new file mode 100644
index 00000000..32328a55
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getproof.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getProof"
+slug: "eth_getproof"
+excerpt: "Returns the account and storage values of the specified account including the Merkle-proof. This call can be used to verify that the data you are pulling from is not tampered with."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getstorageat.md b/v0/RPC/ethereum/eth_getstorageat.md
new file mode 100644
index 00000000..fa9e979d
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getstorageat.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getStorageAt"
+slug: "eth_getstorageat"
+excerpt: "Returns the value from a storage position at a given address, or in other words, returns the state of the contract's storage, which may not be exposed via the contract's methods."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_gettransactionbyblockhashandindex.md b/v0/RPC/ethereum/eth_gettransactionbyblockhashandindex.md
new file mode 100644
index 00000000..397aa74a
--- /dev/null
+++ b/v0/RPC/ethereum/eth_gettransactionbyblockhashandindex.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getTransactionByBlockHashAndIndex"
+slug: "eth_gettransactionbyblockhashandindex"
+excerpt: "Returns information about a transaction by block hash and transaction index position."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_gettransactionbyblocknumberandindex.md b/v0/RPC/ethereum/eth_gettransactionbyblocknumberandindex.md
new file mode 100644
index 00000000..24cdb5d7
--- /dev/null
+++ b/v0/RPC/ethereum/eth_gettransactionbyblocknumberandindex.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getTransactionByBlockNumberAndIndex"
+slug: "eth_gettransactionbyblocknumberandindex"
+excerpt: "Returns information about a transaction by block number and transaction index position."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_gettransactionbyhash.md b/v0/RPC/ethereum/eth_gettransactionbyhash.md
new file mode 100644
index 00000000..d800bbba
--- /dev/null
+++ b/v0/RPC/ethereum/eth_gettransactionbyhash.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getTransactionByHash"
+slug: "eth_gettransactionbyhash"
+excerpt: "Returns the information about a transaction requested by transaction hash. In the response object, blockHash, blockNumber, and transactionIndex are null when the transaction is pending."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_gettransactioncount.md b/v0/RPC/ethereum/eth_gettransactioncount.md
new file mode 100644
index 00000000..031a3803
--- /dev/null
+++ b/v0/RPC/ethereum/eth_gettransactioncount.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getTransactionCount"
+slug: "eth_gettransactioncount"
+excerpt: "Returns the number of transactions sent from an address."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_gettransactionreceipt.md b/v0/RPC/ethereum/eth_gettransactionreceipt.md
new file mode 100644
index 00000000..f6b6a84a
--- /dev/null
+++ b/v0/RPC/ethereum/eth_gettransactionreceipt.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getTransactionReceipt"
+slug: "eth_gettransactionreceipt"
+excerpt: "Returns the receipt of a transaction by transaction hash."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getunclebyblockhashandindex.md b/v0/RPC/ethereum/eth_getunclebyblockhashandindex.md
new file mode 100644
index 00000000..8fbfa82f
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getunclebyblockhashandindex.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getUncleByBlockHashAndIndex"
+slug: "eth_getunclebyblockhashandindex"
+excerpt: "Returns information about an uncle of a block by hash and uncle index position."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getunclebyblocknumberandindex.md b/v0/RPC/ethereum/eth_getunclebyblocknumberandindex.md
new file mode 100644
index 00000000..6f4a7201
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getunclebyblocknumberandindex.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getUncleByBlockNumberAndIndex"
+slug: "eth_getunclebyblocknumberandindex"
+excerpt: "Returns information about an uncle of a block by number and uncle index position."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getunclecountbyblockhash.md b/v0/RPC/ethereum/eth_getunclecountbyblockhash.md
new file mode 100644
index 00000000..ee4489f5
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getunclecountbyblockhash.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getUncleCountByBlockHash"
+slug: "eth_getunclecountbyblockhash"
+excerpt: "Returns the number of uncles in a block matching the given block hash."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_getunclecountbyblocknumber.md b/v0/RPC/ethereum/eth_getunclecountbyblocknumber.md
new file mode 100644
index 00000000..bdc1d6a1
--- /dev/null
+++ b/v0/RPC/ethereum/eth_getunclecountbyblocknumber.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_getUncleCountByBlockNumber"
+slug: "eth_getunclecountbyblocknumber"
+excerpt: "Returns the number of uncles in a block matching the given block number."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_maxpriorityfeepergas.md b/v0/RPC/ethereum/eth_maxpriorityfeepergas.md
new file mode 100644
index 00000000..136a74b3
--- /dev/null
+++ b/v0/RPC/ethereum/eth_maxpriorityfeepergas.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_maxPriorityFeePerGas"
+slug: "eth_maxpriorityfeepergas"
+excerpt: "Returns a fee per gas that is an estimate of how much you can pay as a priority fee, or 'tip', to get a transaction included in the current block."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_newblockfilter.md b/v0/RPC/ethereum/eth_newblockfilter.md
new file mode 100644
index 00000000..cba93769
--- /dev/null
+++ b/v0/RPC/ethereum/eth_newblockfilter.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_newBlockFilter"
+slug: "eth_newblockfilter"
+excerpt: "Creates a filter in the node, to notify when a new block arrives."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_newfilter.md b/v0/RPC/ethereum/eth_newfilter.md
new file mode 100644
index 00000000..f6496ec0
--- /dev/null
+++ b/v0/RPC/ethereum/eth_newfilter.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_newFilter"
+slug: "eth_newfilter"
+excerpt: "Creates a filter object, based on filter options, to notify when the state changes (logs)."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_newpendingtransactionfilter.md b/v0/RPC/ethereum/eth_newpendingtransactionfilter.md
new file mode 100644
index 00000000..911662b7
--- /dev/null
+++ b/v0/RPC/ethereum/eth_newpendingtransactionfilter.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_newPendingTransactionFilter"
+slug: "eth_newpendingtransactionfilter"
+excerpt: "Creates a filter in the node, to notify when new pending transactions arrive. To check if the state has changed, call eth_getFilterChanges."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_protocolversion.md b/v0/RPC/ethereum/eth_protocolversion.md
new file mode 100644
index 00000000..41e44311
--- /dev/null
+++ b/v0/RPC/ethereum/eth_protocolversion.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_protocolVersion"
+slug: "eth_protocolversion"
+excerpt: "Returns the current ethereum protocol version."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_sendprivatetransaction.md b/v0/RPC/ethereum/eth_sendprivatetransaction.md
new file mode 100644
index 00000000..0e2d115f
--- /dev/null
+++ b/v0/RPC/ethereum/eth_sendprivatetransaction.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_sendPrivateTransaction"
+slug: "eth_sendprivatetransaction"
+excerpt: "Send a single private transaction through Flashbots. Private transactions are sent directly to miners and not included in the public mempool."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_sendrawtransaction.md b/v0/RPC/ethereum/eth_sendrawtransaction.md
new file mode 100644
index 00000000..c20df4c9
--- /dev/null
+++ b/v0/RPC/ethereum/eth_sendrawtransaction.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_sendRawTransaction"
+slug: "eth_sendrawtransaction"
+excerpt: "Creates a new message call transaction or a contract creation for signed transactions."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/eth_uninstallfilter.md b/v0/RPC/ethereum/eth_uninstallfilter.md
new file mode 100644
index 00000000..7ec4ff1e
--- /dev/null
+++ b/v0/RPC/ethereum/eth_uninstallfilter.md
@@ -0,0 +1,8 @@
+---
+title: "/eth_uninstallFilter"
+slug: "eth_uninstallfilter"
+excerpt: "Uninstalls a filter with given id. Should always be called when watch is no longer needed. Additionally, Filters timeout when they aren’t requested with eth_getFilterChangesfor a period of time."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:19 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/net_listening.md b/v0/RPC/ethereum/net_listening.md
new file mode 100644
index 00000000..146fb782
--- /dev/null
+++ b/v0/RPC/ethereum/net_listening.md
@@ -0,0 +1,8 @@
+---
+title: "/net_listening"
+slug: "net_listening"
+excerpt: "Returns true if client is actively listening for network connections."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/net_version.md b/v0/RPC/ethereum/net_version.md
new file mode 100644
index 00000000..4a227d13
--- /dev/null
+++ b/v0/RPC/ethereum/net_version.md
@@ -0,0 +1,8 @@
+---
+title: "/net_version"
+slug: "net_version"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/web3_clientversion.md b/v0/RPC/ethereum/web3_clientversion.md
new file mode 100644
index 00000000..e02298b1
--- /dev/null
+++ b/v0/RPC/ethereum/web3_clientversion.md
@@ -0,0 +1,8 @@
+---
+title: "/web3_clientVersion"
+slug: "web3_clientversion"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:19 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/ethereum/web3_sha.md b/v0/RPC/ethereum/web3_sha.md
new file mode 100644
index 00000000..118bb7d9
--- /dev/null
+++ b/v0/RPC/ethereum/web3_sha.md
@@ -0,0 +1,8 @@
+---
+title: "/web3_sha"
+slug: "web3_sha"
+excerpt: "Returns Keccak-256 (not the standardized SHA3-256) of the given data."
+hidden: false
+createdAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 09:10:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/polygon-copy.md b/v0/RPC/polygon-copy.md
new file mode 100644
index 00000000..8a1c9127
--- /dev/null
+++ b/v0/RPC/polygon-copy.md
@@ -0,0 +1,8 @@
+---
+title: "BSC"
+slug: "polygon-copy"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:18:39 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:18:46 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/RPC/polygon.md b/v0/RPC/polygon.md
new file mode 100644
index 00000000..9b217e88
--- /dev/null
+++ b/v0/RPC/polygon.md
@@ -0,0 +1,8 @@
+---
+title: "Polygon"
+slug: "polygon"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:18:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:18:35 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/TROUBLESHOOTING/blockchain-operations-1.md b/v0/TROUBLESHOOTING/blockchain-operations-1.md
new file mode 100644
index 00000000..4f691c18
--- /dev/null
+++ b/v0/TROUBLESHOOTING/blockchain-operations-1.md
@@ -0,0 +1,8 @@
+---
+title: "Blockchain Operations"
+slug: "blockchain-operations-1"
+excerpt: ""
+hidden: false
+createdAt: "Mon Jan 29 2024 07:39:43 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:36:14 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/TROUBLESHOOTING/blockchain-operations-1/tron.md b/v0/TROUBLESHOOTING/blockchain-operations-1/tron.md
new file mode 100644
index 00000000..b5537791
--- /dev/null
+++ b/v0/TROUBLESHOOTING/blockchain-operations-1/tron.md
@@ -0,0 +1,8 @@
+---
+title: "TRON"
+slug: "tron"
+excerpt: ""
+hidden: false
+createdAt: "Wed Jan 31 2024 11:38:39 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 08:36:14 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/TROUBLESHOOTING/contacting-support.md b/v0/TROUBLESHOOTING/contacting-support.md
new file mode 100644
index 00000000..e2fe60da
--- /dev/null
+++ b/v0/TROUBLESHOOTING/contacting-support.md
@@ -0,0 +1,34 @@
+---
+title: "Contacting Support"
+slug: "contacting-support"
+excerpt: ""
+hidden: true
+createdAt: "Mon Jan 29 2024 14:11:54 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Jan 29 2024 14:14:00 GMT+0000 (Coordinated Universal Time)"
+---
+Should you come across issues while using Tatum services, you may reach out to our Support team.
+
+## Step_1
+
+We update the core API, KMS, and our SDK regularly. Make sure you have the latest update release and verify if the issue persists.
+
+## Step_2
+
+1. **Create a Ticket**: [Submit a ticket to our support team](https://support.tatum.io/support/home) with a brief subject line naming the issue or bug.
+2. **Provide Detailed Information**: In your ticket, please provide the following information:
+ - **Problem Statement**: A brief description of the issue and or Use Case you have in mind. Include:
+ - **Environment**: Testnet or Mainnet
+ - **Timestamp**: When the issue or bug happened. E.g., 2023.01.12 - 15:00 GMT (YYYY.MM.DD)
+ - **Expected Outcome**: A clear explanation of what the expected behavior should have been.
+ Steps to Reproduce: Detailed instructions, including a list of cURLs with Headers, Payloads, and its Response Bodies, that show all the steps required to reproduce the issue from start to finish.
+ - **Add Relevant Screenshots or Videos**: If possible, include screenshots or videos that demonstrate the issue you are encountering. This will help us understand and resolve the issue more quickly.
+
+> 📘 As of the writing of this article, Tatum does not have an active bug bounty program. Should this change, our documentation will be revised accordingly.
+
+## Discharge of Responsibility
+
+You must keep your `privateKey`(s) and `mnemonics`/seed phrases confidential and secure at all times. Sharing this information with anyone can result in serious consequences such as the loss of your funds. Your private keys and mnemonics give full access to your funds, and once they are shared, you lose control over your assets.
+
+No legitimate `Tatum staff member` will ever ask for your private keys or mnemonics. If you are asked for this information, it is most likely a scam attempt and you should immediately report it. Your security is of the utmost importance, and we highly encourage you to never share your private keys or mnemonics with anyone, under any circumstances.
+
+> 🚧 It is your responsibility to safeguard your Private Keys and mnemonics/seed phrases and protect them from unauthorized access.
diff --git a/v0/TROUBLESHOOTING/nfts.md b/v0/TROUBLESHOOTING/nfts.md
new file mode 100644
index 00000000..ae3b5c2d
--- /dev/null
+++ b/v0/TROUBLESHOOTING/nfts.md
@@ -0,0 +1,8 @@
+---
+title: "NFTs"
+slug: "nfts"
+excerpt: ""
+hidden: false
+createdAt: "Fri Jan 26 2024 08:48:30 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jan 26 2024 08:48:30 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v0/TROUBLESHOOTING/nfts/nft-polygon-matic-transaction-pending.md b/v0/TROUBLESHOOTING/nfts/nft-polygon-matic-transaction-pending.md
new file mode 100644
index 00000000..99935c69
--- /dev/null
+++ b/v0/TROUBLESHOOTING/nfts/nft-polygon-matic-transaction-pending.md
@@ -0,0 +1,28 @@
+---
+title: "NFT - Transaction Pending"
+slug: "nft-polygon-matic-transaction-pending"
+excerpt: ""
+hidden: false
+createdAt: "Fri Jan 26 2024 08:50:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jan 26 2024 13:13:22 GMT+0000 (Coordinated Universal Time)"
+---
+After minting an NFT via the v3 REST API you may get a successful response body with a transaction hash.
+
+However, when checking the transaction details on the blockchain you may get:
+
+```Text JSON
+Pending - "This txn hash was found in our secondary node and should be picked up by our indexer in a short while."
+HTML
+```
+
+And minutes later:
+
+```Text JSON
+"Sorry, We are unable to locate this TxnHash"
+```
+
+**Good to know**
+
+This happens when the transaction didn’t make it through, most likely because you used the wrong nonce or wrong sequence index.
+
+If you didn’t use a manual gas or nonce, the node dropped your transaction from the Mempool TTL for our nodes.
diff --git a/v1.0/Blockchain Abstraction/blockchain-abstraction.md b/v1.0/Blockchain Abstraction/blockchain-abstraction.md
new file mode 100644
index 00000000..20caa2df
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/blockchain-abstraction.md
@@ -0,0 +1,17 @@
+---
+title: "Overview"
+slug: "blockchain-abstraction"
+excerpt: ""
+hidden: false
+createdAt: "Tue Feb 06 2024 16:27:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 26 2024 21:28:20 GMT+0000 (Coordinated Universal Time)"
+---
+The Blockchain Abstraction Set of Products aim to enable you as a developer to provide chain less experience to users if your applications, you can use Blockchain Abstraction product to achieve things like :
+
+1. Wallet less Experience for users, where they never know they have a wallet or are interacting with blockchain and
+ 1. You hold their keys (KMS)
+ 2. Tatum hold's the keys and you can export as you need (Custodial)
+2. Gas Less experience where you can pay the gas costs for your users (Gas Pump)
+3. Minting NFT's for your users and transferring to their wallets or wallet-less (see kms above) (NFT Express)
+4. Transaction Simulation where users can see what change a transaction could bring in to their balances (Transaction Simulator).
+5. OffChain - OnChain Synced ledger to enable high volume Micro transactions which are settled in 1 transaction for onramp & 1 for offramp to save time and gas. (Virtual Accounts).
diff --git a/v1.0/Blockchain Abstraction/custodial.md b/v1.0/Blockchain Abstraction/custodial.md
new file mode 100644
index 00000000..40c6d08f
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/custodial.md
@@ -0,0 +1,11 @@
+---
+title: "💻 Custodial"
+slug: "custodial"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:35:26 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:39:00 GMT+0000 (Coordinated Universal Time)"
+---
+Custodial API is a set of operations, which allows you to work with managed blockchain addresses without having its private key. You can easily create new managed address and export its details - with private key as well - once required.
+
+- [API Reference](/reference/custodialcreatewallet)
diff --git a/v1.0/Blockchain Abstraction/gas-pump-1.md b/v1.0/Blockchain Abstraction/gas-pump-1.md
new file mode 100644
index 00000000..3cb2c46b
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/gas-pump-1.md
@@ -0,0 +1,25 @@
+---
+title: "💶 Gas Pump"
+slug: "gas-pump-1"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:34:58 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:36:45 GMT+0000 (Coordinated Universal Time)"
+---
+As the owner of a custodial application (for example, a crypto exchange), every time you want to send assets from one of your user’s address, you have to calculate the gas fees, then send that amount to their address (a transaction that also incurs gas fees), and finally send the assets from their address. Two transactions incur gas fees and can result in minuscule differences of crypto "dust" remaining on user addresses. If you have thousands or millions of addresses, this method creates an enormous amount of work and fees for you as a custodial provider.
+
+Gas Pump helps you manage gas fees in your custodial application in a more efficient way: gas fees for any transaction made by your customers are automatically deducted from a dedicated address (referred to as "master address") instead of the customer's address. This eliminates the need to send crypto to each customer's address to pay for gas fees.
+
+**Gas Pump supports the following blockchains:**
+
+| Network |
+| :-------------- |
+| BNB Smart Chain |
+| Celo |
+| Ethereum |
+| Harmony |
+| Klaytn |
+| Polygon |
+| TRON |
+
+- [API Reference](/reference/precalculategaspumpaddresses)
diff --git a/v1.0/Blockchain Abstraction/nft-express.md b/v1.0/Blockchain Abstraction/nft-express.md
new file mode 100644
index 00000000..564186d1
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/nft-express.md
@@ -0,0 +1,23 @@
+---
+title: "🐒 NFT Express"
+slug: "nft-express"
+excerpt: "Mint NFTs without coding or owning crypto"
+hidden: false
+createdAt: "Thu Mar 07 2024 13:34:37 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:41:16 GMT+0000 (Coordinated Universal Time)"
+---
+The Tatum platform already allows you to create your own NFTs on multiple blockchains without having to learn Solidity or create your own smart contracts. Anyone can create NFTS with just a few lines of code and mint NFTs in minutes.
+
+However, to actually use NFTs and put them to work, mint them, for example, there are issues to consider before you start:
+
+- **You must buy and hold crypto to pay for the gas fees.**
+ This can lead to regulatory difficulties for enterprises. Some banks may even freeze your account if you try to buy crypto.
+- **You need to hold crypto on every blockchain on which you want to mint NFTs.**
+ This can be a logistical challenge when minting NFTs on a mass scale.
+- **You need to deploy smart contracts to mint NFTs on each blockchain.**
+ This can be both complicated and expensive.
+- **You need to deal with security issues with private keys to mint NFTs.**
+- **You need to address performance issues**
+ Minting a single NFT is OK. But can you mint one million NFTs in 24 hours?
+
+[API Reference](/reference/nftminterc721#NftExpress)
diff --git a/v1.0/Blockchain Abstraction/tatum-key-management-system-kms.md b/v1.0/Blockchain Abstraction/tatum-key-management-system-kms.md
new file mode 100644
index 00000000..71d4add9
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/tatum-key-management-system-kms.md
@@ -0,0 +1,16 @@
+---
+title: "🔑 KMS"
+slug: "tatum-key-management-system-kms"
+excerpt: "Tatum Key Management System (KMS)"
+hidden: false
+createdAt: "Tue Feb 06 2024 18:17:27 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:43:43 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum Key Management System (KMS) is a comprehensive solution for building custodial applications. In custodial applications, you control your application’s end-users’ private keys and wallet mnemonics. Blockchain transactions are signed locally, and sensitive data is not sent over the Internet.
+
+With KMS, you can easily build and scale custodial apps, provide the highest level of security for your users, and allow them to use blockchain technology without having to deal with private keys and mnemonics. End-users can simply log in to your app with their credentials, and KMS takes care of the rest.
+
+# What does KMS do?
+
+- KMS keeps mnemonics and private keys safe.
+- KMS periodically pulls pending transactions to sign from Tatum Cloud, signs them locally using stored private keys, and broadcasts them to the blockchain.
diff --git a/v1.0/Blockchain Abstraction/tatum-key-management-system-kms/kms-download-and-install-steps.md b/v1.0/Blockchain Abstraction/tatum-key-management-system-kms/kms-download-and-install-steps.md
new file mode 100644
index 00000000..59a00541
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/tatum-key-management-system-kms/kms-download-and-install-steps.md
@@ -0,0 +1,81 @@
+---
+title: "Download and Install KMS"
+slug: "kms-download-and-install-steps"
+excerpt: ""
+hidden: false
+createdAt: "Sun Feb 11 2024 15:34:57 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:15:16 GMT+0000 (Coordinated Universal Time)"
+---
+# Download KMS
+
+- **macOS**: Natively or via [Docker](https://hub.docker.com/repository/docker/tatumio/tatum-kms)
+- **Unix**: Natively or via [Docker](https://hub.docker.com/repository/docker/tatumio/tatum-kms)
+- **Ms Windows**: `Only` via [Docker](https://hub.docker.com/repository/docker/tatumio/tatum-kms)
+
+> 📘 We recommend that you run KMS from the [Docker image](https://hub.docker.com/repository/docker/tatumio/tatum-kms) regardless of the operating system used.
+
+> 🚧 Tatum KMS should be installed in the Deny-From-All environment to meet the highest security standards.
+
+# Install KMS
+
+## From npm
+
+1. Install KMS globally:
+ ```Text CLI
+ npm i -g @tatumio/tatum-kms
+ //or
+ yarn global add @tatumio/tatum-kms
+ ```
+2. Use `.env `file to configure Tatum KMS
+ 1. via `--env-file=/path/to/.env`
+ ```Text CLI
+ tatum-kms --env-file=/path/to/.env getaddress 11111111-1111-1111-1111-111111111111 0
+ ```
+ 2. via environment variables directly
+ ```Text CLI
+ TATUM_API_KEY=XXXXX-YOUR-API-KEY tatum-kms --help
+ ```
+ 3. via predefined environment vars on global level
+ ```Text CLI
+ export TATUM_API_KEY=XXXXX-YOUR-API-KEY
+ tatum-kms --help
+ ```
+ > 🚧 IMPORTANT! NodeJS >=14 and npm@6 are required. KMS does not work on npm@7.
+
+## From Docker
+
+1. Pull the `tatum-kms` image:
+ ```Text CLI
+ docker pull tatumio/tatum-kms
+ ```
+2. Navigate to the home directory:
+ ```Text CLI
+ cd $HOME
+ ```
+3. Use pre-created `.env` file to configure Tatum KMS via `--env-file .env`
+4. Map the Docker volume to the local storage (your home folder).
+ 1. For more details, refer to the [Docker user documentation](https://docs.docker.com/storage/volumes/).
+ 2. Once you have mapped the Docker volume, KMS is ready to be run as a Docker container.
+
+To interactively communicate with KMS and run various [KMS commands](https://github.com/tatumio/tatum-kms?tab=readme-ov-file#kms-commands), use the `docker run` command:
+
+```Text CLI
+docker run -it --env-file .env -v $HOME:/root/.tatumrc tatumio/tatum-kms --help
+docker run -it --env-file .env -v $HOME:/root/.tatumrc tatumio/tatum-kms generatemanagedwallet BTC
+docker run -it --env-file .env -v $HOME:/root/.tatumrc tatumio/tatum-kms storemanagedprivatekey BTC
+
+//NOTE: You can shorten the command syntax and use it as follows:
+docker run ${COMMON_PARAMS} tatumio/tatum-kms generatemanagedwallet BTC
+//where COMMON_PARAMS can be exported as all the flags necessary for running the container.
+```
+
+# Good to know
+
+1. It is possible to store private keys locally or using an external service:
+ 1. [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/)
+ 2. [VGS](https://www.verygoodsecurity.com/)
+ 3. [AWS Secrets Management](https://aws.amazon.com/secrets-manager/)
+2. After you generate and store the wallets you want to work with, enable daemon mode. Daemon mode periodically checks for pending transactions to sign.
+3. Every pending transaction has a `signatureId`. When a pending transaction matches a stored wallet, it is signed locally and sent to the blockchain. Your wallet data are stored only in memory.
+
+> 📘 KMS supports the 4 eye control mechanism, where pending transactions are controlled in Tatum and the customer system. By default, KMS checks for the pending transactions every 5 seconds using the following [REST API call](https://apidoc.tatum.io/tag/Key-Management-System/#operation/GetPendingTransactionsToSign).
diff --git a/v1.0/Blockchain Abstraction/tatum-key-management-system-kms/kms-use-case-and-functionalities.md b/v1.0/Blockchain Abstraction/tatum-key-management-system-kms/kms-use-case-and-functionalities.md
new file mode 100644
index 00000000..bd819892
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/tatum-key-management-system-kms/kms-use-case-and-functionalities.md
@@ -0,0 +1,57 @@
+---
+title: "Use Case and Functionalities"
+slug: "kms-use-case-and-functionalities"
+excerpt: ""
+hidden: false
+createdAt: "Sun Feb 11 2024 15:52:01 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:16:54 GMT+0000 (Coordinated Universal Time)"
+---
+# How does KMS Work?
+
+KMS runs locally on your server and provides security for generating wallets, addresses, private keys, and signing transactions securely. KMS stores all your mnemonics and private keys in a wallet storage file. This storage file is an AEC encrypted file, for which only you know the encryption key.
+
+Every wallet stored inside your KMS instance has a unique identifier, called signatureId. This signatureId is used in communication with Tatum API and represents the wallet used by the specific operation. When you generate and store all the wallets you want to work with, you then enable the daemon mode in the KMS. This daemon mode periodically checks for pending transactions to sign.
+
+**Summary:**
+
+- When you generate a wallet with KMS, it creates a signature ID that is used in place of the wallet’s mnemonic.
+- When you generate a private key to an address, it creates a signature ID to be used in place of the private key.
+- When you send API requests to Tatum you only have to remember to replace two fields:
+ - `mnemonic` -> `signatureId` (of the wallet’s mnemonic phrase) - It's best to keep track of the "index"
+ - `fromPrivateKey` -> `signatureId` (of the private key)
+
+## There are the following options for how Tatum handles private keys to blockchain addresses:
+
+- Sending private keys/mnemonic seeds to Tatum's REST API directly - This is not recommended in the production environment, and it should be used in a testnet only. Tatum never stores any private keys or mnemonic seeds.
+- **Using Tatum libraries** to create wallets and sign transactions locally on a backend - [JavaScript](https://github.com/tatumio/tatum-js)
+- **Using Tatum KMS**, an external tool to securely generate and store private keys and use them to sign transactions locally. This is the safest and recommended way of working with private keys.
+
+# KMS Operation Modes
+
+## KMS provides two modes of operation:
+
+- **CLI mode**: used to generate wallets or private keys, typically for the initial setup and one-time operations.
+- **Daemon mode**: periodically pulls pending transactions from the Tatum API, signs transactions locally, and broadcasts the transactions to the blockchain.
+
+## KMS works with three types of signature IDs:
+
+- **Private key-based** signature IDs
+ When a private key is required to sign an operation, you must replace `privateKey` with `signatureId` matching the signature ID of the mnemonic.
+- **mnemonic-based** signature IDs (intended for Virtual Accounts)
+ When a mnemonic is required to sign an operation, you must replace the `mnemonic` with the `signatureId` matching the signature ID of the mnemonic.
+- **mnemonic && index** based signature IDs
+ When a mnemonic && index are required to sign an operation, you must replace the `mnemonic` with the `signatureId` matching the signature ID of the mnemonic as well its index.
+
+## PrivateKey and Mnemonic caveats - storage limits
+
+- **Mnemonic-based**: You could assign one (1) `signatureId` per mnemonic. To support this setup, we'd suggest building a database to store your customers' data, including but not limited to their associated IDs, KMS signature IDs, and the related index matching with their address/PrivateKey within the mnemonic in KMS.
+ With a limit of 25.000 mnemonics per API Key in KMS, where each mnemonic can contain up to 2^32 addresses, you could safely store and sign operations for **25K x 2^32 distinctive addresses/customers**.
+- Private Key-based: You could assign one (1) `signatureId` per each individual PrivateKey. With a limit of 25.000 Private Keys per API Key in KMS, you could safely store and sign operations for **25K distinctive addresses/customers**.
+
+> 📘 Each API key assigned to KMS supports up to 25.000 signatureId. You can reuse a seed/mnemonic for different chains. However, each chain requires a distinctive signatureId.
+
+# KMS Functions
+
+- Get a list of pending transactions to sign - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Key-Management-System/#operation/GetPendingTransactionsToSign)
+- Complete pending transactions to sign- [v3 REST API endpoint](https://apidoc.tatum.io/tag/Key-Management-System/#operation/CompletePendingSignature)
+- Delete transactions waiting to be signed- [v3 REST API endpoint](https://apidoc.tatum.io/tag/Key-Management-System/#operation/DeletePendingTransactionToSign)
diff --git a/v1.0/Blockchain Abstraction/transaction-simulator.md b/v1.0/Blockchain Abstraction/transaction-simulator.md
new file mode 100644
index 00000000..303c867f
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/transaction-simulator.md
@@ -0,0 +1,12 @@
+---
+title: "🧾 Transaction Simulator"
+slug: "transaction-simulator"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:35:13 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 14:21:11 GMT+0000 (Coordinated Universal Time)"
+---
+The Transaction Simulator is designed to bolster the efficiency and security of blockchain transactions. It offers crucial capabilities such as simulating native currency and ERC20 transfers. By leveraging these simulations, developers can estimate fees accurately, enhance the safety of their application and optimize transaction parameters.
+
+- API Reference N.A.
+- [SDK Reference](/docs/transaction-simulator)
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts.md b/v1.0/Blockchain Abstraction/virtual-accounts.md
new file mode 100644
index 00000000..8789ad3b
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts.md
@@ -0,0 +1,11 @@
+---
+title: "🪙 Virtual Accounts"
+slug: "virtual-accounts"
+excerpt: "Offchain Asset Management"
+hidden: false
+createdAt: "Tue Feb 06 2024 16:28:03 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:28:57 GMT+0000 (Coordinated Universal Time)"
+---
+Virtual accounts allow you to build an off-chain exchange type of ledger parallel to the blockchain and bypass the slow and often congested transaction mechanism of the blockchain itself.
+
+If your customers want to send their crypto outside of your application, they can withdraw it from their virtual account to their blockchain deposit addresses.
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts/adding-more-tokens.md b/v1.0/Blockchain Abstraction/virtual-accounts/adding-more-tokens.md
new file mode 100644
index 00000000..51bc9937
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts/adding-more-tokens.md
@@ -0,0 +1,183 @@
+---
+title: "Adding more tokens"
+slug: "adding-more-tokens"
+excerpt: "Tatum Virtual Accounts can support any existing or new ERC-20 (or compatible) token which is not included out of the box. This guide explains how."
+hidden: false
+createdAt: "Tue Feb 06 2024 16:31:22 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 26 2024 07:42:00 GMT+0000 (Coordinated Universal Time)"
+---
+Adding more ERC-20 (or compatible) tokens to your Virtual Account ledger can be done with a few steps. You will need to create a new Virtual Account and register a new Virtual Currency representing the token inside your ledger.
+
+To do so, there are a few parameters required like "`symbol`", "`supply`" (of a selected blockchain deposit address), "`digits`", "`name`" and "`tokenAddress`".
+
+# Steps
+
+The following guide was executed in the ETH-Testnet (Sepolia). All steps are also applicable to Mainnet.
+
+**Example - key parameters:**
+
+```json JSON
+//Token to add in the Virtual Account ledger
+"symbol": "TTOKEN",
+"decimals": 18,
+"description": "Tatum_Token", //The token "name" as seen in the blockchain
+"TokenAddress":"0xCf15c60f66e49d3C41a98717eb0f40AcD764DD57",
+
+//Blockchain deposit address - acting as the initial "token holder" for the Virtual Account
+"address": "0x7a8c2f6f3bd2dc45812e5daae0373eaef2e2dddd",
+"supply": "50000", //At the time of linking the EOA to the VA, the address was holding 500000 tokens
+```
+
+> 📘 Token details are available in the Ethereum (Sepolia) chain at [the following link](https://sepolia.etherscan.io/token/0xCf15c60f66e49d3C41a98717eb0f40AcD764DD57).
+
+## Step_1:
+
+Create a new Virtual Account with the token details - v3 REST API endpoint:
+
+- [EVM](https://apidoc.tatum.io/tag/Blockchain-operations#operation/registerErc20Token) - `/v3/offchain/token/:chain`
+- [TRON](https://apidoc.tatum.io/tag/Blockchain-operations#operation/createTrc) - `/v3/offchain/tron/trc`
+
+```json cURL
+curl --location '
+--header 'Content-Type: application/json'
+--header 'x-api-key: {testnet_API_KEY}'
+--data '{
+ "symbol": "TTOKEN",
+ "supply": "50000",
+ "decimals": 18,
+ "description": "Tatum_Token",
+ "basePair": "USD",
+ "address": "0x7a8c2f6f3bd2dc45812e5daae0373eaef2e2dddd",
+ "customer":{
+ "externalId": "EX_CUST_1"
+ }
+}'
+//response:
+{
+ "accountId": "646dfe380b4f44ca693f12b1",
+ "address": "0x7a8c2f6f3bd2dc45812e5daae0373eaef2e2dddd"
+}
+```
+
+**Payload details:**
+
+- “`Symbol`”: must be the same as the token to add. Check the token SmartContract details
+- “`Decimals`”: must be the same as the token to add. Check the token SmartContract details
+- “`Supply`”: Considering we are adding a blockchain address with potentially existing funds as the Virtual account deposit address, for data consistency, it is best to match the amount available in the blockchain address at the time of this operation, so the Virtual Account off-chain balance will match with the amount of on-chain balance of the deposit address.
+- “`Description`” is the name of the token. Check the token SmartContract details
+- “`basePair`” by default 1:1. Virtual Account transactions value will be calculated according to this base pair.
+- “`Address`”: the blockchain address where the on-chain "`supply`" is located. --> Acts as any other "deposit address" for a Virtual Account. Make sure this address holds as much coin as you set up in the "`supply`" param. **You are expected to control the PrivateKey of this address**
+- "`externalId`": This optional parameter is intended for you to track the account on your DataBase.
+
+## Step_2:
+
+Verify that the Virtual Account has been created - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Account#operation/getAccountByAccountId).
+The status at this point should be “`frozen`” with “`availableBalance`” at zero (0).
+
+```json cURL
+curl --location 'https://api.tatum.io/v3/ledger/account/646dfe380b4f44ca693f12b1' \
+--header 'x-api-key: {testnet_API_KEY}'
+//response:
+{
+ "balance": {
+ "accountBalance": "50000",
+ "availableBalance": "0"
+ },
+ "active": true,
+ "frozen": true,
+ "currency": "TTOKEN",
+ "xpub": null,
+ "customerId": "63889d0395bfe9fd220ffdf0",
+ "accountingCurrency": "USD",
+ "id": "646dfe380b4f44ca693f12b1"
+}
+```
+
+## Step_3:
+
+Register the Token via the "`symbol`" and the "`tokenAddress`" in your Virtual Account ledger - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-operations#operation/storeTokenAddress):
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/offchain/token/TTOKEN/0xCf15c60f66e49d3C41a98717eb0f40AcD764DD57' \
+--header 'x-api-key: {testnet_API_KEY}'
+//response:
+//204 No content
+```
+
+## Step_4:
+
+Verify that the Virtual Account has been "unfrozen" - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Account/#operation/getAccountByAccountId):
+
+```json cURL
+curl --location 'https://api.tatum.io/v3/ledger/account/646dfe380b4f44ca693f12b1' \
+--header 'x-api-key: {testnet_API_KEY}'
+//response:
+{
+ "balance": {
+ "accountBalance": "50000",
+ "availableBalance": "50000" //This confirms the Virtual Account has been "unfrozen"
+ },
+ "active": true,
+ "frozen": false, //This confirms the Virtual Account has been "unfrozen"
+ "currency": "TTOKEN",
+ "xpub": null,
+ "customerId": "63889d0395bfe9fd220ffdf0",
+ "accountingCurrency": "USD",
+ "id": "646dfe380b4f44ca693f12b1"
+}
+```
+
+## Step_5 (optional)
+
+You may create any number of additional Virtual Accounts with the token you added - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Account/#operation/createAccount):
+
+```json cURL
+
+curl --location 'https://api.tatum.io/v3/ledger/account' \
+--header 'x-api-key: {testnet_API_KEY}' \
+--header 'Content-Type: application/json' \
+--data '{
+ "currency": "TTOKEN",
+ "xpub": "xpub6EMcUVjBn8qrftjMxinPS34ebPPHATDPkYvmxhex9H8rmwE4dTaiW94c3rZzBbk55WFoSspYCyQRSkMmGzDjDdyJNUpqtwq1ZGCDC7dgtjC",
+ "customer":{
+ "externalId": "EX_CUST_2"
+ }
+}'
+//response:
+{
+ "currency": "TTOKEN",
+ "active": true,
+ "balance": {
+ "accountBalance": "0",
+ "availableBalance": "0"
+ },
+ "frozen": false,
+ "xpub": "xpub6EMcUVjBn8qrftjMxinPS34ebPPHATDPkYvmxhex9H8rmwE4dTaiW94c3rZzBbk55WFoSspYCyQRSkMmGzDjDdyJNUpqtwq1ZGCDC7dgtjC",
+ "customerId": "638f4cfad2e6f3168bb11a40",
+ "accountingCurrency": "EUR",
+ "id": "646e040b0b4f44ca693f198e"
+}
+
+
+```
+
+**Payload details:**
+
+- "`currency`": Now we can use the symbol token we have added by following the previous steps.
+- "`xpub`" comes from a new and unused mnemonic generated to use with Virtual Accounts.
+
+## Step_6 (optional)
+
+Following the creation of an additional Virtual Account in Step_5, we will generate a deposit address - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-addresses/#operation/generateDepositAddress):
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/offchain/account/646e040b0b4f44ca693f198e/address' \
+--header 'x-api-key: {testnet_API_KEY}'
+//response:
+{
+ "xpub": "xpub6EMcUVjBn8qrftjMxinPS34ebPPHATDPkYvmxhex9H8rmwE4dTaiW94c3rZzBbk55WFoSspYCyQRSkMmGzDjDdyJNUpqtwq1ZGCDC7dgtjC",
+ "derivationKey": 1,
+ "address": "0xe29744c6de04d062e5785b2f35dc11e57610ab34",
+ "currency": "TTOKEN"
+}
+```
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts/on-chain-balance-management-and-withdrawals.md b/v1.0/Blockchain Abstraction/virtual-accounts/on-chain-balance-management-and-withdrawals.md
new file mode 100644
index 00000000..c6c89da2
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts/on-chain-balance-management-and-withdrawals.md
@@ -0,0 +1,51 @@
+---
+title: "On-chain Balance Management and Withdrawals"
+slug: "on-chain-balance-management-and-withdrawals"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 08 2024 13:36:28 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 26 2024 07:42:06 GMT+0000 (Coordinated Universal Time)"
+---
+## How Virtual Accounts balance works
+
+At a high level, the Virtual Account balance is the combination of two separate asset balance sources:
+
+- **On-chain**: From Blockchain deposit addresses
+- **Off-chain**: From Virtual Account trading
+
+> 🚧 Depending on Virtual Account trading activity, a blockchain deposit address attached to a Virtual Account may hold a lower or higher balance than what’s available on its Virtual Account.
+
+## On-chain asset balance management
+
+Handing transfers from Virtual Accounts to external blockchain addresses to your Exchange or Application, successfully and pain-free, requires thoughtful On-chain balance management.
+
+Trading across Virtual Accounts means that your On-chain balance increasingly spreads across the blockchain deposit addresses of your Exchange or Application. If left unchecked, your On-chain balance will become increasingly hard to track.
+
+### Virtual Accounts asset management can be handled in two ways:
+
+- Spread Asset Management (UTXO **only** recommended)
+- Centralized Asset Management (EVM recommended)
+
+## Spread Asset Management (UTXO only recommended)
+
+**For UTXO chains (like Bitcoin)**
+
+It's possible to sign a transaction with XPUB and mnemonic. UTXOs under the XPUB will be checked automatically and a transaction will be built with a suitable XPUB with enough balance.
+
+**For EVM chains (like Ethereum)**
+
+You keep and maintain a complex database of all your Virtual Account balances and On-chain assets spread across all your blockchain deposit addresses.
+
+At the time to handle transfers from Virtual Accounts to the blockchain, depending on the On-chain balance available within each deposit address of a specific Virtual Account, you may need to find additional deposit addresses within your database across your customers to amount enough On-chain balance to transfer out.
+
+This method can require several blockchain transfers with different endpoint types.
+
+> 📘 Spread asset Management may offer a low cost in fees, applicable to UTXO chains. However, with EVM chains, it requires from you a complex database and back-end infrastructure to handle On-chain assets and withdrawals. Find the related article at the following link.
+
+## Centralized Asset Management (EVM recommended)
+
+You keep a relatively simple database of all your Virtual Accounts and you track On-chain deposits.
+
+After an incoming On-chain deposit from the blockchain to a deposit address of a Virtual Account, you transfer those On-chain assets to your Master Exchange address. Virtual Account withdrawals are handled via your Master Exchange Address.
+
+> 📘 Centralized asset Management has a higher cost in terms of fees. However, it requires from you a relatively easy database and back-end infrastructure to handle On-chain assets and withdrawals. Find the related article at the following link.
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts/supported-tokens-by-default.md b/v1.0/Blockchain Abstraction/virtual-accounts/supported-tokens-by-default.md
new file mode 100644
index 00000000..d05f545f
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts/supported-tokens-by-default.md
@@ -0,0 +1,57 @@
+---
+title: "Supported tokens (by default)"
+slug: "supported-tokens-by-default"
+excerpt: "Virtual Accounts support out of the box several ERC-20 (or compatible) tokens as Virtual Currencies. Here you can find the list."
+hidden: false
+createdAt: "Tue Feb 06 2024 16:30:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 26 2024 07:41:54 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum Virtual Accounts support natively a handful of tokens. You can find the list below.
+
+If you want your Virtual Accounts to work with a token that Tatum doesn't natively support, you can add it via [the following guide](https://tatumdocs.readme.io/docs/adding-unsupported-tokens).
+
+| Chain | VA Symbol | ContractAddress | Digits |
+| :---- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------- | :----- |
+| BSC | BBCH | [0x8ff795a6f4d97e7887c79bea79aba5cc76444adf](https://bscscan.com/token/0x8ff795a6f4d97e7887c79bea79aba5cc76444adf) | 18 |
+| BSC | BBTC | [0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c](https://bscscan.com/token/0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c) | 18 |
+| BSC | BDOT | [0x7083609fce4d1d8dc0c979aab8c869ea2c873402](https://bscscan.com/token/0x7083609fce4d1d8dc0c979aab8c869ea2c873402) | 18 |
+| BSC | BETH | [0x2170ed0880ac9a755fd29b2688956bd959f933f8](https://bscscan.com/token/0x2170ed0880ac9a755fd29b2688956bd959f933f8) | 18 |
+| BSC | BLTC | [0x4338665cbb7b2485a8855a139b75d5e34ab0db94](https://bscscan.com/token/0x4338665cbb7b2485a8855a139b75d5e34ab0db94) | 18 |
+| BSC | BUSD_BSC | [0xe9e7cea3dedca5984780bafc599bd69add087d56](https://bscscan.com/token/0xe9e7cea3dedca5984780bafc599bd69add087d56) | 18 |
+| BSC | BXRP | [0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe](https://bscscan.com/token/0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe) | 18 |
+| BSC | CAKE | [0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82](https://bscscan.com/token/0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82) | 18 |
+| BSC | GMC_BSC | [0xa6272359bc37f61af398071b65c8934aca744d53](https://bscscan.com/token/0xa6272359bc37f61af398071b65c8934aca744d53) | 18 |
+| BSC | RMD | [0x02888e65324a98219c26f292e7cd3e52ef39c5c2](https://bscscan.com/token/0x02888e65324a98219c26f292e7cd3e52ef39c5c2) | 18 |
+| BSC | USDC_BSC | [0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d](https://bscscan.com/token/0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d) | 18 |
+| BSC | WBNB | [0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c](https://bscscan.com/token/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c) | 18 |
+| CELO | CEUR | [0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73](https://celoscan.io/token/0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73) | 18 |
+| CELO | CUSD | [0x765DE816845861e75A25fCA122bb6898B8B1282a](https://celoscan.io/token/0x765DE816845861e75A25fCA122bb6898B8B1282a) | 18 |
+| ETH | BAT | [0x0d8775f648430679a709e98d2b0cb6250d2887ef](https://etherscan.io/token/0x0d8775f648430679a709e98d2b0cb6250d2887ef) | 18 |
+| ETH | BUSD | [0x4fabb145d64652a948d72533023f6e7a623c7c53](https://etherscan.io/token/0x4fabb145d64652a948d72533023f6e7a623c7c53) | 18 |
+| ETH | FREE | [0x2f141ce366a2462f02cea3d12cf93e4dca49e4fd](https://etherscan.io/token/0x2f141ce366a2462f02cea3d12cf93e4dca49e4fd) | 18 |
+| ETH | GMC | [0xa6272359bc37f61af398071b65c8934aca744d53](https://etherscan.io/token/0xa6272359bc37f61af398071b65c8934aca744d53) | 18 |
+| ETH | LATOKEN | [0xe50365f5d679cb98a1dd62d6f6e58e59321bcddf](https://etherscan.io/token/0xe50365f5d679cb98a1dd62d6f6e58e59321bcddf) | 18 |
+| ETH | LEO | [0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3](https://etherscan.io/token/0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3) | 18 |
+| ETH | LINK | [0x514910771af9ca656af840dff83e8264ecf986ca](https://etherscan.io/token/0x514910771af9ca656af840dff83e8264ecf986ca) | 18 |
+| ETH | MATIC_ETH | [0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0](https://etherscan.io/token/0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0) | 18 |
+| ETH | MKR | [0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2](https://etherscan.io/token/0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2) | 18 |
+| ETH | PAX | [0x8e870d67f660d95d5be530380d0ec0bd388289e1](https://etherscan.io/token/0x8e870d67f660d95d5be530380d0ec0bd388289e1) | 18 |
+| ETH | PAXG | [0x45804880de22913dafe09f4980848ece6ecbaf78](https://etherscan.io/token/0x45804880de22913dafe09f4980848ece6ecbaf78) | 18 |
+| ETH | REVV | [0x557b933a7c2c45672b610f8954a3deb39a51a8ca](https://etherscan.io/token/0x557b933a7c2c45672b610f8954a3deb39a51a8ca) | 18 |
+| ETH | SAND | [0x3845badade8e6dff049820680d1f14bd3903a5d0](https://etherscan.io/token/0x3845badade8e6dff049820680d1f14bd3903a5d0) | 18 |
+| ETH | TUSD | [0x0000000000085d4780B73119b644AE5ecd22b376](https://etherscan.io/token/0x0000000000085d4780B73119b644AE5ecd22b376) | 18 |
+| ETH | UNI | [0x1f9840a85d5af5bf1d1762f925bdaddc4201f984](https://etherscan.io/token/0x1f9840a85d5af5bf1d1762f925bdaddc4201f984) | 18 |
+| ETH | USDC | [0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48](https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48) | 6 |
+| ETH | USDT | [0xdac17f958d2ee523a2206206994597c13d831ec7](https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7) | 6 |
+| ETH | WBTC | [0x2260fac5e5542a773aa44fbcfedf7c193bc2c599](https://etherscan.io/token/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599) | 8 |
+| ETH | XCON | [0x0f237d5ea7876e0e2906034d98fdb20d43666ad4](https://etherscan.io/token/0x0f237d5ea7876e0e2906034d98fdb20d43666ad4) | 18 |
+| FLOW | FUSD | [A.3c5959b568896393.FUSD](https://www.flowdiver.io/contract/A.3c5959b568896393.FUSD) | ? |
+| MATIC | GAMEE | [0xcf32822ff397ef82425153a9dcb726e5ff61dca7](https://polygonscan.com/token/0xcf32822ff397ef82425153a9dcb726e5ff61dca7) | 18 |
+| MATIC | USDC_MATIC | [0x2791bca1f2de4661ed88a30c99a7a9449aa84174](https://polygonscan.com/token/0x2791bca1f2de4661ed88a30c99a7a9449aa84174) | 6 |
+| MATIC | USDC_MATIC_NATIVE | [0x3c499c542cef5e3811e1192ce70d8cc03d5c3359](https://polygonscan.com/token/0x3c499c542cef5e3811e1192ce70d8cc03d5c3359) | 6 |
+| MATIC | USDT_MATIC | [0xc2132d05d31c914a87c6611c10748aeb04b58e8f](https://polygonscan.com/token/0xc2132d05d31c914a87c6611c10748aeb04b58e8f) | 18 |
+| SOL | USDC_SOL | [EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v](https://explorer.solana.com/address/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) | 6 |
+| TRON | INRT_TRON | [TX66VmiV1txm45vVLvcHYEqPXXLoREyAXm](https://tronscan.org/#/token20/TX66VmiV1txm45vVLvcHYEqPXXLoREyAXm) | 2 |
+| TRON | USDT_TRON | [TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t](https://tronscan.org/#/contract/TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t) | 6 |
+
+> 📘 Find additional information in GitHub [at the following link](https://github.com/tatumio/tatum-js/blob/v2/packages/shared/core/src/lib/contract.common.ts).
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts/use-case-and-functionalities.md b/v1.0/Blockchain Abstraction/virtual-accounts/use-case-and-functionalities.md
new file mode 100644
index 00000000..d0055f5c
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts/use-case-and-functionalities.md
@@ -0,0 +1,95 @@
+---
+title: "Use Case and Functionalities"
+slug: "use-case-and-functionalities"
+excerpt: ""
+hidden: false
+createdAt: "Tue Feb 06 2024 16:29:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 26 2024 07:41:46 GMT+0000 (Coordinated Universal Time)"
+---
+Virtual accounts allow you to build an off-chain exchange type of ledger parallel to the blockchain and bypass the slow and often congested transaction mechanism of the blockchain itself.
+
+If your customers want to send their crypto outside of your application, they can withdraw it from their virtual account to their blockchain deposit addresses.
+
+> 🚧 This is intended as a self-custodial solution. You are expected to hold 1:1 asset liquidity between your off-chain ledger to your on-chain assets.
+
+## No blockchain fees for off-chain transfers
+
+Because transactions between virtual accounts do not happen on the blockchain, they do not incur blockchain transaction fees and happen instantly. This provides huge benefits for working with blockchains like Ethereum and Bitcoin, both of which have high transaction fees and slow transaction times.
+
+## Grouping multiple Virtual Accounts
+
+Multiple virtual accounts of different currencies can be grouped using a "customer ID". In this way, your customers can easily view the balances of all the currencies they hold with one API call, allowing you to build multi-currency wallets and various fintech applications.
+
+## Deposit addresses and automatic balance updates
+
+A virtual Account has at least one real blockchain address associated with it. This blockchain address is called “deposit address”.
+
+You can either connect an existing blockchain address (or addresses) to the virtual account or generate a new blockchain address and associate it with the account. In either case, the blockchain address becomes a deposit address for this virtual account.
+
+Virtual Accounts automatically scan associated deposit addresses for incoming transactions and update their own balances to reflect the assets received. Whenever any blockchain address connected to a Virtual Account receives an incoming transaction, the virtual account's balance will be updated to reflect the newly received funds.
+
+[block:image]
+{
+ "images": [
+ {
+ "image": [
+ "https://files.readme.io/4633730-ledger_and_off_chain.webp",
+ "",
+ "Virtual Account and deposit addresses"
+ ],
+ "align": "center",
+ "caption": "Virtual Account and deposit addresses"
+ }
+ ]
+}
+[/block]
+
+
+If you transfer assets from one virtual account to the other one, the total balance of all virtual accounts does not change.
+
+[block:image]
+{
+ "images": [
+ {
+ "image": [
+ "https://files.readme.io/bf416a9-va_transfers.webp",
+ "",
+ "Virtual Account off-chain transfers do not affect on-chain assets"
+ ],
+ "align": "center",
+ "caption": "Virtual Account off-chain transfers do not affect on-chain assets"
+ }
+ ]
+}
+[/block]
+
+
+## Single currency per Virtual Account
+
+Each virtual account is in a single currency. This can be either a cryptocurrency or a virtual fiat currency.
+
+Virtual accounts can be connected to blockchain addresses or represent virtual currencies that can be pegged to a fiat currency. Virtual accounts can be in Bitcoin or Ethereum, Euro or U.S. dollar. Using virtual currencies, you can use fiat and cryptocurrencies in the same way with the same API calls.
+
+Although each virtual account contains a single currency, it can be connected to multiple blockchain addresses for that currency.
+
+> 📘 Virtual accounts can only perform transactions with other virtual accounts of the same currency.
+
+## Running in the background
+
+When a customer transfers assets from their virtual account to a real blockchain address, they do not know where the assets are withdrawn from in the background.
+
+Imagine that you have three customers with their custodial accounts: **A**, **B,** and **C**, and each of them has a virtual account connected to the customer’s blockchain address.
+
+The following scenario takes place:
+
+1. **Customer_A** received 1 ETH.
+2. **Customer_A** transfers this 1 ETH to **Customer_B**.
+3. **Customer_B** receives 1 ETH and transfers it to **Customer_C**.
+4. **Customer_C** receives 1 ETH and uses it to pay for something (in other words, transfers it to a blockchain address that is outside of your custodial application).
+
+When **Customer_C** transfers 1 ETH to a blockchain address that is outside of your custodial application:
+
+- On the **Virtual Account level**, the amount is deducted from **Customer_C**'s virtual account. -> This is what the customer sees.
+- On the **Blockchain level**, the amount is deducted from **Customer_A**'s blockchain address because **Customer_A** is the one who owned that 1 ETH in the beginning. -> This is what you see as the owner of the custodial application.
+
+> 📘 Tatum Virtual Accounts back-end take care of calculating the balance and tracking the assets.
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts/va-notifications.md b/v1.0/Blockchain Abstraction/virtual-accounts/va-notifications.md
new file mode 100644
index 00000000..2039623e
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts/va-notifications.md
@@ -0,0 +1,14 @@
+---
+title: "Notifications for Virtual Accounts"
+slug: "va-notifications"
+excerpt: ""
+hidden: false
+createdAt: "Sun Feb 25 2024 12:28:15 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 26 2024 07:42:36 GMT+0000 (Coordinated Universal Time)"
+---
+Virtual Accounts support v3 REST API notifications:
+
+- `ACCOUNT_PENDING_BLOCKCHAIN_TRANSACTION` - supported only for: BCH, BTC, DOGE, ETH, and LTC accounts.
+- `ACCOUNT_INCOMING_BLOCKCHAIN_TRANSACTION` - supported for the rest of the chains.
+
+> 📘 Additional information is available in the v3 REST API docs - [Notifications](https://apidoc.tatum.io/tag/Notification-subscriptions/#operation/createSubscription).
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts/va-order-book-future-trade-and-sealdate.md b/v1.0/Blockchain Abstraction/virtual-accounts/va-order-book-future-trade-and-sealdate.md
new file mode 100644
index 00000000..20914bd4
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts/va-order-book-future-trade-and-sealdate.md
@@ -0,0 +1,11 @@
+---
+title: "Order Book: Future Trade and sealDate"
+slug: "va-order-book-future-trade-and-sealdate"
+excerpt: ""
+hidden: false
+createdAt: "Sun Feb 11 2024 22:42:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 26 2024 07:42:23 GMT+0000 (Coordinated Universal Time)"
+---
+When creating a Future Trade via Order Book, `sealDate` acts as the timestamp on which the buyer and seller finalize the transaction and enter into the contractual obligation to buy or sell the underlying asset at a specified amount and price in the future.
+
+With Future Trading, once the `sealDate` is up, the Order Book matchmaker will be allowed to execute the trading request.
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts/withdrawing-assets-from-a-master-exchange-address.md b/v1.0/Blockchain Abstraction/virtual-accounts/withdrawing-assets-from-a-master-exchange-address.md
new file mode 100644
index 00000000..1d335f4c
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts/withdrawing-assets-from-a-master-exchange-address.md
@@ -0,0 +1,44 @@
+---
+title: "Withdrawing Assets from a Master Exchange Address"
+slug: "withdrawing-assets-from-a-master-exchange-address"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 08 2024 14:08:18 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 26 2024 07:42:17 GMT+0000 (Coordinated Universal Time)"
+---
+There are two withdrawal methods from a Virtual Account:
+
+- From each Virtual Account deposit address
+- From a Master Exchange Address
+
+## How to withdraw assets from a Master Exchange Address
+
+1. **Store information about withdrawal**
+ 1. Check the id of the Virtual Account, the available balance or the UTXO balance
+ 2. Decrease the **amount** and **fees** from the Virtual Account
+ 3. Prepare transaction to broadcast transfer to the blockchain
+2. **Blockchain transfer**
+ 1. Standard blockchain transfer from address to address
+ 2. Verify the result of the transfer
+3. **Complete/Rollback**
+ 1. IF blockchain transfer fails - rollback VA balance
+ 2. ELSE complete withdrawal
+
+### Example:
+
+1. `User_A: VirtualAccount_A` balance is 0 MATIC.
+2. `User_A: DepositAddress_A` connected to `VirtualAccount_A` receives 3 MATIC.
+ 1. `VirtualAccount_A` balance is now 3 MATIC.
+3. `Exchange_Owner`: Transfers 3 MATIC from `DepositAddress_A` to `MasterExchangeAddress`.
+ 1. This is a standard blockchain transfer via: [Send MATIC from account to account](https://apidoc.tatum.io/tag/Polygon/#operation/PolygonBlockchainTransfer)
+ 2. `VirtualAccount_A` balance remains 3 MATIC.
+4. `User_A`: Withdraws and transfers 3 MATIC from VirtualAccount_A to VirtualAccount_B owned by User_B.
+ 1. Endpoint: [Send payment](https://apidoc.tatum.io/tag/Transaction/#operation/sendTransaction)
+ 2. `VirtualAccount_A` balance is now 0 MATIC.
+ 3. `VirtualAccount_B` balance is now 3 MATIC.
+5. `User_B`: Withdraws to transfer out 3 MATIC from `VirtualAccount_B` to an unrelated blockchain address.
+ 1. `Exchange_Owner`: [Store withdrawal](https://apidoc.tatum.io/tag/Withdrawal/#operation/storeWithdrawal) --> `/v3/offchain/withdrawal`
+ 2. `Exchange_Owner`: Standard blockchain transfer via: [Send MATIC from account to account](https://apidoc.tatum.io/tag/Polygon/#operation/PolygonBlockchainTransfer)
+ 3. `Exchange_Owner`: Completes or Cancels the withdrawal
+ 1. [Complete withdrawal](https://apidoc.tatum.io/tag/Withdrawal/#operation/completeWithdrawal) --> `/v3/offchain/withdrawal/{id}/{txId}`
+ 2. [Cancel withdrawal](https://apidoc.tatum.io/tag/Withdrawal/#operation/cancelInProgressWithdrawal) --> `/v3/offchain/withdrawal/{id}`
diff --git a/v1.0/Blockchain Abstraction/virtual-accounts/withdrawing-assets-from-virtual-accounts.md b/v1.0/Blockchain Abstraction/virtual-accounts/withdrawing-assets-from-virtual-accounts.md
new file mode 100644
index 00000000..404d1df1
--- /dev/null
+++ b/v1.0/Blockchain Abstraction/virtual-accounts/withdrawing-assets-from-virtual-accounts.md
@@ -0,0 +1,32 @@
+---
+title: "Withdrawing Assets: Introduction"
+slug: "withdrawing-assets-from-virtual-accounts"
+excerpt: ""
+hidden: false
+createdAt: "Tue Feb 06 2024 16:32:52 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 26 2024 07:42:10 GMT+0000 (Coordinated Universal Time)"
+---
+Setting up Virtual Accounts is similar for all the supported blockchains.
+
+However, withdrawing funds from a Virtual Account works differently depending on what blockchain the Virtual Account is created for.
+
+## UTXO (like Bitcoin) blockchains
+
+On UTXO-based blockchains such as Bitcoin, Bitcoin Cash, Dogecoin, and Litecoin, withdrawing funds from Virtual Accounts is "easier" when **the Virtual Accounts are associated with the same extended public key (xpub)**.
+
+This way, all the deposit addresses that you generate for those virtual accounts are associated with the same xpub, and you do not have to track all UTXO transactions. During the withdrawal, all the deposit addresses are automatically scanned for incoming deposits that are then used as a source of the withdrawal transaction.
+
+**BTC Example:**
+
+To withdraw funds from BTC Virtual Accounts associated with the same xpub, you can use [the following v3 REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-operations/#operation/BtcTransfer) for sending the funds from a BTC-based Virtual Account to the blockchain.
+
+## EVM (like Ethereum) blockchains
+
+On EVM-compatible blockchains such as Ethereum, BNB Smart Chain, Celo, and so on, you can choose from the following approaches to withdrawals:
+
+- Withdraw assets from each blockchain deposit address separately. (**NOT recommended**)
+- Centralize assets across all deposit addresses into a "Master Exchange blockchain address" and withdraw from there. (**Recommended**)
+
+## BNB Beacon Chain, Stellar, and XRPL
+
+On BNB Beacon Chain, Stellar, and XRPL, one deposit address is used and customers are identified by blockchain-specific parameters such as `memo`, `message`, and `DestinationTag`, accordingly.
diff --git a/v1.0/Blockchain Data/blockchain-data.md b/v1.0/Blockchain Data/blockchain-data.md
new file mode 100644
index 00000000..27afa70a
--- /dev/null
+++ b/v1.0/Blockchain Data/blockchain-data.md
@@ -0,0 +1,13 @@
+---
+title: "Overview"
+slug: "blockchain-data"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 12:14:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 12:59:22 GMT+0000 (Coordinated Universal Time)"
+---
+**Tatum Data API is a comprehensive solution designed for developers to easily access on-chain data such as token balances, NFT owners, and metadata, all through a suite of user-friendly APIs.**
+
+With Tatum Data API, developers can seamlessly integrate blockchain functionality into their applications, enabling them to deliver innovative, web3 solutions. This powerful indexing solution supports multiple blockchains, ensuring developers have access to the latest data across different networks.
+
+Tatum Data API offers a reliable, scalable, and cost-effective way for developers to access on-chain data, making it an essential tool for any blockchain project.
diff --git a/v1.0/Blockchain Data/data-api-old.md b/v1.0/Blockchain Data/data-api-old.md
new file mode 100644
index 00000000..7a096574
--- /dev/null
+++ b/v1.0/Blockchain Data/data-api-old.md
@@ -0,0 +1,8 @@
+---
+title: "Data API (old)"
+slug: "data-api-old"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/data-api-old/checkownerold.md b/v1.0/Blockchain Data/data-api-old/checkownerold.md
new file mode 100644
index 00000000..c22c73da
--- /dev/null
+++ b/v1.0/Blockchain Data/data-api-old/checkownerold.md
@@ -0,0 +1,8 @@
+---
+title: "Check owner of token"
+slug: "checkownerold"
+excerpt: "
1 credit per API call
\n
Check if wallet address owns any specified token (ERC-20, ERC-721 or ERC-1155) on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name, wallet address and address of any fungible token, NFT or multitoken collection. Our API will return true if provided wallet address owns them.
\n
If wallet address does not own the specific token, response body is false and status code is 200.
\n
It is also possible to check if wallet address owns a specific NFT by specifying a tokenId.
Get balances of fungible tokens (ERC-20), NFTs (ERC-721 and ERC-1155) or multitokens (ERC-1155 only) for a specific wallet address on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Tezos - tezos-mainnet
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and comma-separated list of addresses. Our API will return balances of each token along with further information such as its type, id, and more.
\n
Aside from relevant information about each token and its balance, the response also contains metadata (they can, however, be excluded by setting excludeMetadata to true).
\n
If not specified, the API returns balances for all supported types of tokens (fungible tokens, nft, multitokens), but you can also choose to filter specific tokenTypes.
\n
For Tezos blockchain, the API returns balance of any tokens including native token (XTZ) for specified wallet addresses. Following query parameters won't have any effect on filtering data excludeMetadata.
Get information about blocks (when they were added, how many NFTs and events were ingested and list of transaction hashes that were processed within them) on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started, provide a chain and specify one of the filters listed below (combination of these filters is not allowed):
\n
\n
List of block numbers separated by comma
\n
Range of block numbers
\n
Date range when blocks were processed
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/data-api-old/getcollectionsold.md b/v1.0/Blockchain Data/data-api-old/getcollectionsold.md
new file mode 100644
index 00000000..9eae0f4a
--- /dev/null
+++ b/v1.0/Blockchain Data/data-api-old/getcollectionsold.md
@@ -0,0 +1,8 @@
+---
+title: "Get tokens from a collection"
+slug: "getcollectionsold"
+excerpt: "
10 credits per API call
\n
Get all NFTs (ERC-721 and ERC-1155) and multitokens (ERC-1155 only) of your favorite collections! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
Tezos - tezos-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and comma-separated list of collection addresses. Our API will return relevant information about each token, including its name, description, image, and more.
\n
Aside from relevant information about each token, the response also contains metadata (they can, however, be excluded by setting excludeMetadata to true).
\n
If not specified, the API returns results for all supported types of tokens (nft, multitokens), but you can also choose to filter only one tokenType.
\n
For Tezos blockchain query parameters excludeMetadata and tokenType won't have any effect on filtering data.
Get all events on given addresses and / or in the requested block range on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
To improve response times and obtain specific data, it is recommended to use proper filtering techniques. Please provide a chain name and a combination of filters that will accomplish this (at least block range or contract addresses must be specified).
\n
It is possible to specify multiple contract addresses at once by passing them as a comma separated string.
\n
If block range is not specified, the API attempts to go through all available blocks, which may result in a timeout error.
\n
It is recommended to filter only one specific type of events, which comes with built-in decoding for all the supported types.
\n
It is, however, also possible to filter by signature hashes, which can be passed together as a comma separated string.
\n
\n
As noted above, aside from general info and hashed event data, the API also decodes them for you in case you filter by one of the following supported event types:
\n
\n
tokenTransfer: All transfers of fungible tokens (including stablecoins) and NFTs as per ERC-20 and ERC-721 standard.
\n
multitokenTransfer: All transfers of multitokens (both single transfers and batch transfers) as per ERC-1155 standard.
\n
stablecoinTransfer: Refers to the transfer of specific stablecoins on the mainnet. Typically, the top 10 to 16 stablecoins on each chain according to CoinMarketCap are included. If the contractAddresses parameter is also used in the filter combination, any tokens specified in it will also be included in the list.
\n
uniswapTrade: Provides all swap events that occur on both Uniswap V2 and V3. In some cases, it may not be possible to map the swapped amounts to specific tokens. As a result, certain decoded data such as token amounts might be missing or in the original big number format. This will be indicated by the response parameter partiallyRaw: true.
Get metadata of NFTs (ERC-721 and ERC-1155) or multitokens (ERC-1155 only) by IDs for a given token address! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name, token address and comma-separated list of IDs. Our API will return relevant metadata about each specified token, including its name, description, image, and more.
\n
Aside from the metadata information, the response also contains token types and metadata url minted in each token.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/data-api-old/getownersold.md b/v1.0/Blockchain Data/data-api-old/getownersold.md
new file mode 100644
index 00000000..0a94ed1f
--- /dev/null
+++ b/v1.0/Blockchain Data/data-api-old/getownersold.md
@@ -0,0 +1,8 @@
+---
+title: "Get owners of a token"
+slug: "getownersold"
+excerpt: "
20 credits per API call
\n
Get all addresses that own your favorite token (ERC-20, ERC-721 or ERC-1155)! Our API lets you search for all token owners on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and address of any fungible token, NFT or multitoken collection. Our API will return a list of addresses of all of their owners.
\n
You can also get an owner of a specific NFT by specifying tokenId. In case of multitoken, result is an array of addresses.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/data-api-old/gettokensold.md b/v1.0/Blockchain Data/data-api-old/gettokensold.md
new file mode 100644
index 00000000..64313d68
--- /dev/null
+++ b/v1.0/Blockchain Data/data-api-old/gettokensold.md
@@ -0,0 +1,8 @@
+---
+title: "Get information about collection or token"
+slug: "gettokensold"
+excerpt: "
1 credit per API call
\n
Get information about your favorite token! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
Tezos - tezos-mainnet
\n
\n
To get started:
\n
\n
Provide a chain and address of any fungible token, NFT or multitoken collection. If available, our API will return information about them such as their name, symbol, supply, and more.
\n
You can also get extra infomation (such as metadata) of a specific NFT or multitoken by passing tokenId as a query parameter.
Provide a chain name and comma-separated list of addresses. Our API will return all of their transactions along with further information such as their block number, ID of involved token, and more.
\n
If not specified, the API returns transactions of various types (fungible, nft, multitoken, native), but you can also choose to filter specific transactionTypes and even transactionSubtype (incoming, outgoing, zero-transfer).
\n
On top of that, you can add further filters such as specifying block range where the transactions should have occurred, or address and ID of involved tokens.
\n
For Tezos blockchain, the API accepts only one wallet address in addresses query parameter. Following query parameters won't have any effect on filtering data: transactionTypes, transactionSubtype, tokenId, blockTo.
\n
When querying Tezos transactions for a specified wallet or contract address, pagination is supported via pageSize and offset query parameters. \n
When querying Tezos transactions for a specified block, pagination is supported via cursor query parameter, by filling in the value from prevPage or nextPage field in the response body.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/data-api-old/getutxosbyaddressold.md b/v1.0/Blockchain Data/data-api-old/getutxosbyaddressold.md
new file mode 100644
index 00000000..a5a44b45
--- /dev/null
+++ b/v1.0/Blockchain Data/data-api-old/getutxosbyaddressold.md
@@ -0,0 +1,8 @@
+---
+title: "Get unspent UTXOs for an address"
+slug: "getutxosbyaddressold"
+excerpt: "
100 credits per API call
\n
Get unspent UTXOs for a specific address up to a specific total amount.\nIf you want to prepare a transaction on UTXO-based chains like Bitcoin, you need to enter unspent UTXOs to be able to perform a transaction. By providing ```totalValue``` as a total, our API will return a list of UTXOs that will be enough to cover the transaction.
\nOur API lets you get the unpenst UTXOs for a specific address on:\n
\n
Bitcoin - bitcoin / bitcoin-testnet
\n
Litecoin - litecoin / litecoin-testnet
\n
Dogecoin - doge / doge-testnet
\n
Cardano - cardano / cardano-preprod
\n
\n
To get started:
\n
\n
Provide a chain and address you want to list unspent UTXOs for. If available, our API will return information about the unspent UTXOs for a specific address. API traverses latest 200k incoming transactions.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/data-insights.md b/v1.0/Blockchain Data/data-insights.md
new file mode 100644
index 00000000..32d306c7
--- /dev/null
+++ b/v1.0/Blockchain Data/data-insights.md
@@ -0,0 +1,15 @@
+---
+title: "📊 Data Insights"
+slug: "data-insights"
+excerpt: ""
+hidden: false
+createdAt: "Tue Mar 19 2024 13:21:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:23 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum Data API is a comprehensive solution designed for developers to easily access on-chain data such as token balances, NFT owners, and metadata, all through a suite of user-friendly APIs.
+
+With Tatum Data API, developers can seamlessly integrate blockchain functionality into their applications, enabling them to deliver innovative, web3 solutions. This powerful indexing solution supports multiple blockchains, ensuring developers have access to the latest data across different networks.
+
+Tatum Data API offers a reliable, scalable, and cost-effective way for developers to access on-chain data, making it an essential tool for any blockchain project.
+
+[API Reference](/reference/nft-api)
diff --git a/v1.0/Blockchain Data/defi-api.md b/v1.0/Blockchain Data/defi-api.md
new file mode 100644
index 00000000..af745c90
--- /dev/null
+++ b/v1.0/Blockchain Data/defi-api.md
@@ -0,0 +1,8 @@
+---
+title: "Block API"
+slug: "defi-api"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 12 2024 11:34:42 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/defi-api/getblocks.md b/v1.0/Blockchain Data/defi-api/getblocks.md
new file mode 100644
index 00000000..237afca1
--- /dev/null
+++ b/v1.0/Blockchain Data/defi-api/getblocks.md
@@ -0,0 +1,8 @@
+---
+title: "Get specified blocks"
+slug: "getblocks"
+excerpt: "
10 credits per API call
\n
Get information about blocks (when they were added, how many NFTs and events were ingested and list of transaction hashes that were processed within them) on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started, provide a chain and specify one of the filters listed below (combination of these filters is not allowed):
Get all events on given addresses and / or in the requested block range on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
To improve response times and obtain specific data, it is recommended to use proper filtering techniques. Please provide a chain name and a combination of filters that will accomplish this (at least block range or contract addresses must be specified).
\n
It is possible to specify multiple contract addresses at once by passing them as a comma separated string.
\n
If block range is not specified, the API attempts to go through all available blocks, which may result in a timeout error.
\n
It is recommended to filter only one specific type of events, which comes with built-in decoding for all the supported types.
\n
It is, however, also possible to filter by signature hashes, which can be passed together as a comma separated string.
\n
\n
As noted above, aside from general info and hashed event data, the API also decodes them for you in case you filter by one of the following supported event types:
\n
\n
tokenTransfer: All transfers of fungible tokens (including stablecoins) and NFTs as per ERC-20 and ERC-721 standard.
\n
multitokenTransfer: All transfers of multitokens (both single transfers and batch transfers) as per ERC-1155 standard.
\n
stablecoinTransfer: Refers to the transfer of specific stablecoins on the mainnet. Typically, the top 10 to 16 stablecoins on each chain according to CoinMarketCap are included. If the contractAddresses parameter is also used in the filter combination, any tokens specified in it will also be included in the list.
\n
uniswapTrade: Provides all swap events that occur on both Uniswap V2 and V3. In some cases, it may not be possible to map the swapped amounts to specific tokens. As a result, certain decoded data such as token amounts might be missing or in the original big number format. This will be indicated by the response parameter partiallyRaw: true.
Get information about latest added block on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started, you can just provide a chain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/insights.md b/v1.0/Blockchain Data/insights.md
new file mode 100644
index 00000000..3fc7bbd9
--- /dev/null
+++ b/v1.0/Blockchain Data/insights.md
@@ -0,0 +1,8 @@
+---
+title: "Indexed Data Insights"
+slug: "insights"
+excerpt: ""
+hidden: true
+createdAt: "Thu Mar 07 2024 13:24:26 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:32 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/insights/fungible-tokens-data.md b/v1.0/Blockchain Data/insights/fungible-tokens-data.md
new file mode 100644
index 00000000..69dbaba5
--- /dev/null
+++ b/v1.0/Blockchain Data/insights/fungible-tokens-data.md
@@ -0,0 +1,8 @@
+---
+title: "Fungible Tokens Data"
+slug: "fungible-tokens-data"
+excerpt: ""
+hidden: true
+createdAt: "Thu Mar 07 2024 13:27:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:32 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/insights/nfts-2.md b/v1.0/Blockchain Data/insights/nfts-2.md
new file mode 100644
index 00000000..566a372e
--- /dev/null
+++ b/v1.0/Blockchain Data/insights/nfts-2.md
@@ -0,0 +1,8 @@
+---
+title: "NFT's"
+slug: "nfts-2"
+excerpt: ""
+hidden: true
+createdAt: "Thu Mar 07 2024 13:25:03 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:32 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/insights/nfts-2/algorand-nft-mint-and-transfer-to-recipient-copy.md b/v1.0/Blockchain Data/insights/nfts-2/algorand-nft-mint-and-transfer-to-recipient-copy.md
new file mode 100644
index 00000000..d78a3f93
--- /dev/null
+++ b/v1.0/Blockchain Data/insights/nfts-2/algorand-nft-mint-and-transfer-to-recipient-copy.md
@@ -0,0 +1,125 @@
+---
+title: "Solana - NFT Mint and Transfer to Recipient"
+slug: "algorand-nft-mint-and-transfer-to-recipient-copy"
+excerpt: ""
+hidden: true
+createdAt: "Sun Feb 25 2024 12:03:56 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:32 GMT+0000 (Coordinated Universal Time)"
+---
+NFTs over Solana work a bit differently than other EVM (like Ethereum) chains.
+
+With most EVM chains, you need to deploy a smart contract from which you will mint NFTs. However, Solana uses the [Metaplex Protocol](https://www.metaplex.com/) — a smart contract and metadata standard for creating and working with NFTs. Tatum’s API endpoints leverage the Metaplex protocol, and as a result, you do not need to deploy your own smart contract to mint NFTs.
+
+Usually, the JSON metadata scheme that points to the metadata included in your NFT must be stored on IPFS. However, on Solana, this metadata is stored on the blockchain itself, so you do not need to create a JSON metadata scheme and upload it to IPFS. All you need to do is include a URL that points to the metadata in the uri field of the Mint NFT API call below.
+
+## NFT Mint Example - Solana
+
+[v3 REST API endpoint](https://apidoc.tatum.io/tag/NFT-(ERC-721-or-compatible)#operation/NftMintErc721) where available Request Body Schema:
+
+- MintNftExpressSolana
+- MintNftSolana
+- MintNftSolana
+
+Most of the parameters are the same as other EVM chains. However, the royalty information in the metadata section has a couple of key differences:
+
+- The total percentage royalty of each transaction to be paid out to the creators is entered in the `sellerFeeBasisPoints` field of the Mint NFT endpoint. For example, if the `sellerFeeBasisPoints` value is “1000”, this means 10% of the purchase price of the NFT will be transferred to creators each time it is sold. To disable the royalty for the NFT completely, set `sellerFeeBasisPoints` to 0.
+- The `share` field contains the different percentages of the total `sellerFeeBasisPoints` to be divided among the creators. If there are 2 creators, one with a `share` value of “30” and one with a share value of “70”, 30% and 70% of the total `sellerFeeBasisPoints` royalty will be paid to each respective creator.
+
+### Request Example:
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/nft/mint/' \
+--header 'x-api-key: {API_KEY}' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "from": "FykfMwA9WNShzPJbbb9DNXsfgDgS3XZzWiFgrVXfWoPJ",
+ "chain": "SOL",
+ "fromPrivateKey": "####",
+ "to": "FykfMwA9WNShzPJbbb9DNXsfgDgS3XZzWiFgrVXfWoPJ",
+ "metadata": {
+ "name": "Tatum API",
+ "symbol": "TAPI",
+ "sellerFeeBasisPoints": 10,
+ "uri": "ipfs://bafybeidi7xixphrxar6humruz4mn6ul7nzmres7j4triakpfabiezll4ti",
+ "creators": [
+ {
+ "address": "FykfMwA9WNShzPJbbb9DNXsfgDgS3XZzWiFgrVXfWoPJ",
+ "verified": true,
+ "share": 100
+ }
+ ]
+ }
+}'
+```
+
+**Parameters:**
+
+| Name | Description |
+| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| from | The address of the creator of the NFT from which the gas fees will be paid |
+| chain | The blockchain on which the NFT is being minted (in this case, “SOL”) |
+| fromPrivateKey | The private key of the address from which the NFT is being minted |
+| to | The recipient address to which the NFT will be minted |
+| metadata | The data included in the NFT, including the royalty payment information to each co-creator |
+| name | The name of the NFT |
+| symbol | The symbol of the NFT |
+| sellerFeeBasisPoints | The total percentage of the sale price to be paid out to co-creators based on their individual share (see below) |
+| uri | The location of the metadata (image, video file, audio file, etc.). Usually, metadata json schemes are stored on IPFS. However, on Solana, the metadata scheme is stored on the Solana blockchain itself. |
+| creators | Information about each co-creator who will receive a percentage royalty share each time the NFT is sold address - the account address of the creator |
+| verified | whether or not the account has been verified |
+| share | the percentage share of the total `sellerFeeBasisPoints` percentage designated above to be paid out to each individual creator |
+
+### Response Example:
+
+```json cURL
+{
+ "txId": "5GAwhRcMR7h5Dx71KCQax4CAcCFA6FcrVE5fwNedq7wXDYS1qpZaGd4Bj2zh8dCUfAz7fqVSXhdZzXRigsNoTZsb",
+ "nftAddress": "7dQWANaodDyttJNz3seaXoAe6VA8cLpPV1bM4cPGuNhG",
+ "nftAccountAddress": "3z2bPwKzfTAFDKPNKTM4vvffBSDvcBvkuRJeME5iALs3"
+}
+```
+
+**Parameters:**
+
+| Name | Description |
+| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| txId | The transaction ID. This ID can be used to get information about the transaction using the Get transaction endpoint or within the Solana Explorer. |
+| nftAddress | The address of the NFT on the blockchain. This is the address that is used to transfer the NFT below in the contractAddress field of the Transfer NFT API endpoint. |
+| nftAccountAddress | The address of the account that owns the NFT. This address is owned by the recipient address, and a new `nftAccountAddress` is created each time a new NFT is minted. The private key of the `nftAccountAddress` is the same as the private key of the account address it is owned by. Each time an NFT is transferred on Solana, a new `nftAccountAddress` is created to receive the token under the recipient’s account address. |
+
+## NFT Transfer Example - Solana
+
+The way the Solana blockchain works with minting and transferring NFTs uses `nftAccountAddresses`. For practical use of Tatum’s API, this makes very little difference, but it is important to know that for transferring NFTs, the `nftAddress` of the NFT is used, NOT the `nftAccountAddress`.
+
+### Request Example:
+
+```json cURL
+curl --request POST \
+ --url https://api.tatum.io/v3/nft/transaction \
+ --header 'content-type: application/json' \
+ --header 'x-api-key: {API_KEY}' \
+ --data '{
+ "chain": "SOL",
+ "from": "FykfMwA9WNShzPJbbb9DNXsfgDgS3XZzWiFgrVXfWoPJ",
+ "to": "FykfMwA9WNShzPJbbb9DNXsfgDgS3XZzWiFgrVXfWoPJ",
+ "contractAddress": "7dQWANaodDyttJNz3seaXoAe6VA8cLpPV1bM4cPGuNhG",
+ "fromPrivateKey": "####"
+}'
+```
+
+**Parameters:**
+
+| Name | Description |
+| :-------------- | :-------------------------------------------------------------------------------------------------------- |
+| chain | The chain on which you are transferring the NFT (in this case, “SOL”) from - the sender’s account address |
+| to | The recipient’s account address |
+| ContractAddress | The address of the NFT from the nftAddress field in the response to the Mint NFT call above. |
+| fromPrivateKey | The private key of the sender’s address |
+
+### Response Example:
+
+```json cURL
+{
+ "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
+}
+```
diff --git a/v1.0/Blockchain Data/insights/nfts-2/algorand-nft-mint-and-transfer-to-recipient.md b/v1.0/Blockchain Data/insights/nfts-2/algorand-nft-mint-and-transfer-to-recipient.md
new file mode 100644
index 00000000..a88af536
--- /dev/null
+++ b/v1.0/Blockchain Data/insights/nfts-2/algorand-nft-mint-and-transfer-to-recipient.md
@@ -0,0 +1,94 @@
+---
+title: "Algorand - NFT Mint and Transfer to Recipient"
+slug: "algorand-nft-mint-and-transfer-to-recipient"
+excerpt: ""
+hidden: true
+createdAt: "Sun Feb 25 2024 10:40:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:32 GMT+0000 (Coordinated Universal Time)"
+---
+NFTs over Algorand work a bit differently than other EVM (like Ethereum) chains.
+
+Algorand charges users for storing NFTs on their addresses and an Algorand blockchain address by default does not receive NFTs unless the owner of the address explicitly agrees to receive an NFT.
+
+### NFT Mint Example - Algorand
+
+[v3 REST API endpoint](https://apidoc.tatum.io/tag/NFT-(ERC-721-or-compatible)#operation/NftMintErc721) where available Request Body Schema:
+
+- MintNftExpressAlgorand
+- MintNftAlgorand
+- MintNftAlgorandKMS
+
+In the following example, the `privatekey` and `contractaddress` are default set to Tatum’s pre-deployed smart contract with Tatum's private key. The gas fees are deducted as credits from the monthly credit allowance from the paid Tatum plan.
+
+```json cURL
+curl -i -X POST \
+ https://api.tatum.io/v3/nft/mint \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: {API_KEY}' \
+ -d '{
+ "chain": "ALGO",
+ "url": "https://my_token_data.com",
+ "name": "My Crazy NFT",
+ "attr": {
+ "assetUnit": "USDT",
+ "clawback": "TMETT6BXL3QUH7AH5TS6IONU7LVTLKIGG54CFCNPMQXWGRIZFIESZBYWP4",
+ "manager": "TMETT6BXL3QUH7AH5TS6IONU7LVTLKIGG54CFCNPMQXWGRIZFIESZBYWP4",
+ "reserve": "TMETT6BXL3QUH7AH5TS6IONU7LVTLKIGG54CFCNPMQXWGRIZFIESZBYWP4",
+ "freeze": "TMETT6BXL3QUH7AH5TS6IONU7LVTLKIGG54CFCNPMQXWGRIZFIESZBYWP4"
+ }
+ }'
+```
+
+### Parameters
+
+| Name | Description |
+| :-------- | :---------------------------------------------------------------------------------------------------------------------- |
+| chain | ALGO for Algorand in this specific case. |
+| url | Metadata of the minted NFT. For details, see [the Ethereum site](https://eips.ethereum.org/EIPS/eip-721#specification). |
+| name | The name of the minted NFT. |
+| attr | Attributes |
+| assetUnit | The name of the minted NFT unit. |
+| clawback | The address of the clawback account. |
+| manager | The address of the reserve account. |
+| freeze | The address of the freeze account. |
+
+## NFT Transfer Example - Algorand
+
+An NFT that you mint on Algorand is automatically transferred to your blockchain address. After the NFT is minted, you have to transfer it to the recipient's address.
+
+The recipient has to agree in advance to receive your NFT (by default, Algorand charges users for storing NFTs on their addresses which, by default, does not receive NFTs unless agreed).
+
+### Step_1 - The recipient agrees with the NFT reception
+
+The recipient [agrees to receive the NFT](https://apidoc.tatum.io/tag/Algorand/#operation/AlgorandBlockchainReceiveAsset). **Recipient** enables accepting assets on an Algorand address using the mintNftExpressAlgorand schema:
+
+**Request Example**:
+
+```json cURL
+curl -i -X POST \
+ https://api.tatum.io/v3/algorand/asset/receive \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: {API_KEY}' \
+ -d '{
+ "assetId": "116363571", //The NFT the recipient must agree to recieve.
+ "fromPrivateKey": "####"
+ }'
+```
+
+### Step_2 - The sender sends the NFT to the recipient
+
+ You [transfer the NFT](https://preview.redoc.ly/tatum/develop/tag/NFT-(ERC-721-or-compatible)/#operation/NftTransferErc721) to the recipient's address using the `transferNftAlgoExpress` schema:
+
+**Request Example:**
+
+```json cURL
+curl -i -X POST \
+ https://api.tatum.io/v3/nft/transaction \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: {API_KEY}' \
+ -d '{
+ "chain": "ALGO",
+ "to": "TMETT6BXL3QUH7AH5TS6IONU7LVTLKIGG54CFCNPMQXWGRIZFIESZBYWP4",
+ "contractAddress": "100000"
+ }'
+```
diff --git a/v1.0/Blockchain Data/insights/nfts-2/nft-creating-your-own-collection.md b/v1.0/Blockchain Data/insights/nfts-2/nft-creating-your-own-collection.md
new file mode 100644
index 00000000..360b1341
--- /dev/null
+++ b/v1.0/Blockchain Data/insights/nfts-2/nft-creating-your-own-collection.md
@@ -0,0 +1,90 @@
+---
+title: "Creating a NFT Collection"
+slug: "nft-creating-your-own-collection"
+excerpt: ""
+hidden: true
+createdAt: "Sat Feb 17 2024 13:34:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:32 GMT+0000 (Coordinated Universal Time)"
+---
+To mint an NFT, first you need a Collection to which said NFT must belong. To create your own NFT Collection, you have to deploy your own SmartContract. Tatum makes these steps easy.
+
+## Creating an NFT Collection
+
+1. Select the network you want the NFTs to exist.
+2. Have ready an address with its `privatekey` with native assets. Required to pay for the SmartContract deployment.
+3. Pick on a "`name`" and "`symbol`" for your collection.
+4. Deploy the NFT SmartContract to get your Collection.
+5. (Optional) Add a Tatum minter address
+ 1. If a Minter address is added to the Collection SmartContract, Tatum pays on your behalf. _Your account will be charged accordingly._
+
+### Example request to create a new NFT Collection (CELO Testnet)
+
+**Step_1:** Deploy the NFT SmartContract to create a collection
+
+- v3 REST API endpoint - [Deploy an NFT Smart Contract](https://apidoc.tatum.io/tag/NFT-(ERC-721-or-compatible)#operation/NftDeployErc721)
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/nft/deploy' \
+--header 'x-api-key: {API_KEY}' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "chain": "CELO",
+ "name": "NFT on Celo Test Collection",
+ "symbol": "NCTC",
+ "fromPrivateKey": "####",
+ "feeCurrency": "CELO"
+}'
+
+//Response
+{
+ "txId": "0xa3ed3b9d2686dad28e93bbad6df37fc38430ecd8c0b49aceef787d33a9a6edcd"
+}
+```
+
+> 📘 Find the transaction in [Celo Alfajores Explorer](https://explorer.celo.org/alfajores/tx/0xa3ed3b9d2686dad28e93bbad6df37fc38430ecd8c0b49aceef787d33a9a6edcd).
+
+**Step_2:** Retrieve the "SmartContract - address"
+
+- v3 REST API endpoint - [Get the SC from a transaction hash](https://apidoc.tatum.io/tag/Blockchain-utils#operation/SCGetContractAddress)
+
+```json cURL
+curl --location --request GET 'https://api.tatum.io/v3/blockchain/sc/address/CELO/0xa6e0f4f1571dd5f50af126f173f0ff62ee8dd9d9aa7d708843c4b8058d347be5' \
+--header 'x-api-key: {API_KEY}'
+//Response
+{
+ "contractAddress": "0x0935a78C8a268c8ED0590E5A8d4409f7604Bed1A"
+}
+```
+
+**Step_3:** (optional) Adding Tatum as a Minter
+
+- v3 REST API endpoint - [Add an address as Minter](https://apidoc.tatum.io/tag/NFT-(ERC-721-or-compatible)#operation/NftAddMinter)
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/nft/mint/add' \
+--header 'x-api-key: {API_KEY}' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "chain": "CELO",
+ "contractAddress": "0x0935a78C8a268c8ED0590E5A8d4409f7604Bed1A",
+ "minter": "0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F",
+ "fromPrivateKey": "#####"
+}'
+//Response
+{
+ "txId": "0x04e159bd515c917efcfbb88f819b513fb7c5d54aef70c26aaa285e7b987c1aae"
+}
+```
+
+### Tatum Minter role addresses
+
+| Environment | Chain | Address |
+| :---------- | :-------------------------------------------- | :--------------------------------------------- |
+| **Mainnet** | BSC, Celo, Ethereum, Harmony, Klaytn, Polygon | **0x49678AAB11E001eb3cB2cBD9aA96b36DC2461A94** |
+| Testnet | BSC | 0xc16ae5e8c985b906935a0cadf4e24f0400531883 |
+| Testnet | Celo | 0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F |
+| Testnet | Ethereum | 0x53e8577C4347C365E4e0DA5B57A589cB6f2AB848 |
+| Testnet | Harmony | 0x8906f62d40293ddca77fdf6714c3f63265deddf0 |
+| Testnet | Polygon | 0x542b9ac4945a3836fd12ad98acbc76a0c8b743f5 |
+
+> 📘 Adding a Minter Address into an NFT Collection SmartContract is non-reversible. The cost of each use in crypto is charged to the account in credits.
diff --git a/v1.0/Blockchain Data/insights/nfts-2/nft-minting-nfts.md b/v1.0/Blockchain Data/insights/nfts-2/nft-minting-nfts.md
new file mode 100644
index 00000000..01bb0690
--- /dev/null
+++ b/v1.0/Blockchain Data/insights/nfts-2/nft-minting-nfts.md
@@ -0,0 +1,98 @@
+---
+title: "Minting NFTs"
+slug: "nft-minting-nfts"
+excerpt: ""
+hidden: true
+createdAt: "Sat Feb 17 2024 14:17:24 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:32 GMT+0000 (Coordinated Universal Time)"
+---
+To mint an NFT, first you need a Collection to which said NFT must belong. Once you have the Collection SmartContract, minting NFTs just takes a few steps.
+
+## Minting an NFT
+
+1. Select the network you want the NFTs to exist.
+2. Have ready a Collection (SmartContract) for your NFT to belong.
+3. Have ready an address with its `privatekey` with native assets. Required to pay for the minting.
+ 1. If a Minter address was added to the Collection SmartContract, Tatum pays on your behalf. _Your account will be charged accordingly._
+4. Get ready the metadata JSON file.
+5. Mint the NFT.
+
+### Example request to mint an NFT (CELO Testnet)
+
+**Step_1:** Upload the Image and the Metadata JSON file
+
+- v3 REST API endpoint - [Store data to IPFS](https://apidoc.tatum.io/tag/IPFS#operation/StoreIPFS)
+
+```json cURL
+//First upload the NFT image
+curl --location --request POST 'https://api.tatum.io/v3/ipfs' \
+--header 'x-api-key: {API_KEY}' \
+--form 'file=@"/Users/{username}/Documents/tatum_nft_example.jpeg"'
+//Response
+{
+ "ipfsHash": "bafkreif6ifegpj74w6biowzzbswqwvg6c5t6hhtwsrmpxhweg6yn7zxm7e"
+}
+
+//After that, create a JSON file and upload this new file
+//File format:
+// {
+// "name": "Tatum NFT for Diagram example",
+// "description": "This is an NFT minted as an example.",
+// "image": "ipfs://bafkreif6ifegpj74w6biowzzbswqwvg6c5t6hhtwsrmpxhweg6yn7zxm7e"
+// }
+
+curl --location --request POST 'https://api.tatum.io/v3/ipfs' \
+--header 'x-api-key: {API_KEY}' \
+--form 'file=@"/Users/{username}/Documents/Tatum_NFT_example.json"'
+//Response
+{
+ "ipfsHash": "bafkreiebg3ugqtumak2ueyf2j2sbggt47hxjvbozkxbgyssebufmbgp3fa"
+}
+```
+
+**Step_2:** Mint the NFT
+
+- v3 REST API endpoint - [Mint an NFT](https://apidoc.tatum.io/tag/NFT-(ERC-721-or-compatible)#operation/NftMintErc721)
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/nft/mint/' \
+--header 'x-api-key: {API_KEY}' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+"chain": "CELO",
+"tokenId": "001",
+"to": "0x40245fa66666508e4121f4400819eef4b08ac4bf",
+"url": "ipfs://bafkreiebg3ugqtumak2ueyf2j2sbggt47hxjvbozkxbgyssebufmbgp3fa",
+"contractAddress": "0x0935a78C8a268c8ED0590E5A8d4409f7604Bed1A",
+"minter": "0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F", // If there's no "minter", PrivateKey must be used instead.
+"feeCurrency": "CELO"
+}'
+//Resonse
+{
+ "txId": "0xd16536eea02ddffd2deee2db5e2c053ee429526758420477781082c7a5465aa7"
+}
+```
+
+### Parameters
+
+| Name | Description |
+| :-------------- | :------------------------------------------------------------------------------------------ |
+| chain | The network on which the NFT will be minted. |
+| contractAddress | The address of your NFT Collection/SmartContract. |
+| minter | The address of the Tatum NFT minter that you have added as a minter to your smart contract. |
+| to | The blockchain address of the recipient to whom the NFT will be sent. |
+| tokenId | The identifier of the NTF that will be minted. |
+| url | The URL of the metadata (image, audio, video, etc) to be included in the NFT. |
+
+> 📘 Find the transaction in [Celo Alfajores Explorer](https://explorer.celo.org/alfajores/tx/0xd16536eea02ddffd2deee2db5e2c053ee429526758420477781082c7a5465aa7).
+
+### Tatum Minter role addresses
+
+| Environment | Chain | Address |
+| :---------- | :-------------------------------------------- | :--------------------------------------------- |
+| **Mainnet** | BSC, Celo, Ethereum, Harmony, Klaytn, Polygon | **0x49678AAB11E001eb3cB2cBD9aA96b36DC2461A94** |
+| Testnet | BSC | 0xc16ae5e8c985b906935a0cadf4e24f0400531883 |
+| Testnet | Celo | 0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F |
+| Testnet | Ethereum | 0x53e8577C4347C365E4e0DA5B57A589cB6f2AB848 |
+| Testnet | Harmony | 0x8906f62d40293ddca77fdf6714c3f63265deddf0 |
+| Testnet | Polygon | 0x542b9ac4945a3836fd12ad98acbc76a0c8b743f5 |
diff --git a/v1.0/Blockchain Data/insights/wallet-data.md b/v1.0/Blockchain Data/insights/wallet-data.md
new file mode 100644
index 00000000..4cd56931
--- /dev/null
+++ b/v1.0/Blockchain Data/insights/wallet-data.md
@@ -0,0 +1,8 @@
+---
+title: "Wallet Address Data"
+slug: "wallet-data"
+excerpt: ""
+hidden: true
+createdAt: "Thu Mar 07 2024 13:27:12 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:22:32 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/nft-api.md b/v1.0/Blockchain Data/nft-api.md
new file mode 100644
index 00000000..519c7610
--- /dev/null
+++ b/v1.0/Blockchain Data/nft-api.md
@@ -0,0 +1,22 @@
+---
+title: "NFT API"
+slug: "nft-api"
+excerpt: "NFT API is a sub product of Blockchain Data that aims to help you get any NFT related on-chain data you would need to add NFT functionality in your web3 app."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 12 2024 11:47:59 GMT+0000 (Coordinated Universal Time)"
+---
+# List of Features Available
+
+| Feature | Description | Supported Mainnets | Supported Testnets |
+| :------------------------------- | :------------------------------------------------------------------------ | :---------------------------------------------------- | :-------------------------------------------- |
+| **Get Tokens From a Collection** | Fetch all tokens from an NFT Collection or MultiToken Collection | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz, Tezos | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+| **Get Tokens Metadata** | Fetch metadata about an NFT or a MultiToken | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+| **Get Owners of a Token** | Find all the owners of Fungible Tokens, NFTs or Multitokens | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+| **Check ownership for a Token** | Check if a wallet owns a specific Fungible Token, or NFT or a MultiToken. | Ethereum, Celo, BSC, Polygon, Horizen, Chilliz | Ethereum Sepolia, BSC-Testnet, Polygon-Mumbai |
+
+[block:html]{"html":"
\n
Don't have an API key?>\n
Get one to start using Blockchain Data in your app today.
"}[/block]
+
+# Costs
+
+Each method in this sub-product (NFT API) is charged the same as the parent product (Blockchain Data) where each call is worth 70 credits & each batch call is 70 x Number of Operations.
diff --git a/v1.0/Blockchain Data/nft-api/checkowner.md b/v1.0/Blockchain Data/nft-api/checkowner.md
new file mode 100644
index 00000000..466fb766
--- /dev/null
+++ b/v1.0/Blockchain Data/nft-api/checkowner.md
@@ -0,0 +1,8 @@
+---
+title: "Check owner of token"
+slug: "checkowner"
+excerpt: "
1 credit per API call
\n
Check if wallet address owns any specified token (ERC-20, ERC-721 or ERC-1155) on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name, wallet address and address of any fungible token, NFT or multitoken collection. Our API will return true if provided wallet address owns them.
\n
If wallet address does not own the specific token, response body is false and status code is 200.
\n
It is also possible to check if wallet address owns a specific NFT by specifying a tokenId.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 14:16:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/nft-api/getcollections.md b/v1.0/Blockchain Data/nft-api/getcollections.md
new file mode 100644
index 00000000..b285d92e
--- /dev/null
+++ b/v1.0/Blockchain Data/nft-api/getcollections.md
@@ -0,0 +1,8 @@
+---
+title: "Get tokens from a collection"
+slug: "getcollections"
+excerpt: "
10 credits per API call
\n
Get all NFTs (ERC-721 and ERC-1155) and multitokens (ERC-1155 only) of your favorite collections! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
Tezos - tezos-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and comma-separated list of collection addresses. Our API will return relevant information about each token, including its name, description, image, and more.
\n
Aside from relevant information about each token, the response also contains metadata (they can, however, be excluded by setting excludeMetadata to true).
\n
If not specified, the API returns results for all supported types of tokens (nft, multitokens), but you can also choose to filter only one tokenType.
\n
For Tezos blockchain query parameters excludeMetadata and tokenType won't have any effect on filtering data.
Get metadata of NFTs (ERC-721 and ERC-1155) or multitokens (ERC-1155 only) by IDs for a given token address! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name, token address and comma-separated list of IDs. Our API will return relevant metadata about each specified token, including its name, description, image, and more.
\n
Aside from the metadata information, the response also contains token types and metadata url minted in each token.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 14:16:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/nft-api/getowners.md b/v1.0/Blockchain Data/nft-api/getowners.md
new file mode 100644
index 00000000..023783e9
--- /dev/null
+++ b/v1.0/Blockchain Data/nft-api/getowners.md
@@ -0,0 +1,8 @@
+---
+title: "Get owners of a token"
+slug: "getowners"
+excerpt: "
20 credits per API call
\n
Get all addresses that own your favorite token (ERC-20, ERC-721 or ERC-1155)! Our API lets you search for all token owners on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and address of any fungible token, NFT or multitoken collection. Our API will return a list of addresses of all of their owners.
\n
You can also get an owner of a specific NFT by specifying tokenId. In case of multitoken, result is an array of addresses.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 14:16:18 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/notifications.md b/v1.0/Blockchain Data/notifications.md
new file mode 100644
index 00000000..736c75d5
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications.md
@@ -0,0 +1,23 @@
+---
+title: "📮 Notifications"
+slug: "notifications"
+excerpt: "What is a Notification on a Blockchain?"
+hidden: false
+createdAt: "Thu Feb 22 2024 14:38:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:21:18 GMT+0000 (Coordinated Universal Time)"
+---
+A notification on a blockchain is an alert or message sent to users when specific events occur on the blockchain network. These events can include transactions, new blocks, contract executions, or any other actions that can be monitored. Notifications are typically delivered through webhook technology, which sends real-time updates to specified endpoints, such as an application or server.
+
+> 👍 Automation is better than parsing blocks manually
+>
+> Using blockchain notifications offers significant benefits compared to reading and parsing blocks manually. Notifications streamline the process by delivering real-time updates on relevant events, reducing resource consumption and improving overall efficiency, while also allowing users to focus on building functionality around these events instead of parsing raw blockchain data.
+
+# Why Should People Use Blockchain Notifications?
+
+1. **Real-time Updates**: Blockchain notifications provide real-time updates on events, enabling users to stay informed about the latest transactions, blocks, or smart contract activities. This real-time monitoring is crucial for applications that depend on the timely processing of transactions or other blockchain events.
+2. **Automate Processes**: Notifications can trigger automated processes in response to specific blockchain events. For example, a user might want to automate the release of digital assets when a certain transaction occurs or trigger a specific function in their application upon the creation of a new block.
+3. **Enhanced Security**: By receiving real-time notifications about transactions, users can monitor their accounts or smart contracts for any suspicious activity. In case of an unauthorized transaction, users can take immediate action to mitigate potential risks or losses.
+4. **Efficient Resource Utilization**: Instead of constantly polling the blockchain for updates, which consumes resources and bandwidth, notifications deliver updates only when relevant events occur. This approach reduces the load on your infrastructure and improves overall efficiency.
+5. **Improved User Experience**: By integrating notifications into your application, you can provide users with timely updates on important events, such as the confirmation of a transaction or the execution of a smart contract. This enhances the user experience by keeping them informed and engaged with your platform.
+
+[block:html]{"html":"
\n
Don't have an API key?>\n
Get one to start using Blockchain Data in your app today.
"}[/block]
diff --git a/v1.0/Blockchain Data/notifications/notification-types.md b/v1.0/Blockchain Data/notifications/notification-types.md
new file mode 100644
index 00000000..ad737127
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types.md
@@ -0,0 +1,9 @@
+---
+title: "Notification Types"
+slug: "notification-types"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:42:02 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:42:24 GMT+0000 (Coordinated Universal Time)"
+---
+Overview
diff --git a/v1.0/Blockchain Data/notifications/notification-types/address-event-1.md b/v1.0/Blockchain Data/notifications/notification-types/address-event-1.md
new file mode 100644
index 00000000..4277d495
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/address-event-1.md
@@ -0,0 +1,182 @@
+---
+title: "Address Event"
+slug: "address-event-1"
+excerpt: "Unlock the Power of ADDRESS_EVENT Notifications for Real-Time Balance Updates"
+hidden: false
+createdAt: "Thu Mar 07 2024 13:48:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:21:03 GMT+0000 (Coordinated Universal Time)"
+---
+Monitoring blockchain addresses can be a challenging and resource-intensive task, especially when you need to track balance updates across multiple token types and currencies. However, with Tatum's ADDRESS\_EVENT notification type, you can stay up-to-date with real-time balance updates, allowing you to streamline your operations and enhance the user experience.
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "ADDRESS_EVENT",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.addressEvent({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all ETH transactions on ${monitoredAddress}`)
+})()
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format depends on case whether the address you subscribed on is sending or receiving address.
+
+**You subscribed to a sending address**
+
+In this case you will get two notifications fired in your webhook listener:
+
+1. Related to **`fee`** paid for transaction with defined `"type": "fee"`
+
+```json
+{
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "amount": "-0.000031500000168",
+ "asset": "ETH",
+ "blockNumber": 3553692,
+ "txId": "0xde48b2572176eb3e1c4a2a9abe62c5552f778afcbba1ded8491a2ceb675a6390",
+ "type": "fee",
+ "chain": "ethereum-mainnet",
+ "subscriptionType": "ADDRESS_EVENT"
+}
+```
+
+2. Related to **`transaction`** itself with defined `"type": "native"` or "`fungible"` and etc.
+
+```json
+{
+ "address": "0xfAF0F447715dEeDF6Dd79c2fd1F7966F0CC647A1",
+ "amount": "0.001",
+ "asset": "ETH",
+ "blockNumber": 3553692,
+ "counterAddress": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "txId": "0xde48b2572176eb3e1c4a2a9abe62c5552f778afcbba1ded8491a2ceb675a6390",
+ "type": "native",
+ "chain": "ethereum-mainnet",
+ "subscriptionType": "ADDRESS_EVENT"
+}
+```
+
+**You subscribed to a receiving address**
+
+In this case you will get only one single notification fired in your webhook listener:
+
+```json
+{
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "amount": "0.0001",
+ "asset": "ETH",
+ "blockNumber": 3553815,
+ "counterAddress": "0xfAF0F447715dEeDF6Dd79c2fd1F7966F0CC647A1",
+ "txId": "0x24e3c8d20449958b53186feb1844a022b864cba67bbca792330b5ab71035b499",
+ "type": "native",
+ "chain": "ethereum-mainnet",
+ "subscriptionType": "ADDRESS_EVENT"
+}
+```
+
+# Which blockchain networks are supported?
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Blockchain",
+ "h-1": "Mainnet",
+ "h-2": "Testnet",
+ "0-0": "**Ethereum**",
+ "0-1": "API: ETH \nSDK: Network.ETHEREUM",
+ "0-2": "SDK: Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY",
+ "1-0": "**Polygon**",
+ "1-1": "Network.POLYGON",
+ "1-2": "Network.POLYGON_MUMBAI",
+ "2-0": "**Binance Smart Chain**",
+ "2-1": "Network.BINANCE_SMART_CHAIN",
+ "2-2": "Network.BINANCE_SMART_CHAIN_TESTNET",
+ "3-0": "**Flare**",
+ "3-1": "Network.FLARE",
+ "3-2": "Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD",
+ "4-0": "**Bitcoin**",
+ "4-1": "Network.BITCOIN",
+ "4-2": "Network.BITCOIN_TESTNET",
+ "5-0": "**Litecoin**",
+ "5-1": "Network.LITECOIN",
+ "5-2": "Network.LITECOIN_TESTNET",
+ "6-0": "**Dogecoin**",
+ "6-1": "Network.DOGECOIN",
+ "6-2": "Network.DOGECOIN_TESTNET",
+ "7-0": "**Bitcoin Cash**",
+ "7-1": "Network.BITCOIN_CASH",
+ "7-2": "Network.BITCOIN_CASH_TESTNET",
+ "8-0": "**Celo**",
+ "8-1": "Network.CELO",
+ "8-2": "Network.CELO_ALFAJORES",
+ "9-0": "**Klaytn**",
+ "9-1": "Network.KLAYTN",
+ "9-2": "Network.KLAYTN_BAOBAB",
+ "10-0": "**Solana**",
+ "10-1": "Network.SOLANA",
+ "10-2": "Network.SOLANA_DEVNET",
+ "11-0": "**Tron**",
+ "11-1": "Network.TRON",
+ "11-2": "Network.TRON_SHASTA",
+ "12-0": "**XRP**",
+ "12-1": "Network.XRP",
+ "12-2": "Network.XRP_TESTNET",
+ "13-0": "**Tezos**",
+ "13-1": "Network.Tezos",
+ "13-2": "Network.TEZOS_TESTNET"
+ },
+ "cols": 3,
+ "rows": 14,
+ "align": [
+ "left",
+ "left",
+ "left"
+ ]
+}
+[/block]
+
+
+# Why Use ADDRESS_EVENT Notifications?
+
+The ADDRESS\_EVENT notification type delivers a webhook notification every time there is a balance update on a monitored address. This comprehensive notification system covers incoming and outgoing transactions for native currencies, as well as popular token standards like ERC-20, ERC-721, and ERC-1155. Moreover, it even tracks internal smart contract native transfers, ensuring a seamless monitoring experience across various blockchain activities.
+
+Here are some key benefits of using ADDRESS_EVENT notifications:
+
+### Real-time Monitoring
+
+Stay informed about balance changes as they happen. ADDRESS\_EVENT notifications provide real-time updates, enabling you to react promptly to important events and ensuring that your application or platform always has the latest information.
+
+### Simplified Tracking
+
+With support for native currencies, as well as popular token standards like ERC-20, ERC-721, and ERC-1155, ADDRESS\_EVENT notifications simplify the process of tracking balance changes across multiple token types. This feature allows you to focus on building functionality around these events, rather than spending time and resources on parsing raw blockchain data.
+
+### Enhanced Security
+
+By receiving real-time notifications about balance changes, you can monitor your accounts or smart contracts for any suspicious activity. In case of unauthorized transactions or potential security risks, you can take immediate action to mitigate potential losses.
+
+### Improved User Experience
+
+Integrating ADDRESS\_EVENT notifications into your application or platform keeps your users informed about balance updates, enhancing their experience and fostering trust in your service. Timely information empowers users to make informed decisions and interact confidently with your platform.
diff --git a/v1.0/Blockchain Data/notifications/notification-types/contract-address-log-event-1.md b/v1.0/Blockchain Data/notifications/notification-types/contract-address-log-event-1.md
new file mode 100644
index 00000000..915abd87
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/contract-address-log-event-1.md
@@ -0,0 +1,81 @@
+---
+title: "Contract address log event"
+slug: "contract-address-log-event-1"
+excerpt: "Unleashing the Power of CONTRACT_ADDRESS_LOG_EVENT Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:30:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:30:20 GMT+0000 (Coordinated Universal Time)"
+---
+The world of blockchain and smart contracts is evolving at an unprecedented pace. CONTRACT_ADDRESS_LOG_EVENT notifications offer a powerful way to stay informed about specific smart contract events in real-time. By utilizing this feature, you can enhance security, streamline data analysis, improve user experience, and maintain flexibility in your monitoring approach. If you're a developer or business involved in the blockchain space, it's time to harness the power of these webhook notifications to optimize your dApp or service.
+
+# How to do it?
+
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredContractAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const monitoredEvent = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
+
+ const subscription = await tatum.notification.subscribe.contractAddressLogEvent({
+ contractAddress: monitoredContractAddress,
+ event: monitoredEvent,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all monitored event calls on ${monitoredContractAddress}`)
+})()
+```
+```curl curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "CONTRACT_ADDRESS_LOG_EVENT",
+ "attr": {
+ "contractAddress": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "url": "https://"
+ }
+ }'
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "events": [
+ {
+ "txId": "0x7d3dda0430471fe460c07b1ecab35670ef4ce85b",
+ "logIndex": 1,
+ "timestamp": 1620914417,
+ "address": "0x7D3Dda0430471Fe460C07b1ecaB35670eF4ce85b",
+ "topic_0": "0x4e3275a5d28e4f6383a4f74592ac9e2f1d0331bde8f7f25cf47d4b15323a47b8",
+ "topic_1": "0x000000000000000000000000f64e82131be01618487da5142fc9d289cbb60e9d",
+ "topic_2": "0x000000000000000000000000690b9a9e9aa1c9db991c7721a92d351db4fac990",
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000064"
+ }
+ ],
+ "blockNumber": 110827114,
+ "chain": "ethereum-mainnet",
+ "subscriptionType": "CONTRACT_ADDRESS_LOG_EVENT"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | ----------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE\_SMART\_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Tezos | Network.Tezos | Network.TEZOS_TESTNET |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/failed-transactions-in-a-block-1.md b/v1.0/Blockchain Data/notifications/notification-types/failed-transactions-in-a-block-1.md
new file mode 100644
index 00000000..3811e924
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/failed-transactions-in-a-block-1.md
@@ -0,0 +1,81 @@
+---
+title: "Failed transactions in a block"
+slug: "failed-transactions-in-a-block-1"
+excerpt: "Stay Ahead of Failed Transactions with FAILED_TXS_PER_BLOCK Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:28:39 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:28:59 GMT+0000 (Coordinated Universal Time)"
+---
+In the fast-paced world of blockchain, keeping track of failed transactions is crucial for maintaining a secure and efficient platform. Tatum's OUTGOING_FAILED_TX notification type provides an invaluable tool to help you stay informed about all transactions in a block that fail to be included in a block.
+
+# How to do it?
+
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const subscription = await tatum.notification.subscribe.failedTxsPerBlock({
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all failed transactions`)
+})()
+```
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "FAILED_TX_PER_BLOCK",
+ "attr": {
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "0.001",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "subscriptionType": "FAILED_TXS_PER_BLOCK"
+ "blockNumber": 2913059,
+ "txId": "0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6",
+ "mempool": false
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_FLARE |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Solana | Network.SOLANA | Network.SOLANA_DEVNET |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
+
+# Why use FAILED_TXS_PER_BLOCK Notifications?
+
+FAILED_TXS_PER_BLOCK notifications offer an effective way to monitor failed transactions in real-time. By focusing on transactions that fail to be included in a block, this notification type delivers several key benefits:
+
+## Real-time Monitoring
+
+Stay informed about failed transactions as they occur. FAILED_TXS_PER_BLOCK notifications provide real-time updates, allowing you to react promptly to important events and ensuring your application or platform always has the latest information.
+
+## Proactive Problem Solving
+
+FAILED_TXS_PER_BLOCK notifications help you identify and address the reasons behind failed transactions, such as insufficient gas fees, incorrect contract addresses, or network congestion. By proactively resolving these issues, you can minimize disruptions and maintain a smooth-running platform.
diff --git a/v1.0/Blockchain Data/notifications/notification-types/incoming-internal-transactions-1.md b/v1.0/Blockchain Data/notifications/notification-types/incoming-internal-transactions-1.md
new file mode 100644
index 00000000..0107881d
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/incoming-internal-transactions-1.md
@@ -0,0 +1,72 @@
+---
+title: "Incoming internal transactions"
+slug: "incoming-internal-transactions-1"
+excerpt: "Enhance Your Address Monitoring with INCOMING_INTERNAL_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:07:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:09:06 GMT+0000 (Coordinated Universal Time)"
+---
+In the dynamic world of blockchain, staying updated with transactions involving smart contracts is essential for maintaining a secure and efficient platform. Tatum's `INCOMING_INTERNAL_TX` notification type offers a powerful solution to help you track incoming native balance updates on a monitored address, which originated from smart contracts.
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "INCOMING_INTERNAL_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.incomingInternalTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all outgoing ETH transactions on ${monitoredAddress}`)
+})()
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "txId": "0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6",
+ "blockNumber": 2913059,
+ "subscriptionType": "INCOMING_INTERNAL_TX",
+ "mempool": false,
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "amount": "0.001"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/incoming-multitokens-1.md b/v1.0/Blockchain Data/notifications/notification-types/incoming-multitokens-1.md
new file mode 100644
index 00000000..239e1089
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/incoming-multitokens-1.md
@@ -0,0 +1,74 @@
+---
+title: "Incoming Multitokens"
+slug: "incoming-multitokens-1"
+excerpt: "Stay Informed on Multi-Token Transactions with INCOMING_MULTITOKEN_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:31:15 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 08 2024 17:26:14 GMT+0000 (Coordinated Universal Time)"
+---
+In the dynamic world of blockchain, keeping track of multi-token transactions is crucial for maintaining a secure and efficient platform. Tatum's INCOMING_MULTITOKEN_TX notification type offers a powerful solution to help you stay informed about incoming multi-token transactions (e.g., ERC-1155 transfers) involving a specific address.
+
+A MultiToken (ERC-1155) could be likened to a series of limited edition art prints, where each print belongs to the same series but has its unique edition number. In this scenario, ERC-1155 tokens can represent both the series (fungible aspect) and the individual editions (non-fungible aspect) within a single smart contract, allowing for seamless management and transfer of value.
+
+# How to do it?
+
+```curl curl
+curl -i -X POST
+
+ -H 'Content-Type: application/json'
+ -H 'x-api-key: '
+ -d '{
+ "type": "INCOMING_MULTITOKEN_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.incomingMultitokenTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all incoming MultiToken transactions on ${monitoredAddress}`)
+})()
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "1",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "subscriptionType": "INCOMING_MULTITOKEN_TX",
+ "blockNumber": 110827114,
+ "txId": "0xe118976ba31815f81301341b4e211825bce1393cac1c4215075177b0a6b98930",
+ "contractAddress": "0x7d3dda0430471fe460c07b1ecab35670ef4ce85b",
+ "tokenId": "1450000023306",
+ "metadataURI": "https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLAYTN_BAOBAB |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/incoming-native-transactions-1.md b/v1.0/Blockchain Data/notifications/notification-types/incoming-native-transactions-1.md
new file mode 100644
index 00000000..9e48d4da
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/incoming-native-transactions-1.md
@@ -0,0 +1,77 @@
+---
+title: "Incoming native transactions"
+slug: "incoming-native-transactions-1"
+excerpt: "Stay on Top of Your Transactions with INCOMING_NATIVE_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:00:25 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:02:21 GMT+0000 (Coordinated Universal Time)"
+---
+In the world of blockchain, staying updated with incoming transactions is crucial for ensuring smooth operations and an optimal user experience. Tatum's INCOMING\_NATIVE\_TX notification type is designed to help you do just that – by sending webhook notifications every time there's an incoming native balance update on a monitored address.
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "INCOMING_NATIVE_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.incomingNativeTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all incoming ETH transactions on ${monitoredAddress}`)
+})()
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "0.0001",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x0229338ee05154a406945899fb8c7bef36eb9220",
+ "subscriptionType": "INCOMING_NATIVE_TX",
+ "blockNumber": 3553920,
+ "txId": "0x21c78973a2d47b1910d79b8586c55d13c732dfb41883ee5af4318dafc66a0db9",
+ "mempool": false
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Bitcoin | Network.BITCOIN | Network.BITCOIN_TESTNET |
+| Litecoin | Network.LITECOIN | Network.LITECOIN_TESTNET |
+| Dogecoin | Network.DOGECOIN | Network.DOGECOIN_TESTNET |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Solana | Network.SOLANA | Network.SOLANA_DEVNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| XRP | Network.XRP | Network.XRP_TESTNET |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/incoming-nfts-1.md b/v1.0/Blockchain Data/notifications/notification-types/incoming-nfts-1.md
new file mode 100644
index 00000000..4a5fee4a
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/incoming-nfts-1.md
@@ -0,0 +1,85 @@
+---
+title: "Incoming NFTs"
+slug: "incoming-nfts-1"
+excerpt: "Stay Updated on Non-Fungible Token Transactions with INCOMING_NFT_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:38:39 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:39:00 GMT+0000 (Coordinated Universal Time)"
+---
+In the ever-expanding world of blockchain, keeping track of non-fungible token (NFT) transactions is crucial for maintaining a secure and efficient platform. Tatum's INCOMING_NFT_TX notification type offers a powerful solution to help you stay informed about incoming non-fungible token transactions (e.g., ERC-721 / SPL transfers) involving a specific address.
+
+> 📘 Hint
+>
+> A non-fungible token (NFT) is a unique digital asset that represents ownership of a one-of-a-kind item or piece of content, such as digital art, virtual real estate, or collectibles. Unlike fungible tokens, NFTs are not interchangeable and each NFT has a distinct value based on its rarity, provenance, and the demand for that specific token.
+>
+> There are different NFT standards, most known are ERC-721 on EVM chains or SPL
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "INCOMING_NFT_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.incomingNftTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all incoming NFT transactions on ${monitoredAddress}`)
+})()
+```
+
+> 📘 Hint
+>
+> This notification will be fired no matter what kind of NFT is being transferred.
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "1",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "subscriptionType": "INCOMING_NFT_TX",
+ "blockNumber": 110827114,
+ "txId": "0xe118976ba31815f81301341b4e211825bce1393cac1c4215075177b0a6b98930",
+ "contractAddress": "0x7d3dda0430471fe460c07b1ecab35670ef4ce85b",
+ "tokenId": "1450000023306",
+ "metadataURI": "https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLAYTN_BAOBAB |
+| Solana | Network.SOLANA | Network.SOLANA_DEVNET |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/incoming-tokens-1.md b/v1.0/Blockchain Data/notifications/notification-types/incoming-tokens-1.md
new file mode 100644
index 00000000..c163cf72
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/incoming-tokens-1.md
@@ -0,0 +1,81 @@
+---
+title: "Incoming Tokens"
+slug: "incoming-tokens-1"
+excerpt: "Stay on Top of Token Transactions with INCOMING_FUNGIBLE_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:32:07 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:35:44 GMT+0000 (Coordinated Universal Time)"
+---
+In the ever-evolving world of blockchain, keeping track of fungible token transactions is essential for maintaining a secure and efficient platform. Tatum's INCOMING_FUNGIBLE_TX notification type offers a powerful solution to help you stay informed about incoming fungible token transactions (e.g., ERC-20 transfers) involving a specific address.
+
+> 📘 Hint
+>
+> A fungible token is a type of digital asset that is interchangeable and holds the same value across all its individual units. Examples of fungible tokens include popular cryptocurrencies like Bitcoin (BTC) and Ether (ETH), as well as ERC-20 tokens like Chainlink (LINK) and USD Coin (USDC), which can be easily exchanged, divided, and combined without altering their overall worth.
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "INCOMING_FUNGIBLE_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.incomingFungibleTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all incoming token transactions on ${monitoredAddress}`)
+})()
+```
+
+> 📘 Hint
+>
+> This notification will be fired no matter what kind of Token arrives at the monitored address.
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "1",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "subscriptionType": "INCOMING_FUNGIBLE_TX",
+ "blockNumber": 2913059,
+ "txId": "0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6",
+ "contractAddress": "0x743e8b6cc1676adae0e3243b5c011f7139c26128"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Solana | Network.SOLANA | Network.SOLANA_DEVNET |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/outgoing-failed-transactions-1.md b/v1.0/Blockchain Data/notifications/notification-types/outgoing-failed-transactions-1.md
new file mode 100644
index 00000000..f73ea945
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/outgoing-failed-transactions-1.md
@@ -0,0 +1,83 @@
+---
+title: "Outgoing failed transactions"
+slug: "outgoing-failed-transactions-1"
+excerpt: "Stay Ahead of Failed Transactions with OUTGOING_FAILED_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:26:00 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:26:00 GMT+0000 (Coordinated Universal Time)"
+---
+In the fast-paced world of blockchain, keeping track of failed transactions is crucial for maintaining a secure and efficient platform. Tatum's OUTGOING_FAILED_TX notification type provides an invaluable tool to help you stay informed about transactions from monitored addresses that fail to be included in a block.
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "OUTGOING_FAILED_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.outgoingFailedTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all outgoing failed transactions on ${monitoredAddress}`)
+})()
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "amount": "0.001",
+ "blockNumber": 2913059,
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "txId": "0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6",
+ "chain": "ethereum-mainnet",
+ "subscriptionType": "OUTGOING_FAILED_TX",
+ "currency": "ETH"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | ----------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE\_SMART\_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| XRP | Network.XRP | Network.XRP_TESTNET |
+
+# Why Use OUTGOING_FAILED_TX Notifications?
+
+OUTGOING_FAILED_TX notifications offer an effective way to monitor failed transactions in real-time. By focusing on transactions that fail to be included in a block, this notification type delivers several key benefits:
+
+## Real-time Monitoring
+
+Stay informed about failed transactions as they occur. OUTGOING_FAILED_TX notifications provide real-time updates, allowing you to react promptly to important events and ensuring your application or platform always has the latest information.
+
+## Proactive Problem Solving
+
+OUTGOING_FAILED_TX notifications help you identify and address the reasons behind failed transactions, such as insufficient gas fees, incorrect contract addresses, or network congestion. By proactively resolving these issues, you can minimize disruptions and maintain a smooth-running platform.
diff --git a/v1.0/Blockchain Data/notifications/notification-types/outgoing-internal-transactions-1.md b/v1.0/Blockchain Data/notifications/notification-types/outgoing-internal-transactions-1.md
new file mode 100644
index 00000000..67d51443
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/outgoing-internal-transactions-1.md
@@ -0,0 +1,72 @@
+---
+title: "Outgoing internal transactions"
+slug: "outgoing-internal-transactions-1"
+excerpt: "Enhance Your Smart Contract Monitoring with OUTGOING_INTERNAL_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:18:23 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:18:24 GMT+0000 (Coordinated Universal Time)"
+---
+In the dynamic world of blockchain, staying updated with transactions involving smart contracts is essential for maintaining a secure and efficient platform. Tatum's OUTGOING_INTERNAL_TX notification type offers a powerful solution to help you track outgoing native balance updates on a monitored smart contract.
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "OUTGOING_INTERNAL_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredSmartContract = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.outgoingInternalTx({
+ address: monitoredSmartContract,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all outgoing ETH transactions on ${monitoredSmartContract}`)
+})()
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "txId": "0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6",
+ "blockNumber": 2913059,
+ "subscriptionType": "OUTGOING_INTERNAL_TX",
+ "mempool": false,
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "amount": "0.001"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/outgoing-multitokens-1.md b/v1.0/Blockchain Data/notifications/notification-types/outgoing-multitokens-1.md
new file mode 100644
index 00000000..b5bf75fa
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/outgoing-multitokens-1.md
@@ -0,0 +1,76 @@
+---
+title: "Outgoing Multitokens"
+slug: "outgoing-multitokens-1"
+excerpt: "Master Outgoing Multi-Token Transactions with OUTGOING_MULTITOKEN_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:31:25 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:40:56 GMT+0000 (Coordinated Universal Time)"
+---
+In the rapidly evolving world of blockchain, keeping track of multi-token transactions is essential for maintaining a secure and efficient platform. Tatum's OUTGOING\_MULTITOKEN\_TX notification type offers a powerful solution to help you stay informed about outgoing multi-token transactions (e.g., ERC-1155 transfers) from a specific address.
+
+A MultiToken (ERC-1155) could be likened to a series of limited edition art prints, where each print belongs to the same series but has its unique edition number. In this scenario, ERC-1155 tokens can represent both the series (fungible aspect) and the individual editions (non-fungible aspect) within a single smart contract, allowing for seamless management and transfer of value.
+
+# How to do it?
+
+```curl curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "OUTGOING_MULTITOKEN_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.outgoingMultitokenTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all outgoing MultiToken transactions on ${monitoredAddress}`)
+})()
+```
+
+This notification will be fired no matter what kind of MultiToken is being transferred.
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "1",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "subscriptionType": "OUTGOING_MULTITOKEN_TX",
+ "blockNumber": 110827114,
+ "txId": "0xe118976ba31815f81301341b4e211825bce1393cac1c4215075177b0a6b98930",
+ "contractAddress": "0x7d3dda0430471fe460c07b1ecab35670ef4ce85b",
+ "tokenId": "1450000023306",
+ "metadataURI": "https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATYN_BAOBAB |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/outgoing-native-transactions-1.md b/v1.0/Blockchain Data/notifications/notification-types/outgoing-native-transactions-1.md
new file mode 100644
index 00000000..a3c3d3fb
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/outgoing-native-transactions-1.md
@@ -0,0 +1,76 @@
+---
+title: "Outgoing native transactions"
+slug: "outgoing-native-transactions-1"
+excerpt: "Master Your Outgoing Transactions with OUTGOING_NATIVE_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:06:06 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:06:06 GMT+0000 (Coordinated Universal Time)"
+---
+Monitoring outgoing transactions is essential for maintaining a secure and efficient blockchain platform. Tatum's OUTGOING_NATIVE_TX notification type offers a powerful solution to help you stay informed about outgoing native balance updates on a monitored address, simplifying your operations and enhancing user experience.
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "OUTGOING_NATIVE_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.outgoingNativeTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all outgoing ETH transactions on ${monitoredAddress}`)
+})()
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "0.001",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "subscriptionType": "OUTGOING_NATIVE_TX",
+ "blockNumber": 3553968,
+ "txId": "0xac4b590e7668ca2adfd7cceef398d9859de23e61e1a46cfa9f79ac29a1ddc541",
+ "mempool": false
+}
+```
+
+### Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Bitcoin | Network.BITCOIN | Network.BITCOIN_TESTNET |
+| Litecoin | Network.LITECOIN | Network.LITECOIN_TESTNET |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Solana | Network.SOLANA | Network.SOLANA_DEVNET |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
+| XRP | Network.XRP | Network.XRP_TESTNET |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/outgoing-nfts-1.md b/v1.0/Blockchain Data/notifications/notification-types/outgoing-nfts-1.md
new file mode 100644
index 00000000..4abf9adf
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/outgoing-nfts-1.md
@@ -0,0 +1,85 @@
+---
+title: "Outgoing NFTs"
+slug: "outgoing-nfts-1"
+excerpt: "Monitor Non-Fungible Token Transactions with OUTGOING_NFT_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:42:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:42:16 GMT+0000 (Coordinated Universal Time)"
+---
+In the fast-paced world of blockchain, keeping track of non-fungible token (NFT) transactions is essential for maintaining a secure and efficient platform. Tatum's OUTGOING_NFT_TX notification type offers a powerful solution to help you stay informed about outgoing non-fungible token transactions (e.g., ERC-721 / SPL transfers) from a specific address.
+
+> 📘 Hint
+>
+> A non-fungible token (NFT) is a unique digital asset that represents ownership of a one-of-a-kind item or piece of content, such as digital art, virtual real estate, or collectibles. Unlike fungible tokens, NFTs are not interchangeable and each NFT has a distinct value based on its rarity, provenance, and the demand for that specific token.
+>
+> There are different NFT standards, most known are ERC-721 on EVM chains or SPL
+
+# How to do it?
+
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.outgoingNftTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all outgoing NFT transactions on ${monitoredAddress}`)
+})()
+```
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "OUTGOING_NFT_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+
+> 📘 Hint
+>
+> This notification will be fired no matter what kind of NFT is being transferred.
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "1",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "subscriptionType": "OUTGOING_NFT_TX",
+ "blockNumber": 110827114,
+ "txId": "0xe118976ba31815f81301341b4e211825bce1393cac1c4215075177b0a6b98930",
+ "contractAddress": "0x7d3dda0430471fe460c07b1ecab35670ef4ce85b",
+ "tokenId": "1450000023306",
+ "metadataURI": "https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLAYTN_BAOBAB |
+| Solana | Network.SOLANA | Network.SOLANA_DEVNET |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/outgoing-tokens-1.md b/v1.0/Blockchain Data/notifications/notification-types/outgoing-tokens-1.md
new file mode 100644
index 00000000..5fc61912
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/outgoing-tokens-1.md
@@ -0,0 +1,81 @@
+---
+title: "Outgoing Tokens"
+slug: "outgoing-tokens-1"
+excerpt: "Stay on Top of Token Transactions with OUTGOING_FUNGIBLE_TX Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:35:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:35:18 GMT+0000 (Coordinated Universal Time)"
+---
+In the dynamic world of blockchain, staying updated with fungible token transactions is vital for maintaining a secure and efficient platform. Tatum's `OUTGOING_FUNGIBLE_TX` notification type offers a powerful solution to help you track outgoing fungible token transactions (e.g., ERC-20 / SPL transfers) from a specific address.
+
+> 📘 Hint
+>
+> A fungible token is a type of digital asset that is interchangeable and holds the same value across all its individual units. Examples of fungible tokens include popular cryptocurrencies like Bitcoin (BTC) and Ether (ETH), as well as ERC-20 tokens like Chainlink (LINK) and USD Coin (USDC), which can be easily exchanged, divided, and combined without altering their overall worth.
+
+# How to do it?
+
+```curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "OUTGOING_FUNGIBLE_TX",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.outgoingFungibleTx({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all outgoing token transactions on ${monitoredAddress}`)
+})()
+```
+
+> 📘 Hint
+>
+> This notification will be fired no matter what kind of Token leaves the monitored address.
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "1",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "subscriptionType": "OUTGOING_FUNGIBLE_TX",
+ "blockNumber": 2913059,
+ "txId": "0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6",
+ "contractAddress": "0x743e8b6cc1676adae0e3243b5c011f7139c26128"
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| Solana | Network.SOLANA | Network.SOLANA_DEVNET |
+| Tezos | Network.TEZOS | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
diff --git a/v1.0/Blockchain Data/notifications/notification-types/paid-fee-1.md b/v1.0/Blockchain Data/notifications/notification-types/paid-fee-1.md
new file mode 100644
index 00000000..6e07cd71
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-types/paid-fee-1.md
@@ -0,0 +1,88 @@
+---
+title: "Paid Fee"
+slug: "paid-fee-1"
+excerpt: "Stay Informed About Transaction Fees with PAID_FEE Notifications"
+hidden: false
+createdAt: "Thu Mar 07 2024 14:16:42 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:26:04 GMT+0000 (Coordinated Universal Time)"
+---
+In the complex world of blockchain, keeping track of transaction fees is crucial for maintaining a transparent and efficient platform. Tatum's PAID\_FEE notification type provides a valuable tool to help you stay informed about fees paid as part of transactions involving a specific address.
+
+# How to do it?
+
+```curl curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -H 'x-api-key: ' \
+ -d '{
+ "type": "PAID_FEE",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+(async () => {
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ const monitoredAddress = '0xF64E82131BE01618487Da5142fc9d289cbb60E9d'
+
+ const subscription = await tatum.notification.subscribe.paidFee({
+ address: monitoredAddress,
+ url: 'https://' // replace with your handler URL
+ })
+ console.log(`Now you will be notified about all paid fees on ${monitoredAddress}`)
+})()
+```
+
+# What does the fired webhook look like?
+
+The fired notification webhook you will receive in your webhook listener will have the following format.
+
+```json
+{
+ "currency": "ETH",
+ "chain": "ethereum-mainnet",
+ "amount": "0.000031500000168",
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "subscriptionType": "PAID_FEE",
+ "blockNumber": 2913059,
+ "txId": "0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6",
+ "mempool": false
+}
+```
+
+# Which blockchain networks are supported?
+
+| Blockchain | Mainnet | Testnet |
+| ------------------- | --------------------------- | -------------------------------------------------------------------- |
+| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA, Network.ETHEREUM_HOLESKY |
+| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |
+| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |
+| Flare | Network.FLARE | Network.FLARE_COSTON, Network.FLARE_COSTON_2, Network.FLARE_SONGBIRD |
+| Celo | Network.CELO | Network.CELO_ALFAJORES |
+| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |
+| XRP | Network.XRP | Network.XRP_TESTNET |
+| Tezos | Network.Tezos | Network.TEZOS_TESTNET |
+| Tron | Network.TRON | Network.TRON_SHASTA |
+
+# Why Use PAID_FEE Notifications?
+
+PAID_FEE notifications offer an effective way to monitor transaction fees in real-time. By focusing on fees paid in transactions involving a specific address, this notification type delivers several key benefits:
+
+#### Real-time Monitoring
+
+Stay informed about transaction fees as they occur. PAID_FEE notifications provide real-time updates, allowing you to react promptly to important events and ensuring your application or platform always has the latest information.
+
+#### Enhanced Transparency
+
+Receiving real-time notifications about transaction fees helps you maintain a transparent and accountable platform. Users can clearly see the fees associated with their transactions, fostering trust in your service and promoting a fair ecosystem.
+
+#### Proactive Fee Management
+
+PAID_FEE notifications help you identify and address potential issues related to transaction fees, such as underpayment or overpayment. By proactively resolving these issues, you can minimize disruptions and maintain a smooth-running platform.
diff --git a/v1.0/Blockchain Data/notifications/notification-workflow.md b/v1.0/Blockchain Data/notifications/notification-workflow.md
new file mode 100644
index 00000000..0eba7a22
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-workflow.md
@@ -0,0 +1,147 @@
+---
+title: "Notification Workflow"
+slug: "notification-workflow"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 12:48:57 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 14:19:04 GMT+0000 (Coordinated Universal Time)"
+---
+Webhooks are automated messages sent from applications when certain events occur. In this case, the TatumSDK webhook system enables you to receive notifications about balance update events for a specific Ethereum address. To better understand the workflow, let's break it down into steps and present it in a simple guide. Then, we'll add a UML diagram to visualise the process.
+
+# Webhook Workflow Guide
+
+1. **Create a subscription**: Use the TatumSDK (@tatumio/tatum) to create a subscription for address events.
+
+```curl curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "type": "ADDRESS_EVENT",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```javascript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const subscription = await tatum.notification.subscribe.addressEvent({
+ address: '0xF64E82131BE01618487Da5142fc9d289cbb60E9d', // replace with your address
+ url: 'https://' // replate with your URL handler
+});
+```
+
+This function returns an object with an `id` property - a string identifier of the created subscription.
+
+> 📘 Define the type of network
+>
+> Playing with curl and having a need to define type of net, please, use query parameter `type` with `testnet` or `mainnet` values.
+>
+> Example: `https://api.tatum.io/v4/subscription?type=mainnet`
+>
+> If you do not use it explicitly `mainnet` is set by default.
+
+2. **Monitor the address**: Tatum starts monitoring the specified address for any balance update events happening on the Ethereum blockchain.
+3. **Trigger the webhook**: Once Tatum detects an event, it fires a notification as an HTTP POST request to the webhook listener URL defined in the subscription. The request includes a JSON payload with the event details. Should you have specific access controls in place, you can whitelist these Tatum IP addresses ([TXT](https://ips.tatum.com/ips.txt) \| [JSON](https://ips.tatum.com/ips.json)) that will fire requests to your application.
+4. **Unsubscribe from the notification**: The user can unsubscribe from the notification by calling `tatum.notification.unsubscribe(id)`.
+5. **List fired webhooks**: Users can list all fired webhooks by calling the `tatum.notification.getAllExecutedWebhooks()` operation.
+
+# UML Diagram
+
+Here's a UML diagram that focuses on the flow of subscribing, receiving events, and firing notifications. Code examples are included in the boxes for each step.
+
+```css
++------------------------+ +------------------------+
+| | | |
+| 1. User Subscribes | | 2. Monitor Address |
+| | | |
+| Code example: | | (Handled by Tatum) |
+| | | |
+| tatum.notification | +-----------+------------+
+| .subscribe | |
+| .addressEvent({ +--------------------->|
+| address: '0xF64E8...'| |
+| url: 'https://das...'| |
+| }); | |
++------------------------+ |
+ |
+ +---------------------+ |
+ | | |
+ | Event Detected on |<----------------------+
+ | the Address +---------------------->|
+ +---------------------+ |
+ |
+ |
+ |
+ v
+ +----------+----------+
+ | |
+ | 3. Process Event |
+ | (Tatum) & |
+ | Fire |
+ | Notification |
+ | |
+ | (Handled by |
+ | Webhook |
+ | Listener) |
+ | |
+ | Example |
+ | Payload: |
+ | { |
+ | "type": "BALANCE", |
+ | "amount": "0.5" |
+ | } |
+ +---------------------+
+```
+
+In this diagram, the following steps are shown:
+
+1. **Create subscription**: The user creates a subscription using the TatumSDK with the specified address and webhook listener URL.
+
+```curl curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "type": "ADDRESS_EVENT",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```javascript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = TatumSDK.init({network: Network.ETHEREUM})
+
+const subscription = await tatum.notification.subscribe.addressEvent({
+ address: '0xF64E82131BE01618487Da5142fc9d289cbb60E9d', // replace with your address
+ url: 'https://' // replate with your URL handler
+});
+```
+
+2. **Monitor Address**: Tatum monitors the specified address for balance update events happening on the Ethereum blockchain.
+3. **Receive & Fire Notification**: The webhook listener receives the event and processes the notification. An example JSON payload is provided in the diagram. Should you have specific access controls in place, you can whitelist these Tatum IP Addresses ([TXT](https://ips.tatum.com/ips.txt) \| [JSON](https://ips.tatum.com/ips.json)) that will fire requests to your application.
+
+```json
+{
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "amount": "0.001",
+ "asset": "ETH",
+ "blockNumber": 2913059,
+ "counterAddress": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
+ "txId": "0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6",
+ "type": "native",
+ "chain": "ethereum-mainnet",
+ "subscriptionType": "ADDRESS_EVENT"
+}
+```
diff --git a/v1.0/Blockchain Data/notifications/notification-workflow/get-all-existing-monitoring-subscriptions.md b/v1.0/Blockchain Data/notifications/notification-workflow/get-all-existing-monitoring-subscriptions.md
new file mode 100644
index 00000000..ad26707b
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-workflow/get-all-existing-monitoring-subscriptions.md
@@ -0,0 +1,88 @@
+---
+title: "Get all existing monitoring subscriptions"
+slug: "get-all-existing-monitoring-subscriptions"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:25:45 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:39:54 GMT+0000 (Coordinated Universal Time)"
+---
+Getting all existing monitoring subscriptions means retrieving a list of all the active webhook subscriptions that have been created through Tatum. Each subscription in the list represents a blockchain address being monitored for events, such as balance updates or contract interactions, along with the associated webhook listener URL to which the notifications are sent.
+
+When you request to get all existing monitoring subscriptions, Tatum returns a collection of subscription objects. Each object typically includes information such as the subscription identifier, the monitored blockchain address, the webhook listener URL, and any additional configuration or filters applied to the subscription.
+
+This functionality is useful for managing and reviewing your current webhook subscriptions, allowing you to keep track of which addresses are being monitored and the corresponding webhook listener URLs. By examining the list of existing subscriptions, you can ensure that you have the desired monitoring configurations in place and make any necessary adjustments or updates to your webhook subscriptions.
+
+# How to get all existing/active notifications
+
+When you request to get all active notifications using the `tatum.notification.`getAll`()` operation, Tatum returns a collection of active notifications that you have for monitoring the specified blockchain address(es) and detecting events such as balance updates or contract interactions.
+
+```curl
+curl -i -X GET \
+ 'https://api.tatum.io/v4/subscription?pageSize=10&type=mainnet'
+```
+```javascript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, NotificationSubscription, ResponseDto} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const {status, data}: ResponseDto = await tatum.notification.getAll()
+```
+
+> 📘 Hint
+>
+> Playing with curl and having a need to define type of net, please, use query parameter `type` with `testnet` or `mainnet` values.
+>
+> Example: `https://api.tatum.io/v4/subscription?pageSize=10&type=mainnet`
+>
+> If you do not use it explicitly `mainnet` is set by default.
+
+# Method parameters
+
+The method accepts the optional object with the following properties.
+
+```typescript
+interface GetAllSubscriptionsQuery {
+ /**
+ * Number of records to return. The default is 10.
+ */
+ pageSize?: number
+ /**
+ * Number of records to skip. The default is 0.
+ */
+ offset?: number
+ /**
+ * Address to filter by.
+ */
+ address?: string
+}
+```
+
+# Subscription response
+
+The methods response has the following format.
+
+```typescript
+interface NotificationSubscription {
+ /**
+ * ID of a subscription.
+ */
+ id: string
+ /**
+ * Blockchain network.
+ */
+ network: Network
+ /**
+ * URL of the webhook listener.
+ */
+ url: string
+ /**
+ * Type of notification subscription.
+ */
+ type: NotificationType
+ /**
+ * Address to monitor, valid for some of the types only.
+ */
+ address?: string
+}
+```
diff --git a/v1.0/Blockchain Data/notifications/notification-workflow/get-all-sent-notifications.md b/v1.0/Blockchain Data/notifications/notification-workflow/get-all-sent-notifications.md
new file mode 100644
index 00000000..63632c13
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-workflow/get-all-sent-notifications.md
@@ -0,0 +1,143 @@
+---
+title: "Get all sent notifications"
+slug: "get-all-sent-notifications"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:23:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:39:42 GMT+0000 (Coordinated Universal Time)"
+---
+Getting all sent notifications means retrieving a list of all webhook notifications that have been triggered and sent by the Tatum system to the specified webhook listener URL. This list typically includes information about each fired webhook, such as the event details, timestamp, subscription identifier, and the status of the webhook (e.g., whether it was successfully delivered or encountered an error).
+
+This functionality is useful for maintaining an overview of past webhook events, analyzing the event history, troubleshooting issues, or reconciling data between the Tatum system and your application. By examining the list of fired webhooks, you can gain insights into the events that have occurred on the monitored address(es) and identify any potential issues or discrepancies in your system's handling of these events.
+
+# How to get all sent notifications
+
+When you request to get all fired webhooks using the `tatum.notification.getAllExecutedWebhooks()` operation, the Tatum system returns a collection of webhook events that have been triggered as a result of monitoring the specified blockchain address(es) and detecting events such as balance updates or contract interactions.
+
+```curl curl
+curl -i -X GET \
+ 'https://api.tatum.com/v1/subscription/webhook?pageSize=10&type=mainnet'
+```
+```javascript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, Webhook, ResponseDto} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const {status, data}: ResponseDto = await tatum.notification.getAllExecutedWebhooks()
+```
+
+> 📘 Hint
+>
+> Playing with curl and having a need to define type of net, please, use query parameter `type` with `testnet` or `mainnet` values.
+>
+> Example:`https://api.tatum.io/v4/subscription/webhook?pageSize=10&type=mainnet`
+>
+> If you do not use it explicitly `mainnet` is set by default.
+
+# Method parameters
+
+The method accepts the optional object with the following properties.
+
+```typescript
+interface GetAllExecutedWebhooksQuery {
+ /**
+ * The number of items to return per page. Defaults to 10.
+ */
+ pageSize?: number
+ /**
+ * The page offset. Defaults to 0.
+ */
+ offset?: number
+ /**
+ * Order of the returned items. 'desc' means the most recent items are returned first. Defaults to 'desc'.
+ */
+ direction?: 'asc' | 'desc'
+ /**
+ * Filter failed notifications. If the present method will return only successful or failed results based on the filterFailed field.
+ */
+ filterFailed?: boolean
+}
+```
+
+# Webhook response
+
+The methods response has the following format.
+
+```typescript
+interface Webhook {
+ // Type of the subscription
+ type: NotificationType
+ // Id of the notification
+ id: string
+ // Id of the subscription
+ subscriptionId: string
+ // The URL on which is notifications request sent
+ url: string
+ // The webhook payload
+ data: {
+ // Monitored address
+ address: string
+ // Amount of the transaction
+ amount: string
+ // The asset of the notification
+ asset: string
+ // The number of the block in which the transaction occurs
+ blockNumber: number
+ // Transaction hash
+ txId: string
+ // Type of the notification
+ type: string
+ // Network of the notification
+ chain: string
+ // Type of the subscription
+ subscriptionType: NotificationType
+ }
+ // Next notification execution try time - Unix timestamp
+ nextTime: number
+ // Notification execution time - Unix timestamp
+ timestamp: number
+ // Number of retries in case of the failed attempts in the past
+ retryCount: number
+ // Flag indicating whether this notification was successful or not
+ failed: boolean
+ // Response from the server in case the notification was unsuccessful
+ response: {
+ code: number
+ data: string
+ networkError: boolean
+ }
+}
+
+```
+
+# Response
+
+```json
+{
+ "id": "64133ffb2367c7fb4fdeb0cf",
+ "subscriptionId": "64133c4b2aef5483132f9d40",
+ "url": "https://dashboard.tatum.io/webhook-handler",
+ "type": "FAILED_TXS_PER_BLOCK",
+ "data": {
+ "address": "0x3a88ededf304949c46d1380f6960bc1de94b9dcf",
+ "amount": "0",
+ "asset": "KLAY",
+ "blockNumber": 117406122,
+ "counterAddress": "0xfdeedbb2fe5b48d5b49e435ba00e0358740d0cf5",
+ "txId": "0xa3d2bb94d1faf6e3ae85c869e73cbb8eedb73f0b0feb35601e982c087c2e3f91",
+ "type": "native",
+ "chain": "klaytn-baobab",
+ "subscriptionType": "FAILED_TXS_PER_BLOCK",
+ },
+ "nextTime": 1678983161545,
+ "timestamp": 1678983163000,
+ "retryCount": 2,
+ "failed": true,
+ "response": {
+ "code": 404,
+ "data": "NOT FOUND",
+ "networkError": false
+ }
+}
+```
diff --git a/v1.0/Blockchain Data/notifications/notification-workflow/handling-re-orgs.md b/v1.0/Blockchain Data/notifications/notification-workflow/handling-re-orgs.md
new file mode 100644
index 00000000..1b65838e
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-workflow/handling-re-orgs.md
@@ -0,0 +1,30 @@
+---
+title: "Handling Re Orgs"
+slug: "handling-re-orgs"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:26:18 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:27:28 GMT+0000 (Coordinated Universal Time)"
+---
+# Identifying the Re Org Notifications
+
+Because of Tatum's fast notification implementation we are closely following tip of the chain. In rare occasions there can be a blockchain reorg happening over blocks that we've already processed. In such cases there is a secondary mechanism in place following the first in a certain distance (X blocks depending on chain), that will handle any transactions that might have been recently updated - those transactions will have respective notifications sent as normal with additional reorg flag.
+
+# Example: Updated Notification delivered after Re Org
+
+```json
+{
+ "address": "0xfAF0F447715dEeDF6Dd79c2fd1F7966F0CC647A1",
+ "amount": "0.001",
+ "asset": "ETH",
+ "blockNumber": 3553692,
+ "counterAddress": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "txId": "0xde48b2572176eb3e1c4a2a9abe62c5552f778afcbba1ded8491a2ceb675a6390",
+ "type": "native",
+ "chain": "ethereum-mainnet",
+ "subscriptionType": "ADDRESS_EVENT",
+ "reorg": true,
+}
+```
+
+Please note that such notifications might arrive with a certain delay which could be upto couple of minutes depending on the chain.
diff --git a/v1.0/Blockchain Data/notifications/notification-workflow/start-monitoring-of-the-address.md b/v1.0/Blockchain Data/notifications/notification-workflow/start-monitoring-of-the-address.md
new file mode 100644
index 00000000..b6f5999d
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-workflow/start-monitoring-of-the-address.md
@@ -0,0 +1,106 @@
+---
+title: "Start monitoring of the address"
+slug: "start-monitoring-of-the-address"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 12:52:58 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:39:15 GMT+0000 (Coordinated Universal Time)"
+---
+Starting to monitor an address means that the Tatum system begins observing the specified blockchain address for any changes, particularly balance updates. When monitoring an address, Tatum listens for incoming transactions, outgoing transactions, and internal contract interactions that may affect the balance of the address.
+
+> 📘 Hint
+>
+> In the context of Ethereum or any other EVM blockchain, monitoring an address involves tracking the Ethereum blockchain for transactions that involve the given address either as a sender or a receiver. The system also checks for interactions with smart contracts that may change the address's balance, such as token transfers or contract executions.
+
+When an event related to the address is detected, Tatum triggers the webhook, sending a notification to the user's specified webhook listener URL. This allows users to receive real-time updates about events occurring on the monitored address, enabling them to react promptly to any changes in their address's balance.
+
+# How to start with address monitoring
+
+Use the Tatum API or Tatum SDK (@tatumio/tatum) to create a subscription for address events.
+
+```curl curl
+curl -i -X POST \
+ https://api.tatum.io/v4/subscription?type=mainnet \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "type": "ADDRESS_EVENT",
+ "attr": {
+ "address": "0xF64E82131BE01618487Da5142fc9d289cbb60E9d",
+ "chain": "ETH",
+ "url": "https://"
+ }
+ }'
+```
+```javascript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, AddressBasedNotification} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const subscription: ResponseDto = await tatum.notification.subscribe.addressEvent({
+ address: '0xF64E82131BE01618487Da5142fc9d289cbb60E9d', // replace with your address
+ url: 'https://' // replate with your URL handler
+})
+```
+
+This function returns an object with a `id` property - a string identifier of the created subscription. Store this identifier in order to stop the monitoring of this address in the future.
+
+> 📘 Hint
+>
+> Playing with curl and having a need to define type of net, please, use query parameter `type` with `testnet` or `mainnet` values.
+>
+> Example: `https://api.tatum.io/v4/subscription?type=mainnet`
+>
+> If you do not use it explicitly `mainnet` is set by default.
+>
+> You can also use [Get all existing monitoring subscriptions](get-all-existing-monitoring-subscriptions.md) operation to get the correct `id`.
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface AddressBasedNotification {
+ /**
+ * ID of a subscription.
+ */
+ id: string
+ /**
+ * Monitored address.
+ */
+ address: string
+ /**
+ * URL of a webhook listener.
+ */
+ url: string
+}
+```
+
+# Troubleshooting
+
+## The address is already subscribed for a blockchain
+
+If the same address is already subscribed to a notification type, the method call will fail with the following message:
+
+`Subscription for type ADDRESS_EVENT on the address id 0xbaf6dc2e647aeb6f510f9e318856a1bcd66c5e19 and currency ETH already exists.`
+
+> #### 🚧 Only 1 unique address per notification type on a blockchain can be subscribed at the same time for the same user
+
+## Invalid format of the address
+
+If the submitted address is in an invalid format it will respond with the following error message:
+
+`address must be a valid ETH address. Address must start with 0x and must contain 40 hexadecimal characters after and have the correct checksum.`
+
+> #### 🚧 Submitted address should be in valid format.
diff --git a/v1.0/Blockchain Data/notifications/notification-workflow/stop-monitoring-of-the-address.md b/v1.0/Blockchain Data/notifications/notification-workflow/stop-monitoring-of-the-address.md
new file mode 100644
index 00000000..a11821c6
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/notification-workflow/stop-monitoring-of-the-address.md
@@ -0,0 +1,47 @@
+---
+title: "Stop monitoring of the address"
+slug: "stop-monitoring-of-the-address"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:19:39 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:39:23 GMT+0000 (Coordinated Universal Time)"
+---
+Stopping the monitoring of an address means that the Tatum system will no longer push notifications via webhooks for any changes related to that address. Note that this only stops the Notification for a particular address which you are willing to stop monitoring for, incase
+
+> 📘 Hint
+>
+> In the context of Ethereum or any other EVM chains, stopping the monitoring of an address means that Tatum will no longer track the Ethereum blockchain for transactions involving the given address, either as a sender or a receiver. The system will also discontinue checking for interactions with smart contracts that may change the address's balance, such as token transfers or contract executions.
+
+# How to stop monitoring of the address
+
+To stop monitoring an address, you can unsubscribe from the webhook notification by calling `tatum.notification.unsubscribe(id)` using the subscription identifier. Once unsubscribed, the Tatum system will no longer send notifications to the specified webhook listener URL about events occurring on the monitored address.
+
+```curl curl
+curl -i -X DELETE \
+ https://api.tatum.io/v4/subscription/YOUR_SUBSCRIPTION_ID \
+ -H 'Content-Type: application/json'
+```
+```javascript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+await tatum.notification.unsubscribe('YOUR_SUBSCRIPTION_ID')
+```
+
+> 📘 Hint
+>
+> Playing with curl and having a need to define type of net, please, use query parameter type with `testnet` or `mainnet` values.
+>
+> Example:``
+>
+> If you do not use it explicitly `mainnet` is set by default.
+
+# Troubleshooting
+
+## Invalid subscription id
+
+If the subscription id is invalid, the following message is returned:
+
+`id should be valid id and 24 characters long, e.g. 6398ded68bfa23a9709b1b17`
diff --git a/v1.0/Blockchain Data/notifications/supported-types-and-blockchain-networks.md b/v1.0/Blockchain Data/notifications/supported-types-and-blockchain-networks.md
new file mode 100644
index 00000000..0cd2a2ba
--- /dev/null
+++ b/v1.0/Blockchain Data/notifications/supported-types-and-blockchain-networks.md
@@ -0,0 +1,63 @@
+---
+title: "Supported types and blockchain networks"
+slug: "supported-types-and-blockchain-networks"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 01 2024 07:37:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 01 2024 08:09:35 GMT+0000 (Coordinated Universal Time)"
+---
+# Types of notifications you can monitor
+
+Tatum supports various types of notifications on a chain, which are designed to cover a wide range of blockchain events. These are the notifications types we offer:
+
+## Incoming Transaction Notifications 📭
+
+- **Incoming Native Transactions:** This notification is triggered when an address you are subscribed to, receives some Native Token from any address.
+- **Incoming Internal Transactions:** This notification is triggered when an address you are subscribed to, receives an Internal transaction (such as transfer an asset by a smart contract).
+- **Incoming Fungible Transactions:** This notification is triggered when an address you are subscribed to, receives a Fungible token from any address.
+- **Incoming NFT Transactions:** This notification is triggered when an address you are subscribed to, receives a Non Fungible Token (NFT's) from any address.
+- **Incoming MultiToken Transactions:** This notification is triggered when an address you are subscribed to, receives MultiToken from any address.
+
+## Outgoing Transaction Notifications ✈️
+
+- **Outgoing Native Transactions:** This notification is triggered when an address you are subscribed to, sends some Native Token to any address.
+- **Outgoing Internal Transactions:** This notification is triggered when an smart contract address you are subscribed to, sends assets to another address (Internal transaction).
+- **Outgoing Fungible Transactions:** This notification is triggered when an address you are subscribed to, send's Fungible tokens to any address.
+- **Outgoing NFT Transactions:** This notification is triggered when an address you are subscribed to, sends a Non Fungible Token (NFT's) to any address.
+- **Outgoing MultiToken Transaction:** This notification is triggered when an address you are subscribed to, sends a MultiToken to any address.
+- **Outgoing Failed Transactions: **This notification is triggered when an address you are subscribed to, initiates any transaction but it failed due to any reason.
+
+## Special Abstraction Notifications 🔔
+
+- **Address Events: **This notification is triggered when a user either receives or sends any token to any address on blockchain.
+- **Paid Fee:** This notification is triggered when a fee is paid as part of a transaction involving a specific address.
+- **Failed Transactions in a Block :** This notification is triggered when a block containing failed transactions is detected. This notification can be useful for monitoring and analysing failed transactions within specific blocks.
+- **Contract Address Log Event :** This notification allows you to monitor specific custom log events of a smart contract.
+
+These notification types allow users to monitor a wide range of events on the blockchain, enabling them to build responsive and efficient applications.
+
+# Blockchain protocols you can work with
+
+> 📘 Every type of notification has its own guide, where all the supported blockchain for that type is mentioned.
+
+Each of the notification types provided by Tatum can be used across various blockchains, depending on the blockchain family. These families include
+
+1. **UTXO (Unspent Transaction Output) chains:**
+ 1. Bitcoin
+ 2. Litecoin
+ 3. Dogecoin
+ 4. Bitcoin Cash
+2. **EVM (Ethereum Virtual Machine) chains:**
+ 1. Ethereum
+ 2. Binance Smart Chain
+ 3. Polygon
+ 4. Chilliz
+ 5. Celo
+ 6. Klaytn
+ 7. Flare
+3. **Other Blockchains:**
+ 1. Solana
+ 2. XRP
+ 3. Tron
+
+By offering compatibility with different blockchain families, Tatum ensures that users can effectively monitor and respond to a diverse range of events, irrespective of the underlying blockchain technology
diff --git a/v1.0/Blockchain Data/token-api.md b/v1.0/Blockchain Data/token-api.md
new file mode 100644
index 00000000..b6855668
--- /dev/null
+++ b/v1.0/Blockchain Data/token-api.md
@@ -0,0 +1,8 @@
+---
+title: "Token API"
+slug: "token-api"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/token-api/gettokens.md b/v1.0/Blockchain Data/token-api/gettokens.md
new file mode 100644
index 00000000..c4db2c17
--- /dev/null
+++ b/v1.0/Blockchain Data/token-api/gettokens.md
@@ -0,0 +1,8 @@
+---
+title: "Get information about collection or token"
+slug: "gettokens"
+excerpt: "
1 credit per API call
\n
Get information about your favorite token! Our API lets you search for all tokens on:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
Tezos - tezos-mainnet
\n
\n
To get started:
\n
\n
Provide a chain and address of any fungible token, NFT or multitoken collection. If available, our API will return information about them such as their name, symbol, supply, and more.
\n
You can also get extra infomation (such as metadata) of a specific NFT or multitoken by passing tokenId as a query parameter.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/transactions-api.md b/v1.0/Blockchain Data/transactions-api.md
new file mode 100644
index 00000000..d748b730
--- /dev/null
+++ b/v1.0/Blockchain Data/transactions-api.md
@@ -0,0 +1,8 @@
+---
+title: "Transactions API"
+slug: "transactions-api"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/transactions-api/estimatefeeblockchain.md b/v1.0/Blockchain Data/transactions-api/estimatefeeblockchain.md
new file mode 100644
index 00000000..4a73131e
--- /dev/null
+++ b/v1.0/Blockchain Data/transactions-api/estimatefeeblockchain.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a transaction on a blockchain"
+slug: "estimatefeeblockchain"
+excerpt: "
10 credits per API call
\n
Estimate the current fee for different types of transactions.
\n
This API is supported for the following blockchains:
\n
\n
Bitcoin
\n
BNB Smart Chain
\n
Celo
\n
Dogecoin
\n
Ethereum
\n
Harmony
\n
Klaytn
\n
Litecoin
\n
Polygon
\n
XinFin
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/transactions-api/getblockchainfee.md b/v1.0/Blockchain Data/transactions-api/getblockchainfee.md
new file mode 100644
index 00000000..70f6e4b6
--- /dev/null
+++ b/v1.0/Blockchain Data/transactions-api/getblockchainfee.md
@@ -0,0 +1,8 @@
+---
+title: "Get the recommended fee/gas price for a blockchain"
+slug: "getblockchainfee"
+excerpt: "
1 credit per API call
\n
Get the recommended fee/gas price for a blockchain.
\n
Fee is in satoshis(meaning currency(BTC, DOGE,... / 100 000 000) per byte\n
This API is supported for the following blockchains:
Provide a chain name and comma-separated list of addresses. Our API will return all of their transactions along with further information such as their block number, ID of involved token, and more.
\n
If not specified, the API returns transactions of various types (fungible, nft, multitoken, native), but you can also choose to filter specific transactionTypes and even transactionSubtype (incoming, outgoing, zero-transfer).
\n
On top of that, you can add further filters such as specifying block range where the transactions should have occurred, or address and ID of involved tokens.
\n
For Tezos blockchain, the API accepts only one wallet address in addresses query parameter. Following query parameters won't have any effect on filtering data: transactionTypes, transactionSubtype, tokenId, blockTo.
\n
When querying Tezos transactions for a specified wallet or contract address, pagination is supported via pageSize and offset query parameters. \n
When querying Tezos transactions for a specified block, pagination is supported via cursor query parameter, by filling in the value from prevPage or nextPage field in the response body.
Get balances of fungible tokens (ERC-20), NFTs (ERC-721 and ERC-1155) or multitokens (ERC-1155 only) for a specific wallet address on the following blockchains:
\n
\n
Celo - celo / celo-testnet
\n
Ethereum - ethereum / ethereum-sepolia
\n
BNB (Binance) Smart Chain - bsc / bsc-testnet
\n
Polygon - polygon / polygon-mumbai
\n
Tezos - tezos-mainnet
\n
Horizen EON - eon-mainnet
\n
Chiliz - chiliz-mainnet
\n
\n
To get started:
\n
\n
Provide a chain name and comma-separated list of addresses. Our API will return balances of each token along with further information such as its type, id, and more.
\n
Aside from relevant information about each token and its balance, the response also contains metadata (they can, however, be excluded by setting excludeMetadata to true).
\n
If not specified, the API returns balances for all supported types of tokens (fungible tokens, nft, multitokens), but you can also choose to filter specific tokenTypes.
\n
For Tezos blockchain, the API returns balance of any tokens including native token (XTZ) for specified wallet addresses. Following query parameters won't have any effect on filtering data excludeMetadata.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Feb 22 2024 12:00:31 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Data/wallet-api/getutxosbyaddress.md b/v1.0/Blockchain Data/wallet-api/getutxosbyaddress.md
new file mode 100644
index 00000000..e728633f
--- /dev/null
+++ b/v1.0/Blockchain Data/wallet-api/getutxosbyaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Get unspent UTXOs for an address"
+slug: "getutxosbyaddress"
+excerpt: "
100 credits per API call
\n
Get unspent UTXOs for a specific address up to a specific total amount.\nIf you want to prepare a transaction on UTXO-based chains like Bitcoin, you need to enter unspent UTXOs to be able to perform a transaction. By providing ```totalValue``` as a total, our API will return a list of UTXOs that will be enough to cover the transaction.
\nOur API lets you get the unpenst UTXOs for a specific address on:\n
\n
Bitcoin - bitcoin / bitcoin-testnet
\n
Litecoin - litecoin / litecoin-testnet
\n
Dogecoin - doge / doge-testnet
\n
Cardano - cardano / cardano-preprod
\n
\n
To get started:
\n
\n
Provide a chain and address you want to list unspent UTXOs for. If available, our API will return information about the unspent UTXOs for a specific address. API traverses latest 200k incoming transactions.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:31:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 13:24:49 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Node RPC/node-rpc.md b/v1.0/Blockchain Node RPC/node-rpc.md
new file mode 100644
index 00000000..611a0ba2
--- /dev/null
+++ b/v1.0/Blockchain Node RPC/node-rpc.md
@@ -0,0 +1,8 @@
+---
+title: "Node RPC"
+slug: "node-rpc"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:33:42 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:33:42 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Node RPC/node-rpc/nodejsonpostrpcdriver.md b/v1.0/Blockchain Node RPC/node-rpc/nodejsonpostrpcdriver.md
new file mode 100644
index 00000000..be7514d3
--- /dev/null
+++ b/v1.0/Blockchain Node RPC/node-rpc/nodejsonpostrpcdriver.md
@@ -0,0 +1,8 @@
+---
+title: "Connect to the blockchain node through an RPC driver"
+slug: "nodejsonpostrpcdriver"
+excerpt: "
The number of credits consumed depends on the number of methods submitted in an API call: \n* 50 credits per debug*/trace* method (for EVM-based blockchains) \n* 50 credits per EOS Trace API methods \n* 5 credits per eth_call method (for EVM-based blockchains) \n* 2 credits per any other RPC method
\n
Connect directly to the blockchain node provided by Tatum.
\n
The POST method is used. The API endpoint URL acts as an HTTP-based RPC driver.
\n
In the request body, provide valid Web3 RPC method content, for example:
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:33:42 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:33:42 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Operations/blockchain-operations.md b/v1.0/Blockchain Operations/blockchain-operations.md
new file mode 100644
index 00000000..85bf89de
--- /dev/null
+++ b/v1.0/Blockchain Operations/blockchain-operations.md
@@ -0,0 +1,18 @@
+---
+title: "Overview"
+slug: "blockchain-operations"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 14:47:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 14:05:49 GMT+0000 (Coordinated Universal Time)"
+---
+**The Blockchain Operations Suite of products enables you as a developer to create experiences around User operations, Transaction Management, Storage & more**.
+
+We provide you the tools to work on the "Writing on Chain" side of things, like:
+
+1. Creation of Wallets ([Wallet Operations](/docs/wallet-operations)).
+2. Estimating Fees to Broadcast Transactions ([Fee Estimation](/docs/fee-estimation)).
+3. Fetching Exchange Rate for Transactions or TradFi Experience ([Exchange Rate](/docs/exchange-rate))
+4. Creating & Broadcasting Transactions on chain like sending assets, minting tokens etc.
+5. Storing user Related Data On Chain on IPFS or in contract logs ([Storage](/docs/storage))
+6. Creating collections, Deploying Standard Contracts Like Auctions & Marketplace etc ([Contract Deployment](/docs/contract-deployment))
diff --git a/v1.0/Blockchain Operations/contract-deployment.md b/v1.0/Blockchain Operations/contract-deployment.md
new file mode 100644
index 00000000..75374c5f
--- /dev/null
+++ b/v1.0/Blockchain Operations/contract-deployment.md
@@ -0,0 +1,18 @@
+---
+title: "📝 Contract Deployment & Managament"
+slug: "contract-deployment"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:31:58 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:51:52 GMT+0000 (Coordinated Universal Time)"
+---
+This Tatum service enables you to deploy a smart contract on the blockchain. You can create the following types of contracts:
+
+- **ERC-20 - Fungible token like USDT**
+ This contract allows users to create and manage their own fungible tokens on EVM blockchains
+- **ERC-721 - NFT collection like BAYC**
+ This contract enables the creation and management of unique, non-fungible tokens (NFTs) on EVM blockchains
+- **ERC-1155 - MultiToken NFT collection**
+ This contract provides a more flexible token standard that allows for the creation of both fungible and non-fungible tokens on EVM blockchains.
+
+**[API Reference](/reference/deploycontract)**
diff --git a/v1.0/Blockchain Operations/contract-deployment/auction-1.md b/v1.0/Blockchain Operations/contract-deployment/auction-1.md
new file mode 100644
index 00000000..86ce8881
--- /dev/null
+++ b/v1.0/Blockchain Operations/contract-deployment/auction-1.md
@@ -0,0 +1,29 @@
+---
+title: "🏛️ Auction"
+slug: "auction-1"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:32:13 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:57:56 GMT+0000 (Coordinated Universal Time)"
+---
+Peer-to-peer NFT marketplaces like OpenSea allow users to create NFTs with metadata (pictures, videos, songs, 3D art, etc.) and post listings to sell them to one another. OpenSea then takes a percentage of each sale. Users can create fixed-price listings for their NFTs or put them up for auction and sell them to the highest bidder.
+
+Creating NFTs has always been super simple with Tatum. However, peer-to-peer NFT auctions can take a bit of work to implement properly. So we've created out-of-the-box NFT auction functionality that can be deployed in just a few minutes.
+
+When an NFT is sold, the creator is automatically paid, the NFT is instantly transferred to the buyer, and you as the owner of the marketplace automatically receive a percentage of the transaction. Everything happens on the blockchain, so you don’t even need to create a complex, application-level backend to run the listings.
+
+Smart contract enables auction operator to create new auction for NFT (ERC-721/1155). Operator can set a fee in percentage, which will be paid on top of the price of the asset. can be offered for native asset - ETH, BSC, etc. - or any ERC20 token - this is configurable during auction creation. Before auction is created, seller must approve transfer of the NFT to the auction contract. Buyer will bid for the asset from the auction using native asset - send assets along the gid() smart contract call, or via ERC20 token. Buyer of the auction must perform approval for the smart contract to access ERC20 token, before the actual bid() method is called. Once there is higher bid then the actual one, the previous bidder's funds will be returned to him and new bidder will be the current winning one. When auction ends, anyone can settle the auction - NFT will be sent to the bidder, assets to the seller and fee to the operator.
+This operation deploys a smart contract on the blockchain.
+
+This API is supported for the following blockchains:
+
+| Network |
+| :-------------- |
+| BNB Smart Chain |
+| Celo |
+| Ethereum |
+| Harmony |
+| Klaytn |
+| Polygon |
+
+[**API Reference**](/reference/generateauction)
diff --git a/v1.0/Blockchain Operations/contract-deployment/marketplace-1.md b/v1.0/Blockchain Operations/contract-deployment/marketplace-1.md
new file mode 100644
index 00000000..4922c06e
--- /dev/null
+++ b/v1.0/Blockchain Operations/contract-deployment/marketplace-1.md
@@ -0,0 +1,17 @@
+---
+title: "📦 Marketplace"
+slug: "marketplace-1"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:32:23 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:59:21 GMT+0000 (Coordinated Universal Time)"
+---
+Peer-to-peer NFT marketplaces like OpenSea allow users to create NFTs with metadata (pictures, videos, songs, 3D art, etc.) and post listings to sell them to one another. OpenSea then takes a percentage of each sale.
+
+If you want to build a backend for your own peer-to-peer NFT marketplace, you’ll definitely want to implement the same functionality.
+
+Creating NFTs has always been super simple with Tatum. But now, you can also create NFT marketplaces and listings using just a few API calls! When the NFT is sold, the creator is automatically paid, the NFT is instantly transferred to the buyer, and you as the owner of the marketplace automatically receive a percentage of the transaction. Everything happens on the blockchain, so you don’t even need to create a complex, application-level backend to run the listings.
+
+Deploy an NFT marketplace smart contract on the blockchain. With a deployed marketplace smart contract, you and your customers can create new listings for assets such as non-fungible tokens and combinations of token types as described by the ERC-721 and ERC-1155 standards on the Ethereum blockchain or by the equivalent standards on the other blockchains. As the marketplace operator, you can set a fee as a percentage of the asset price that will be paid on top of the asset price.
+
+[**API Reference**](/reference/generatemarketplace)
diff --git a/v1.0/Blockchain Operations/exchange-rates.md b/v1.0/Blockchain Operations/exchange-rates.md
new file mode 100644
index 00000000..62ff5347
--- /dev/null
+++ b/v1.0/Blockchain Operations/exchange-rates.md
@@ -0,0 +1,12 @@
+---
+title: "💲 Exchange Rate"
+slug: "exchange-rates"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:30:43 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 14:09:22 GMT+0000 (Coordinated Universal Time)"
+---
+The exchange rate service offers a powerful feature that enables users to obtain real-time exchange rates for a wide range of cryptocurrencies against more than 165 fiat currencies & more than 90 cryptocurrencies. This functionality can enable a better onboarding experience to new crypto users to keep them up-to-date with the Transaction Value they are most comfortable to read in.
+
+- [API Reference](/reference/getexchangerate)
+- [SDK Reference](/docs/exchange-rates)
diff --git a/v1.0/Blockchain Operations/fee-estimation.md b/v1.0/Blockchain Operations/fee-estimation.md
new file mode 100644
index 00000000..75b18c01
--- /dev/null
+++ b/v1.0/Blockchain Operations/fee-estimation.md
@@ -0,0 +1,12 @@
+---
+title: "💶 Fee Estimation"
+slug: "fee-estimation"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 14:37:27 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:23:24 GMT+0000 (Coordinated Universal Time)"
+---
+The Tatum Fee Estimation provides a simple way to fetch and display the current gas fee for a specific blockchain network. Gas fees are a vital aspect of blockchain transactions, representing the cost required to execute operations on the network. By utilising this service, developers can easily retrieve and showcase the current gas fee for various blockchain networks, enabling better transparency and user experience within decentralised applications.
+
+- [API Reference](/reference/getblockchainfee-1)
+- [SDK Reference](/docs/sdk-fee-estimation)
diff --git a/v1.0/Blockchain Operations/storage.md b/v1.0/Blockchain Operations/storage.md
new file mode 100644
index 00000000..c5a23857
--- /dev/null
+++ b/v1.0/Blockchain Operations/storage.md
@@ -0,0 +1,11 @@
+---
+title: "💾 Storage"
+slug: "storage"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 14:49:28 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:47:22 GMT+0000 (Coordinated Universal Time)"
+---
+You can store data records on the blockchain. A record is stored permanently: it cannot be changed, deleted, or modified by anyone and will be stored on the blockchain forever. For ex. with IPFS (a distributed file storage) you can store data for NFT collections or tokens and read from them.
+
+- [API Reference](/reference/storelog)
diff --git a/v1.0/Blockchain Operations/transact.md b/v1.0/Blockchain Operations/transact.md
new file mode 100644
index 00000000..75320bd4
--- /dev/null
+++ b/v1.0/Blockchain Operations/transact.md
@@ -0,0 +1,8 @@
+---
+title: "Transact"
+slug: "transact"
+excerpt: ""
+hidden: true
+createdAt: "Thu Mar 07 2024 13:31:15 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:20:37 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain Operations/transact/building-a-utxo-transaction.md b/v1.0/Blockchain Operations/transact/building-a-utxo-transaction.md
new file mode 100644
index 00000000..7ddbba9f
--- /dev/null
+++ b/v1.0/Blockchain Operations/transact/building-a-utxo-transaction.md
@@ -0,0 +1,82 @@
+---
+title: "Building a UTXO Transaction"
+slug: "building-a-utxo-transaction"
+excerpt: ""
+hidden: true
+createdAt: "Sun Feb 25 2024 07:40:48 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:20:30 GMT+0000 (Coordinated Universal Time)"
+---
+For UTXO chains (like Bitcoin, Litecoin, Doge, etc.), Tatum supports two methods to build a transaction.
+
+- **fromAddress**
+- **fromUTXO**
+
+> 📘 Make sure there's x2 vout addresses or that you are using "fee" & "ChangeAddress".
+
+## fromAddress
+
+- Using a "standard" approach of x2 vout addresses
+
+Let's say `address_1` contains 100BTC and you want to make a transfer from `address_1` to `address_2` of 10BTC.
+
+The transaction would look as follows:
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/bitcoin/transaction' \
+--header 'x-api-key: {API_KEY}' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "fromAddress": [
+ {
+ "address": "address_1",
+ "privateKey": "pk_address_1"
+ }
+ ],
+ "to": [
+ {
+ "address": "address_1", //The rest of the coin gets defined to be sent back to the sender address.
+ "value": 89.87654321 // Here you also consider the amount of "fee" you will allocate for the "miners"
+ },
+ {
+ "address": "address_2", // where you want to transfer the 10BTC
+ "value": 10
+ }
+ ]
+ }'
+
+// within the "to" IF you only have x1 address as destination and don't specify where the rest of the coins go, the blockchain considers that amount as the "fee" to be given to the miners!
+```
+
+## fromUTXO
+
+- Using `fee` && `changeAddress`
+
+Let's say `address_1` contains 100BTC and you want to make a transfer from `address_1` to `address_2` of 10BTC.
+
+```json cURL
+curl --location --request POST 'https://api.tatum.io/v3/bitcoin/transaction' \
+--header 'x-api-key: {API_KEY}' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "fromUTXO":[
+ {
+ "txHash":"######",
+ "index":##, // the index of the "PublicAddress" within the "txHash"
+ "privateKey":"pk_address_2"
+ }
+ ],
+ "to": [ // this is an array, you can have multiple destinations
+ {
+ "address":"address_y", //main destination address
+ "value":10
+ }
+ ],
+ "changeAddress":"address_1", //where you sent the rest of "unspent" coin
+ "fee":"0.87654321" // this fee is quite high for BTC or LTC, take it as an example.
+}'
+```
+
+## Good to know
+
+- BTC supports a maximum of eight (8) decimals.
+- You may use FeeEstimate endpoints to figure out the amount to set up as the miner's fees.
diff --git a/v1.0/Blockchain Operations/wallet-operations.md b/v1.0/Blockchain Operations/wallet-operations.md
new file mode 100644
index 00000000..b1e22e36
--- /dev/null
+++ b/v1.0/Blockchain Operations/wallet-operations.md
@@ -0,0 +1,12 @@
+---
+title: "💻 Wallet Operations"
+slug: "wallet-operations"
+excerpt: ""
+hidden: false
+createdAt: "Thu Mar 07 2024 13:29:31 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:09:43 GMT+0000 (Coordinated Universal Time)"
+---
+A wallet, in the context of blockchain and cryptocurrencies, is a digital tool that allows users to securely store, manage, and transact with their digital assets such as cryptocurrencies and tokens. Wallets come in various forms, including hardware, software, and even paper wallets. The primary function of a wallet is to securely store a user's private keys, which are needed to access and manage their assets on the blockchain.
+
+- [API Reference](/docs/wallet-provider)
+- [SDK Reference](/docs/wallet-address-operations)
diff --git a/v1.0/Blockchain/algorand.md b/v1.0/Blockchain/algorand.md
new file mode 100644
index 00000000..a37ac5c2
--- /dev/null
+++ b/v1.0/Blockchain/algorand.md
@@ -0,0 +1,8 @@
+---
+title: "Algorand"
+slug: "algorand"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/algorand/algonodegetdriver.md b/v1.0/Blockchain/algorand/algonodegetdriver.md
new file mode 100644
index 00000000..5792b827
--- /dev/null
+++ b/v1.0/Blockchain/algorand/algonodegetdriver.md
@@ -0,0 +1,8 @@
+---
+title: "Access Algorand Algod GET node endpoints"
+slug: "algonodegetdriver"
+excerpt: "
Enable accepting Algorand asset on the sender account.
\nThis operation needs the private key of the blockchain address.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:03 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/algorand/algorandblockchaintransfer.md b/v1.0/Blockchain/algorand/algorandblockchaintransfer.md
new file mode 100644
index 00000000..192a825a
--- /dev/null
+++ b/v1.0/Blockchain/algorand/algorandblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send Algos to an Algorand account"
+slug: "algorandblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send Algos from one Algorand address to the other one.
\n
Signing a transaction
\n
When sending Algos, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Broadcast signed transaction to Algorand blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
Broadcast signed transaction to Bitcoin Cash blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin-cash/bchgenerateaddress.md b/v1.0/Blockchain/bitcoin-cash/bchgenerateaddress.md
new file mode 100644
index 00000000..43795002
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin-cash/bchgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Bitcoin Cash deposit address from Extended public key"
+slug: "bchgenerateaddress"
+excerpt: "
5 credits per API call.
\n
Generate Bitcoin Cash deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31 - 1. Generates new format of address starting with bitcoincash: in case of mainnet, bchtest: in case of testnet..
Generate private key for address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Bitcoin Cash wallet with derivation path m'/44'/145'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Bitcoin Cash wallet.
Use this endpoint URL as an http-based JSON RPC driver to connect directly to the node provided by Tatum.\nTo learn more about JSON RPC, visit Bitcoin Cash developers' guide.
Bitcoin Cash transactions are based on UTXOs. \"UTXO\" stands for \"Unspent Transaction Output\". A UTXO is the amount of BCH 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.
\n
You build a BCH transaction by sending BCH from UTXOs. Each UTXO is included in the transaction.
\n
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 BCH and T2 with 2 BCH. A transaction that consumes the UTXOs from both T1 and T2 will have an available amount of 3 BCH to spend: 1 BCH (from T1) + 2 BCH (from T2) = 3 BCH (to spend in total)
\n
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.
\n
Paying the gas fee and receiving the change \nWhen 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).
\n
Signing a transaction \nWhen sending BCH, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Broadcasts a signed transaction to the Bitcoin blockchain. This method is used internally from Tatum KMS or Tatum Client Libraries.\nIt is possible to create a custom signing mechanism and only use this method for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:53 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgenerateaddress.md b/v1.0/Blockchain/bitcoin/btcgenerateaddress.md
new file mode 100644
index 00000000..2d7c4d88
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate a Bitcoin address from the wallet's extended public key"
+slug: "btcgenerateaddress"
+excerpt: "
1 credit per API call
\n
Generate a Bitcoin address from the extended public key of the wallet. The address is generated for the specific index - each extended public key can generate up to 2^32 addresses with the index starting from 0 up to 2^31 - 1.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgenerateaddressprivatekey.md b/v1.0/Blockchain/bitcoin/btcgenerateaddressprivatekey.md
new file mode 100644
index 00000000..383074c3
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgenerateaddressprivatekey.md
@@ -0,0 +1,8 @@
+---
+title: "Generate the private key for a Bitcoin address"
+slug: "btcgenerateaddressprivatekey"
+excerpt: "
1 credit per API call
\n
Generates a private key for an address from a mnemonic for a given derivation path index. The private key is generated for the specific index - each mnemonic can generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
Tatum supports BIP44 HD wallets. Because they can generate 2^31 addresses from 1 mnemonic phrase, they are very convenient and secure. A mnemonic phrase consists of 24 special words in a defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Bitcoin wallet with derivation path m'/44'/0'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Bitcoin wallet.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgetbalanceofaddress.md b/v1.0/Blockchain/bitcoin/btcgetbalanceofaddress.md
new file mode 100644
index 00000000..c285c8b3
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgetbalanceofaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Get the balance of a Bitcoin address"
+slug: "btcgetbalanceofaddress"
+excerpt: "
1 credit per API call
\n
Get the balance of a Bitcoin address.
\n
The API returns the balance only if the address has up to 50,000 UTXOs (Unspent Transaction Outputs). For an address with more than 50,000 UTXOs, the API returns an error with the 403 response code.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:52 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgetbalanceofaddressbatch.md b/v1.0/Blockchain/bitcoin/btcgetbalanceofaddressbatch.md
new file mode 100644
index 00000000..8e1b1a2c
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgetbalanceofaddressbatch.md
@@ -0,0 +1,8 @@
+---
+title: "Get the balance of multiple Bitcoin addresses"
+slug: "btcgetbalanceofaddressbatch"
+excerpt: "
50 credits per API call
\n
Get the balance of multiple Bitcoin addresses, up to 30.
\n
The API returns the balance only if the address has up to 50,000 UTXOs (Unspent Transaction Outputs). For an address with more than 50,000 UTXOs, the API returns an error with the 403 response code.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:52 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgetblock.md b/v1.0/Blockchain/bitcoin/btcgetblock.md
new file mode 100644
index 00000000..44d84f74
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgetblock.md
@@ -0,0 +1,8 @@
+---
+title: "Get a Bitcoin block by its hash or height"
+slug: "btcgetblock"
+excerpt: "
1 credit per API call
\n
Gets Bitcoin block detail by block hash or height.
Gets Bitcoin blockchain information. Obtains basic info like the testnet / mainnet version of the chain, the current block number and its hash.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgetblockhash.md b/v1.0/Blockchain/bitcoin/btcgetblockhash.md
new file mode 100644
index 00000000..9df41361
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgetblockhash.md
@@ -0,0 +1,8 @@
+---
+title: "Get the hash of a Bitcoin block"
+slug: "btcgetblockhash"
+excerpt: "
1 credit per API call
\n
Gets a Bitcoin block hash. Returns the hash of the block to get the block's details.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgetmempool.md b/v1.0/Blockchain/bitcoin/btcgetmempool.md
new file mode 100644
index 00000000..b5925e18
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgetmempool.md
@@ -0,0 +1,8 @@
+---
+title: "Get transactions from the Bitcoin mempool"
+slug: "btcgetmempool"
+excerpt: "
1 credit per API call
\n
Gets Bitcoin transaction IDs in the mempool.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgetrawtransaction.md b/v1.0/Blockchain/bitcoin/btcgetrawtransaction.md
new file mode 100644
index 00000000..bf5c9a78
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgetrawtransaction.md
@@ -0,0 +1,8 @@
+---
+title: "Get a Bitcoin transaction by its hash"
+slug: "btcgetrawtransaction"
+excerpt: "
1 credit per API call
\n
Get Bitcoin Transaction detail by transaction hash.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:52 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgettxbyaddress.md b/v1.0/Blockchain/bitcoin/btcgettxbyaddress.md
new file mode 100644
index 00000000..2f65295d
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgettxbyaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Get all transactions for a Bitcoin address"
+slug: "btcgettxbyaddress"
+excerpt: "
1 credit per API call
\n
Get all transactions for a Bitcoin address.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:52 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcgetutxo.md b/v1.0/Blockchain/bitcoin/btcgetutxo.md
new file mode 100644
index 00000000..b239c9f6
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcgetutxo.md
@@ -0,0 +1,8 @@
+---
+title: "Get information about a transaction output (UTXO) in a Bitcoin transaction"
+slug: "btcgetutxo"
+excerpt: "
1 credit per API call
\n
Get information about a transaction output in a transaction and check whether this output is a UTXO or has been spent.
\n
\"UTXO\" stands for \"Unspent Transaction Output\". A UTXO is the amount of BTC/satoshis that remains at a Bitcoin 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 about Bitcoin transactions and UTXO, see the Bitcoin user documentation.
\n
\n
If the transaction output is an UTXO, the API returns data about it.
\n
If the transaction output has been spent and there is no UTXO to return, the API returns an error with the 404 response code.
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bitcoin/btcrpcdriver.md b/v1.0/Blockchain/bitcoin/btcrpcdriver.md
new file mode 100644
index 00000000..6e18f35d
--- /dev/null
+++ b/v1.0/Blockchain/bitcoin/btcrpcdriver.md
@@ -0,0 +1,8 @@
+---
+title: "Connect to a Bitcoin node through an RPC driver"
+slug: "btcrpcdriver"
+excerpt: "
This endpoint is deprecated. Do not use it. \nInstead, use this API.
\n
2 credits per API call
\n
Use this endpoint URL as an http-based JSON RPC driver to connect directly to the node provided by Tatum.\nTo learn more about JSON RPC, visit the Bitcoin developers' guide.
Bitcoin transactions are based on UTXOs. \"UTXO\" stands for \"Unspent Transaction Output\". A UTXO is the amount of BTC/satoshis that remains at a Bitcoin 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 about Bitcoin transactions and UTXO, see the Bitcoin user documentation. To check UTXOs in a transaction, see the API for getting information about a transaction output (UTXO) in a Bitcoin transaction.
\n
You can build a BTC transaction by one of the following methods:
\n
\n
Sending BTC from blockchain addresses The assets are sent from a list of addresses. For each address, the last 100 transactions are scanned for any UTXO to be included in the transaction. For easier control over the assets to be sent, we recommend that you use this method only if you have one address to send the assets from. To use this method, use the BtcTransactionFromAddress or BtcTransactionFromAddressKMS schema of the request body.
\n
Sending BTC from UTXOs The assets are sent from a list of UTXOs. Each UTXO is included in the transaction. Use this method if you want to manually calculate the amount to send. To use this method, use the BtcTransactionFromUTXO or BtcTransactionFromUTXOKMS schema of the request body.
\n
\n
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 BTC and T2 with 2 BTC. A transaction that consumes the UTXOs from both T1 and T2 will have an available amount of 3 BTC to spend: 1 BTC (from T1) + 2 BTC (from T2) = 3 BTC (to spend in total)
\n
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.
\n
Paying the gas fee and receiving the change \nWhen 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).
\n
Signing a transaction \nWhen sending BTC, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Send Binance or Binance Token token from account to account.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey.\nPrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\n Tatum KMS should be used for the highest security standards, and signatureId should be present in the request.\n Alternatively, using the Tatum client library for supported languages.\n
Broadcast signed transaction to Binance blockchain. This method is used internally or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:00 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bnb-smart-chain.md b/v1.0/Blockchain/bnb-smart-chain.md
new file mode 100644
index 00000000..c81598a3
--- /dev/null
+++ b/v1.0/Blockchain/bnb-smart-chain.md
@@ -0,0 +1,8 @@
+---
+title: "BNB Smart Chain"
+slug: "bnb-smart-chain"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bnb-smart-chain/bscblockchainsmartcontractinvocation.md b/v1.0/Blockchain/bnb-smart-chain/bscblockchainsmartcontractinvocation.md
new file mode 100644
index 00000000..43a7978c
--- /dev/null
+++ b/v1.0/Blockchain/bnb-smart-chain/bscblockchainsmartcontractinvocation.md
@@ -0,0 +1,8 @@
+---
+title: "Invoke a method in a smart contract on BNB Smart Chain"
+slug: "bscblockchainsmartcontractinvocation"
+excerpt: "
2 credits per API call
\n
Invoke a method in an existing smart contract on BNB Smart Chain.
\n
You can call a read-only or write method.
\n
\n
For read-only methods, the output of the invoked method is returned.
\n
For write methods, the ID of the associated transaction is returned.
\n
\n
Troubleshooting a failed transaction \nTatum ensures that this API works against the blockchain (accesses the blockchain, finds the specified smart contract, and executes the specified ABI method with the provided parameters). However, because this API can be run against any smart contract on the blockchain, Tatum cannot in any way guarantee that the method itself will be executed successfully.
\n
If you have issues with invoking the method, refer to the user documentation for this method, or contact the author of the smart contract.
\n
For more information about invoking methods in smart contracts, see this article on our Support Portal.
\n
Signing a transaction \nWhen invoking a method in a smart contract, 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.
\n
If caller field is present instead of the private key, Tatum will sign the transaction with the managed private key connected to the caller address. This is applicable only for paid mainnet plans and all testnet plans. Keep in mind that the caller address must have enough access right to perform the action in the smart contract method.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:09 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bnb-smart-chain/bscblockchaintransfer.md b/v1.0/Blockchain/bnb-smart-chain/bscblockchaintransfer.md
new file mode 100644
index 00000000..996861f5
--- /dev/null
+++ b/v1.0/Blockchain/bnb-smart-chain/bscblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send BSC / BEP20 from account to account"
+slug: "bscblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send BNB or Tatum supported BEP20 token from account to account.
\n
Signing a transaction
\n
When sending BNB, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Broadcast signed transaction to BSC blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/bnb-smart-chain/bscgenerateaddress.md b/v1.0/Blockchain/bnb-smart-chain/bscgenerateaddress.md
new file mode 100644
index 00000000..68812569
--- /dev/null
+++ b/v1.0/Blockchain/bnb-smart-chain/bscgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate BSC account address from Extended public key"
+slug: "bscgenerateaddress"
+excerpt: "
1 credit per API call
\n
Generate BSC account deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for BSC wallet with derivation path m'/44'/60'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible BSC wallet.
Get a number of outgoing BSC transactions for the address. When a transaction is sent, there can be multiple outgoing transactions,\nwhich are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents\nthe order of the transaction in the list of outgoing transactions.
Use this endpoint URL as a http-based web3 driver to connect directly to the BSC node provided by Tatum.\nTo learn more about BSC Web3, visit the BSC developer's guide.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:09 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/cardano.md b/v1.0/Blockchain/cardano.md
new file mode 100644
index 00000000..de715401
--- /dev/null
+++ b/v1.0/Blockchain/cardano.md
@@ -0,0 +1,8 @@
+---
+title: "Cardano"
+slug: "cardano"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/cardano/adabroadcast.md b/v1.0/Blockchain/cardano/adabroadcast.md
new file mode 100644
index 00000000..05040421
--- /dev/null
+++ b/v1.0/Blockchain/cardano/adabroadcast.md
@@ -0,0 +1,8 @@
+---
+title: "Broadcast signed Ada transaction"
+slug: "adabroadcast"
+excerpt: "
Broadcasts a signed transaction to the Ada blockchain. This method is used internally from Tatum KMS or Tatum Client Libraries.\nIt is possible to create a custom signing mechanism and only use this method for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:02 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/cardano/adagenerateaddress.md b/v1.0/Blockchain/cardano/adagenerateaddress.md
new file mode 100644
index 00000000..ad734719
--- /dev/null
+++ b/v1.0/Blockchain/cardano/adagenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Ada deposit address from Extended public key"
+slug: "adagenerateaddress"
+excerpt: "
Generates a Ada deposit address from an Extended public key. The deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31 - 1.
Generates a private key for an address from a mnemonic for a given derivation path index. The private key is generated for the specific index - each mnemonic\ncan generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
Tatum supports BIP44 HD wallets. Because they can generate 2^31 addresses from 1 mnemonic phrase, they are very convenient and secure. A mnemonic phrase consists of 24 special words in a defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for ADA wallet with derivation path m/1852'/1815'/0'. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Ada wallet.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:01 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/cardano/adagetaccount.md b/v1.0/Blockchain/cardano/adagetaccount.md
new file mode 100644
index 00000000..39b789e5
--- /dev/null
+++ b/v1.0/Blockchain/cardano/adagetaccount.md
@@ -0,0 +1,8 @@
+---
+title: "Gets a Ada account by address"
+slug: "adagetaccount"
+excerpt: "
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:02 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/cardano/adatransferblockchain.md b/v1.0/Blockchain/cardano/adatransferblockchain.md
new file mode 100644
index 00000000..b4ca8c03
--- /dev/null
+++ b/v1.0/Blockchain/cardano/adatransferblockchain.md
@@ -0,0 +1,8 @@
+---
+title: "Send ADA to Cardano addresses"
+slug: "adatransferblockchain"
+excerpt: "
2 credits per API call
\n
Send ADA to blockchain addresses.
\n
Cardano transactions are based on UTXOs. \"UTXO\" stands for \"Unspent Transaction Output\". A UTXO is the amount of ADA that remains at a Cardano 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 about the UTXO, see the Bitcoin user documentation.
\n
You can build an ADA transaction by one of the following methods:
\n
\n
Sending ADA from blockchain addresses The assets are sent from a list of addresses. For each address, the last 100 transactions are scanned for any UTXO to be included in the transaction. For easier control over the assets to be sent, we recommend that you use this method only if you have one address to send the assets from. To use this method, use the AdaTransactionFromAddress or AdaTransactionFromAddressKMS schema of the request body.
\n
Sending ADA from UTXOs The assets are sent from a list of UTXOs. Each UTXO is included in the transaction. Use this method if you want to manually calculate the amount to send. To use this method, use the AdaTransactionFromUTXO or AdaTransactionFromUTXOKMS schema of the request body.
\n
\n
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 ADA and T2 with 2 ADA. A transaction that consumes the UTXOs from both T1 and T2 will have an available amount of 3 ADA to spend: 1 ADA (from T1) + 2 ADA (from T2) = 3 ADA (to spend in total)
\n
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.
\n
Paying the gas fee and receiving the change \nWhen 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).
\n
Signing a transaction \nWhen sending ADA, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/celo.md b/v1.0/Blockchain/celo.md
new file mode 100644
index 00000000..a7f40db3
--- /dev/null
+++ b/v1.0/Blockchain/celo.md
@@ -0,0 +1,8 @@
+---
+title: "Celo"
+slug: "celo"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/celo/celoblockchainsmartcontractinvocation.md b/v1.0/Blockchain/celo/celoblockchainsmartcontractinvocation.md
new file mode 100644
index 00000000..b99528aa
--- /dev/null
+++ b/v1.0/Blockchain/celo/celoblockchainsmartcontractinvocation.md
@@ -0,0 +1,8 @@
+---
+title: "Invoke a method in a smart contract on Celo"
+slug: "celoblockchainsmartcontractinvocation"
+excerpt: "
2 credits per API call
\n
Invoke a method in an existing smart contract on Celo.
\n
You can call a read-only or write method.
\n
\n
For read-only methods, the output of the invoked method is returned.
\n
For write methods, the ID of the associated transaction is returned.
\n
\n
Troubleshooting a failed transaction \nTatum ensures that this API works against the blockchain (accesses the blockchain, finds the specified smart contract, and executes the specified ABI method with the provided parameters). However, because this API can be run against any smart contract on the blockchain, Tatum cannot in any way guarantee that the method itself will be executed successfully.
\n
If you have issues with invoking the method, refer to the user documentation for this method, or contact the author of the smart contract.
\n
For more information about invoking methods in smart contracts, see this article on our Support Portal.
\n
Signing a transaction \nWhen invoking a method in a smart contract, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/celo/celoblockchaintransfer.md b/v1.0/Blockchain/celo/celoblockchaintransfer.md
new file mode 100644
index 00000000..37b17b14
--- /dev/null
+++ b/v1.0/Blockchain/celo/celoblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send Celo / ERC20 from account to account"
+slug: "celoblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send Celo, cUSD or Tatum supported ERC20 token from account to account.
\n
Signing a transaction
\n
When sending CELO, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/celo/celobroadcast.md b/v1.0/Blockchain/celo/celobroadcast.md
new file mode 100644
index 00000000..999931c7
--- /dev/null
+++ b/v1.0/Blockchain/celo/celobroadcast.md
@@ -0,0 +1,8 @@
+---
+title: "Broadcast signed Celo transaction"
+slug: "celobroadcast"
+excerpt: "
2 credits per API call
\n
Broadcast signed transaction to Celo blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/celo/celogenerateaddress.md b/v1.0/Blockchain/celo/celogenerateaddress.md
new file mode 100644
index 00000000..471cfbe8
--- /dev/null
+++ b/v1.0/Blockchain/celo/celogenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Celo account address from Extended public key"
+slug: "celogenerateaddress"
+excerpt: "
1 credit per API call
\n
Generate Celo account deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Celo wallet with derivation path m'/44'/52752'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Celo wallet.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/celo/celogettransactionbyaddress.md b/v1.0/Blockchain/celo/celogettransactionbyaddress.md
new file mode 100644
index 00000000..800ad8a7
--- /dev/null
+++ b/v1.0/Blockchain/celo/celogettransactionbyaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Get Celo transactions by address"
+slug: "celogettransactionbyaddress"
+excerpt: "
This endpoint is deprecated. Do not use it.
\n
1 credit per API call
\n
Get Celo transactions by address. This includes incoming and outgoing transactions for the address.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:06 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/celo/celogettransactioncount.md b/v1.0/Blockchain/celo/celogettransactioncount.md
new file mode 100644
index 00000000..32aac8b4
--- /dev/null
+++ b/v1.0/Blockchain/celo/celogettransactioncount.md
@@ -0,0 +1,8 @@
+---
+title: "Get count of outgoing Celo transactions"
+slug: "celogettransactioncount"
+excerpt: "
1 credit per API call
\n
Get a number of outgoing Celo transactions for the address. When a transaction is sent, there can be multiple outgoing transactions,\nwhich are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents\nthe order of the transaction in the list of outgoing transactions.
Use this endpoint URL as a http-based web3 driver to connect directly to the Celo node provided by Tatum.\nTo learn more about Celo Web3, visit the Celo developer's guide.
Broadcast signed transaction to Dogecoin blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/dogecoin/dogegenerateaddress.md b/v1.0/Blockchain/dogecoin/dogegenerateaddress.md
new file mode 100644
index 00000000..1fa4865f
--- /dev/null
+++ b/v1.0/Blockchain/dogecoin/dogegenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Dogecoin deposit address from Extended public key"
+slug: "dogegenerateaddress"
+excerpt: "
1 credit per API call.
\n
Generate Dogecoin deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31 - 1.
Generate private key for address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Dogecoin wallet with derivation path m'/44'/3'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/litecoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Dogecoin wallet.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:56 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/dogecoin/dogegetbalanceofaddress.md b/v1.0/Blockchain/dogecoin/dogegetbalanceofaddress.md
new file mode 100644
index 00000000..d9778a30
--- /dev/null
+++ b/v1.0/Blockchain/dogecoin/dogegetbalanceofaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Get the balance of a Dogecoin address"
+slug: "dogegetbalanceofaddress"
+excerpt: "
5 credits per API call.
\n
Get Dogecoin Balance of the address.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum Dogecoin SDK.'"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:57 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/dogecoin/dogegetbalanceofaddressbatch.md b/v1.0/Blockchain/dogecoin/dogegetbalanceofaddressbatch.md
new file mode 100644
index 00000000..901bec8c
--- /dev/null
+++ b/v1.0/Blockchain/dogecoin/dogegetbalanceofaddressbatch.md
@@ -0,0 +1,8 @@
+---
+title: "Get the balance of multiple Dogecoin addresses"
+slug: "dogegetbalanceofaddressbatch"
+excerpt: "
50 credits per API call
\n
Get the balance of multiple Dogecoin addresses, up to 30.
\n
The API returns the balance only if the address has up to 50,000 UTXOs (Unspent Transaction Outputs). For an address with more than 50,000 UTXOs, the API returns an error with the 403 response code.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:57 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/dogecoin/dogegetblock.md b/v1.0/Blockchain/dogecoin/dogegetblock.md
new file mode 100644
index 00000000..b32daceb
--- /dev/null
+++ b/v1.0/Blockchain/dogecoin/dogegetblock.md
@@ -0,0 +1,8 @@
+---
+title: "Get Dogecoin Block by hash or height"
+slug: "dogegetblock"
+excerpt: "
1 credit per API call.
Get Dogecoin Block detail by block hash or height.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum Dogecoin SDK.'"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/dogecoin/dogegetutxo.md b/v1.0/Blockchain/dogecoin/dogegetutxo.md
new file mode 100644
index 00000000..c1bf2faa
--- /dev/null
+++ b/v1.0/Blockchain/dogecoin/dogegetutxo.md
@@ -0,0 +1,8 @@
+---
+title: "Get information about a transaction output (UTXO) in a Dogecoin transaction"
+slug: "dogegetutxo"
+excerpt: "
1 credit per API call
\n
Get information about a transaction output in a transaction and check whether this output is a UTXO or has been spent.
\n
\"UTXO\" stands for \"Unspent Transaction Output\". A UTXO is the amount of DOGE that remains at a Dogecoin 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 about the UTXO, see the Bitcoin user documentation.
\n
\n
If the transaction output is an UTXO, the API returns data about it.
\n
If the transaction output has been spent and there is no UTXO to return, the API returns an error with the 404 response code.
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. To check UTXOs in a transaction, see the API for getting information about a transaction output (UTXO) in a Dogecoin transaction
\n
You build a DOGE transaction by sending DOGE from UTXOs. Each UTXO is included in the transaction.
\n
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)
\n
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.
\n
Paying the gas fee and receiving the change \nWhen 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).
\n
Signing a transaction \nWhen 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on devnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n
Broadcast signed transaction to EGLD blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
Generate EGLD account deposit address from mnemonic phrase. Deposit address is generated for the specific\nindex - each mnemonic phrase can generate up to 2^31 addresses starting from index 0 until 2^31.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
The Elrond Address format is bech32, specified by the BIP 0173. The address always starts with an erd1. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase.\nMnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys.\n \nEach address is identified by 3 main values:\n
Private Key - your secret value, which should never be revealed
\n
Public Key - public address to be published
\n
Derivation index - index of generated address
\n\n
Tatum follows BIP44 specification and generates for EGLD wallet with derivation path m'/44'/508'/0'/0'.\nMore about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible EGLD wallet.
Get a number of outgoing EGLD transactions for the address. When a transaction is sent, there can be multiple outgoing transactions,\nwhich are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents\nthe order of the transaction in the list of outgoing transactions.
Use this endpoint URL as a http-based driver to connect directly to the EGLD node provided by Tatum.\nTo learn more about EGLD, visit the EGLD developer's guide.
Use this endpoint URL as a http-based driver to connect directly to the EGLD node provided by Tatum.\nTo learn more about EGLD, visit the EGLD developer's guide.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/ethereum-1.md b/v1.0/Blockchain/ethereum-1.md
new file mode 100644
index 00000000..711cda65
--- /dev/null
+++ b/v1.0/Blockchain/ethereum-1.md
@@ -0,0 +1,8 @@
+---
+title: "Ethereum"
+slug: "ethereum-1"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/ethereum-1/ethblockchainsmartcontractinvocation.md b/v1.0/Blockchain/ethereum-1/ethblockchainsmartcontractinvocation.md
new file mode 100644
index 00000000..2d8899cf
--- /dev/null
+++ b/v1.0/Blockchain/ethereum-1/ethblockchainsmartcontractinvocation.md
@@ -0,0 +1,8 @@
+---
+title: "Invoke a method in a smart contract on Ethereum"
+slug: "ethblockchainsmartcontractinvocation"
+excerpt: "
2 credits per API call
\n
Invoke a method in an existing smart contract on Ethereum.
\n
You can call a read-only or write method.
\n
\n
For read-only methods, the output of the invoked method is returned.
\n
For write methods, the ID of the associated transaction is returned.
\n
\n
Troubleshooting a failed transaction \nTatum ensures that this API works against the blockchain (accesses the blockchain, finds the specified smart contract, and executes the specified ABI method with the provided parameters). However, because this API can be run against any smart contract on the blockchain, Tatum cannot in any way guarantee that the method itself will be executed successfully.
\n
If you have issues with invoking the method, refer to the user documentation for this method, or contact the author of the smart contract.
\n
For more information about invoking methods in smart contracts, see this article on our Support Portal.
\n
Signing a transaction \nWhen invoking a method in a smart contract, 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.
\n
If caller field is present instead of the private key, Tatum will sign the transaction with the managed private key connected to the caller address. This is applicable only for paid mainnet plans and all testnet plans. Keep in mind that the caller address must have enough access right to perform the action in the smart contract method.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:54 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/ethereum-1/ethblockchaintransfer.md b/v1.0/Blockchain/ethereum-1/ethblockchaintransfer.md
new file mode 100644
index 00000000..3d6e75ed
--- /dev/null
+++ b/v1.0/Blockchain/ethereum-1/ethblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send ETH or fungible tokens (ERC-20) from account to account"
+slug: "ethblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send ETH or Tatum-supported fungible tokens (ERC-20) from account to account.
\n
NOTE: Sending the fungible tokens is supported only on the mainnet.
\n
Signing a transaction \nWhen sending ETH, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Broadcast signed transaction to Ethereum blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:54 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/ethereum-1/ethgenerateaddress.md b/v1.0/Blockchain/ethereum-1/ethgenerateaddress.md
new file mode 100644
index 00000000..9f100482
--- /dev/null
+++ b/v1.0/Blockchain/ethereum-1/ethgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Ethereum account address from Extended public key"
+slug: "ethgenerateaddress"
+excerpt: "
1 credit per API call.
\n
Generates an Ethereum account deposit address from an Extended public key. The deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31 - 1.
Generates the private key of an address from a mnemonic for a given derivation path index. The private key is generated for the specific index - each mnemonic\ncan generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
Tatum supports BIP44 HD wallets. Because they can generate 2^31 addresses from 1 mnemonic phrase, they are very convenient and secure. A mnemonic phrase consists of 24 special words in a defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value which should never be revealed
Public Key - a public address to be published
Derivation index - an index of generated address
Tatum follows the BIP44 specification and generates for Ethereum wallets with the derivation path m/44'/60'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerates a BIP44 compatible Ethereum wallet.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:53 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/ethereum-1/ethgetbalance.md b/v1.0/Blockchain/ethereum-1/ethgetbalance.md
new file mode 100644
index 00000000..331cdfed
--- /dev/null
+++ b/v1.0/Blockchain/ethereum-1/ethgetbalance.md
@@ -0,0 +1,8 @@
+---
+title: "Get the ETH balance of an Ethereum account"
+slug: "ethgetbalance"
+excerpt: "
Get a number of outgoing Ethereum transactions for the address. When a transaction is sent, there can be multiple outgoing transactions,\nwhich are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents\nthe order of the transaction in the list of outgoing transactions.
Use this endpoint URL as an http-based web3 driver to connect directly to the Ethereum node provided by Tatum.\nTo learn more about Ethereum Web3, visit the Ethereum developers' guide.
100 credits per API call. Tatum covers the fee connected to the transaction costs in subscription credits. This operation can be done on mainnet only for paid plans.
\n
Add public key to existing Flow blockchain addresses. Private key for that public key can be used for signing transaction.\nThere are two possibilites how the transaction on the blockchain can be created:\n
\n
Using mnemonic and index - private key is generated based on the index in the mnemonic.
\n
Using secret - private keys is entered manually.
\n
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and losing funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:58 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/flow/flowcreateaddressfrompubkey.md b/v1.0/Blockchain/flow/flowcreateaddressfrompubkey.md
new file mode 100644
index 00000000..77a03b1e
--- /dev/null
+++ b/v1.0/Blockchain/flow/flowcreateaddressfrompubkey.md
@@ -0,0 +1,8 @@
+---
+title: "Create Flow address from public key"
+slug: "flowcreateaddressfrompubkey"
+excerpt: "
100 credits per API call. Tatum covers the fee connected to the transaction costs in subscription credits. This operation can be done on mainnet only for paid plans.
\n
Create Flow blockchain addresses from public key. This will generate address on the blockchain with public key. Private key for that public key can be used for signing transaction.\nThere are two possibilites how the transaction on the blockchain can be created:\n
\n
Using mnemonic and index - private key is generated based on the index in the mnemonic.
\n
Using secret - private keys is entered manually.
\n
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and losing funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:58 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/flow/flowgenerateaddress.md b/v1.0/Blockchain/flow/flowgenerateaddress.md
new file mode 100644
index 00000000..068a79db
--- /dev/null
+++ b/v1.0/Blockchain/flow/flowgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Flow address from Extended public key"
+slug: "flowgenerateaddress"
+excerpt: "
1 credit for GET operation + 300 credits per address.
\n
Generate Flow address from Extended public key. This operation internally creates public key and assigns it to the newly created address on the blockchain.\nThere is minimal amount, which must be sent to the FLOW address during creation - 0.001 FLOW, which will be used from Tatum service account. \nThis operation is allowed on any Testnet plan and only on Paid Mainnet plans.\nPublic key is generated for the specific index - each extended public key can generate up to 2^31 addresses starting from index 0 until 2^31 - 1.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:57 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/flow/flowgeneratepubkey.md b/v1.0/Blockchain/flow/flowgeneratepubkey.md
new file mode 100644
index 00000000..ea0a2c65
--- /dev/null
+++ b/v1.0/Blockchain/flow/flowgeneratepubkey.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Flow public key from Extended public key"
+slug: "flowgeneratepubkey"
+excerpt: "
1 credit per API call.
\n
Generate Flow public key from Extended public key. This key is added to the address on the blockchain and can control the funds there. Public key is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31 - 1.
Generate private key for address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Dogecoin wallet with derivation path m'/44'/3'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/litecoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Dogecoin wallet.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:57 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/flow/flowgetaccount.md b/v1.0/Blockchain/flow/flowgetaccount.md
new file mode 100644
index 00000000..1f7fd7ee
--- /dev/null
+++ b/v1.0/Blockchain/flow/flowgetaccount.md
@@ -0,0 +1,8 @@
+---
+title: "Get the balance of a Flow account"
+slug: "flowgetaccount"
+excerpt: "
1 credit per API call.
Get Flow account details.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:58 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/flow/flowgetblock.md b/v1.0/Blockchain/flow/flowgetblock.md
new file mode 100644
index 00000000..dca04bce
--- /dev/null
+++ b/v1.0/Blockchain/flow/flowgetblock.md
@@ -0,0 +1,8 @@
+---
+title: "Get Flow Block by hash or height"
+slug: "flowgetblock"
+excerpt: "
Send Flow or FUSD to blockchain addresses. Tatum covers the fee connected to the transaction costs in subscription credits. This operation can be done on mainnet only for paid plans. \nThere are two possibilites how the transaction on the blockchain can be created:\n
\n
Using mnemonic and index - private key is generated based on the index in the mnemonic.
\n
Using secret - private keys is entered manually.
\n
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and losing funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:58 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/flow/flowtransfercustomblockchain.md b/v1.0/Blockchain/flow/flowtransfercustomblockchain.md
new file mode 100644
index 00000000..2bbb0fc6
--- /dev/null
+++ b/v1.0/Blockchain/flow/flowtransfercustomblockchain.md
@@ -0,0 +1,8 @@
+---
+title: "Send arbitrary transaction to blockchain"
+slug: "flowtransfercustomblockchain"
+excerpt: "
100 credits per API call.
\n
Send arbitrary blockchain transaction to FLOW blockchain. Tatum covers the fee connected to the transaction costs in subscription credits. This operation can be done on mainnet only for paid plans. \nThere are two possibilites how the transaction on the blockchain can be created:\n
\n
Using mnemonic and index - private key is generated based on the index in the mnemonic.
\n
Using secret - private keys is entered manually.
\n
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and losing funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:58 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/harmony.md b/v1.0/Blockchain/harmony.md
new file mode 100644
index 00000000..0291a795
--- /dev/null
+++ b/v1.0/Blockchain/harmony.md
@@ -0,0 +1,8 @@
+---
+title: "Harmony"
+slug: "harmony"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/harmony/oneblockchainsmartcontractinvocation.md b/v1.0/Blockchain/harmony/oneblockchainsmartcontractinvocation.md
new file mode 100644
index 00000000..791c9ca2
--- /dev/null
+++ b/v1.0/Blockchain/harmony/oneblockchainsmartcontractinvocation.md
@@ -0,0 +1,8 @@
+---
+title: "Invoke a method in a smart contract on Harmony"
+slug: "oneblockchainsmartcontractinvocation"
+excerpt: "
2 credits per API call
\n
Invoke a method in an existing smart contract on Harmony.
\n
You can call a read-only or write method.
\n
\n
For read-only methods, the output of the invoked method is returned.
\n
For write methods, the ID of the associated transaction is returned.
\n
\n
Troubleshooting a failed transaction \nTatum ensures that this API works against the blockchain (accesses the blockchain, finds the specified smart contract, and executes the specified ABI method with the provided parameters). However, because this API can be run against any smart contract on the blockchain, Tatum cannot in any way guarantee that the method itself will be executed successfully.
\n
If you have issues with invoking the method, refer to the user documentation for this method, or contact the author of the smart contract.
\n
For more information about invoking methods in smart contracts, see this article on our Support Portal.
\n
Signing a transaction \nWhen invoking a method in a smart contract, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:10 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/harmony/oneblockchaintransfer.md b/v1.0/Blockchain/harmony/oneblockchaintransfer.md
new file mode 100644
index 00000000..290af99d
--- /dev/null
+++ b/v1.0/Blockchain/harmony/oneblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send ONE from account to account"
+slug: "oneblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send ONE from account to account.
\n
The default shard 0 is used for the sender and the recipient.
\n
Signing a transaction \nWhen sending ONE, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
\nAlternatively, using the Tatum client library for supported languages."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:10 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/harmony/onebroadcast.md b/v1.0/Blockchain/harmony/onebroadcast.md
new file mode 100644
index 00000000..e5cf80f3
--- /dev/null
+++ b/v1.0/Blockchain/harmony/onebroadcast.md
@@ -0,0 +1,8 @@
+---
+title: "Broadcast signed ONE transaction"
+slug: "onebroadcast"
+excerpt: "
2 credits per API call
\n
Broadcast signed transaction to ONE blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:11 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/harmony/oneformataddress.md b/v1.0/Blockchain/harmony/oneformataddress.md
new file mode 100644
index 00000000..247f47bc
--- /dev/null
+++ b/v1.0/Blockchain/harmony/oneformataddress.md
@@ -0,0 +1,8 @@
+---
+title: "Transform HEX address to Bech32 ONE address format"
+slug: "oneformataddress"
+excerpt: "
1 credit per API call
\n
Transform HEX address to Bech32 format with one prefix.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/harmony/onegenerateaddress.md b/v1.0/Blockchain/harmony/onegenerateaddress.md
new file mode 100644
index 00000000..dff1f89c
--- /dev/null
+++ b/v1.0/Blockchain/harmony/onegenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate ONE account address from Extended public key"
+slug: "onegenerateaddress"
+excerpt: "
1 credit per API call
\n
Generate ONE account deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for ONE wallet with derivation path m'/44'/60'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible ONE wallet.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:10 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/harmony/onegettransactioncount.md b/v1.0/Blockchain/harmony/onegettransactioncount.md
new file mode 100644
index 00000000..8241d0be
--- /dev/null
+++ b/v1.0/Blockchain/harmony/onegettransactioncount.md
@@ -0,0 +1,8 @@
+---
+title: "Get count of outgoing ONE transactions"
+slug: "onegettransactioncount"
+excerpt: "
1 credit per API call
\n
Get a number of outgoing ONE transactions for the address. When a transaction is sent, there can be multiple outgoing transactions,\nwhich are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents\nthe order of the transaction in the list of outgoing transactions.
Use this endpoint URL as a http-based web3 driver to connect directly to the ONE node provided by Tatum.\nTo learn more about ONE Web3, visit the ONE developer's guide.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/klaytn.md b/v1.0/Blockchain/klaytn.md
new file mode 100644
index 00000000..35275004
--- /dev/null
+++ b/v1.0/Blockchain/klaytn.md
@@ -0,0 +1,8 @@
+---
+title: "Klaytn"
+slug: "klaytn"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/klaytn/klaytnblockchainsmartcontractinvocation.md b/v1.0/Blockchain/klaytn/klaytnblockchainsmartcontractinvocation.md
new file mode 100644
index 00000000..f79139c7
--- /dev/null
+++ b/v1.0/Blockchain/klaytn/klaytnblockchainsmartcontractinvocation.md
@@ -0,0 +1,8 @@
+---
+title: "Invoke a method in a smart contract on Klaytn"
+slug: "klaytnblockchainsmartcontractinvocation"
+excerpt: "
2 credits per API call
\n
Invoke a method in an existing smart contract on Klaytn.
\n
You can call a read-only or write method.
\n
\n
For read-only methods, the output of the invoked method is returned.
\n
For write methods, the ID of the associated transaction is returned.
\n
\n
Troubleshooting a failed transaction \nTatum ensures that this API works against the blockchain (accesses the blockchain, finds the specified smart contract, and executes the specified ABI method with the provided parameters). However, because this API can be run against any smart contract on the blockchain, Tatum cannot in any way guarantee that the method itself will be executed successfully.
\n
If you have issues with invoking the method, refer to the user documentation for this method, or contact the author of the smart contract.
\n
For more information about invoking methods in smart contracts, see this article on our Support Portal.
\n
Signing a transaction \nWhen invoking a method in a smart contract, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:04 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/klaytn/klaytnblockchaintransfer.md b/v1.0/Blockchain/klaytn/klaytnblockchaintransfer.md
new file mode 100644
index 00000000..009dbc53
--- /dev/null
+++ b/v1.0/Blockchain/klaytn/klaytnblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send KLAY from account to account"
+slug: "klaytnblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send KLAY from account to account.
\n
Signing a transaction
\n
When sending KLAY, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Broadcast signed transaction to Klaytn blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:05 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/klaytn/klaytngenerateaddress.md b/v1.0/Blockchain/klaytn/klaytngenerateaddress.md
new file mode 100644
index 00000000..29bcbf31
--- /dev/null
+++ b/v1.0/Blockchain/klaytn/klaytngenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Klaytn account address from Extended public key"
+slug: "klaytngenerateaddress"
+excerpt: "
1 credit per API call
\n
Generate Klaytn account deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Klaytn wallet with derivation path m'/44'/966'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Klaytn wallet.
Get a number of outgoing Klaytn transactions for the address. When a transaction is sent, there can be multiple outgoing transactions, which are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents the order of the transaction in the list of outgoing transactions.
Use this endpoint URL as a http-based web3 driver to connect directly to the Klaytn node provided by Tatum.\nTo learn more about Klaytn Web3, visit the Klaytn developer's guide.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:04 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/kucoin.md b/v1.0/Blockchain/kucoin.md
new file mode 100644
index 00000000..8a76836b
--- /dev/null
+++ b/v1.0/Blockchain/kucoin.md
@@ -0,0 +1,8 @@
+---
+title: "KuCoin"
+slug: "kucoin"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/kucoin/kcsblockchainsmartcontractinvocation.md b/v1.0/Blockchain/kucoin/kcsblockchainsmartcontractinvocation.md
new file mode 100644
index 00000000..f9bbd9f0
--- /dev/null
+++ b/v1.0/Blockchain/kucoin/kcsblockchainsmartcontractinvocation.md
@@ -0,0 +1,8 @@
+---
+title: "Invoke a method in a smart contract on KuCoin Community Chain"
+slug: "kcsblockchainsmartcontractinvocation"
+excerpt: "
2 credits per API call
\n
Invoke a method in an existing smart contract on KuCoin Community Chain.
\n
You can call a read-only or write method.
\n
\n
For read-only methods, the output of the invoked method is returned.
\n
For write methods, the ID of the associated transaction is returned.
\n
\n
Troubleshooting a failed transaction \nTatum ensures that this API works against the blockchain (accesses the blockchain, finds the specified smart contract, and executes the specified ABI method with the provided parameters). However, because this API can be run against any smart contract on the blockchain, Tatum cannot in any way guarantee that the method itself will be executed successfully.
\n
If you have issues with invoking the method, refer to the user documentation for this method, or contact the author of the smart contract.
\n
For more information about invoking methods in smart contracts, see this article on our Support Portal.
\n
Signing a transaction \nWhen invoking a method in a smart contract, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:10 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/kucoin/kcsblockchaintransfer.md b/v1.0/Blockchain/kucoin/kcsblockchaintransfer.md
new file mode 100644
index 00000000..7f8f9518
--- /dev/null
+++ b/v1.0/Blockchain/kucoin/kcsblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send KCS from account to account"
+slug: "kcsblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send KCS from account to account.
\n
Signing a transaction
\n
When sending KCS, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
\nAlternatively, using the Tatum client library for supported languages."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/kucoin/kcsbroadcast.md b/v1.0/Blockchain/kucoin/kcsbroadcast.md
new file mode 100644
index 00000000..cb3bec1f
--- /dev/null
+++ b/v1.0/Blockchain/kucoin/kcsbroadcast.md
@@ -0,0 +1,8 @@
+---
+title: "Broadcast signed Kcs transaction"
+slug: "kcsbroadcast"
+excerpt: "
2 credits per API call
\n
Broadcast signed transaction to Kcs blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/kucoin/kcsgenerateaddress.md b/v1.0/Blockchain/kucoin/kcsgenerateaddress.md
new file mode 100644
index 00000000..4671e620
--- /dev/null
+++ b/v1.0/Blockchain/kucoin/kcsgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Kcs account address from Extended public key"
+slug: "kcsgenerateaddress"
+excerpt: "
1 credit per API call
\n
Generate Kcs account deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Kcs wallet with derivation path m'/44'/966'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Kcs wallet.
Get a number of outgoing Kcs transactions for the address. When a transaction is sent, there can be multiple outgoing transactions,\nwhich are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents\nthe order of the transaction in the list of outgoing transactions.
Use this endpoint URL as a http-based web3 driver to connect directly to the Kcs node provided by Tatum.\nTo learn more about Kcs Web3, visit the Kcs developer's guide.
Broadcast signed transaction to Litecoin blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:56 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgenerateaddress.md b/v1.0/Blockchain/litecoin/ltcgenerateaddress.md
new file mode 100644
index 00000000..bd13ec93
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Litecoin deposit address from Extended public key"
+slug: "ltcgenerateaddress"
+excerpt: "
5 credits per API call.
\n
Generate Litecoin deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31 - 1.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:56 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgenerateaddressprivatekey.md b/v1.0/Blockchain/litecoin/ltcgenerateaddressprivatekey.md
new file mode 100644
index 00000000..5b0926a8
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgenerateaddressprivatekey.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Litecoin private key"
+slug: "ltcgenerateaddressprivatekey"
+excerpt: "
5 credits per API call.
\n
Generate private key for address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:56 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgeneratewallet.md b/v1.0/Blockchain/litecoin/ltcgeneratewallet.md
new file mode 100644
index 00000000..7797185f
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgeneratewallet.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Litecoin wallet"
+slug: "ltcgeneratewallet"
+excerpt: "
5 credits per API call.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Litecoin wallet with derivation path m'/44'/2'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/litecoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Litecoin wallet.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:55 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgetbalanceofaddress.md b/v1.0/Blockchain/litecoin/ltcgetbalanceofaddress.md
new file mode 100644
index 00000000..b2876785
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgetbalanceofaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Get the balance of a Litecoin address"
+slug: "ltcgetbalanceofaddress"
+excerpt: "
5 credits per API call.
\n
Get Litecoin Balance of the address.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK.'"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgetbalanceofaddressbatch.md b/v1.0/Blockchain/litecoin/ltcgetbalanceofaddressbatch.md
new file mode 100644
index 00000000..b9be813c
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgetbalanceofaddressbatch.md
@@ -0,0 +1,8 @@
+---
+title: "Get the balance of multiple Litecoin addresses"
+slug: "ltcgetbalanceofaddressbatch"
+excerpt: "
50 credits per API call
\n
Get the balance of multiple Litecoin addresses, up to 30.
\n
The API returns the balance only if the address has up to 50,000 UTXOs (Unspent Transaction Outputs). For an address with more than 50,000 UTXOs, the API returns an error with the 403 response code.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:56 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgetblock.md b/v1.0/Blockchain/litecoin/ltcgetblock.md
new file mode 100644
index 00000000..8a5f304d
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgetblock.md
@@ -0,0 +1,8 @@
+---
+title: "Get Litecoin Block by hash or height"
+slug: "ltcgetblock"
+excerpt: "
5 credits per API call.
\n
Get Litecoin Block detail by block hash or height.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:55 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgetblockchaininfo.md b/v1.0/Blockchain/litecoin/ltcgetblockchaininfo.md
new file mode 100644
index 00000000..f8137140
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgetblockchaininfo.md
@@ -0,0 +1,8 @@
+---
+title: "Get Litecoin Blockchain Information"
+slug: "ltcgetblockchaininfo"
+excerpt: "
5 credits per API call.
\n
Get Litecoin Blockchain Information. Obtain basic info like testnet / mainnet version of the chain, current block number and it's hash.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgetblockhash.md b/v1.0/Blockchain/litecoin/ltcgetblockhash.md
new file mode 100644
index 00000000..f408b84c
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgetblockhash.md
@@ -0,0 +1,8 @@
+---
+title: "Get Litecoin Block hash"
+slug: "ltcgetblockhash"
+excerpt: "
5 credits per API call.
Get Litecoin Block hash. Returns hash of the block to get the block detail.
Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:55 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgetmempool.md b/v1.0/Blockchain/litecoin/ltcgetmempool.md
new file mode 100644
index 00000000..3db809a3
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgetmempool.md
@@ -0,0 +1,8 @@
+---
+title: "Get Mempool Transactions"
+slug: "ltcgetmempool"
+excerpt: "
1 credit per API call.
\n
Get Litecoin Transaction ids in the mempool.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK.'"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:55 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgetrawtransaction.md b/v1.0/Blockchain/litecoin/ltcgetrawtransaction.md
new file mode 100644
index 00000000..141936d1
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgetrawtransaction.md
@@ -0,0 +1,8 @@
+---
+title: "Get Litecoin Transaction by hash"
+slug: "ltcgetrawtransaction"
+excerpt: "
5 credits per API call.
\n
Get Litecoin Transaction detail by transaction hash.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK.'"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:55 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgettxbyaddress.md b/v1.0/Blockchain/litecoin/ltcgettxbyaddress.md
new file mode 100644
index 00000000..f37ee431
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgettxbyaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Get Litecoin Transactions by address"
+slug: "ltcgettxbyaddress"
+excerpt: "
5 credits per API call.
\n
Get Litecoin Transaction by address.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK.'"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:55 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcgetutxo.md b/v1.0/Blockchain/litecoin/ltcgetutxo.md
new file mode 100644
index 00000000..98f7ddfd
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcgetutxo.md
@@ -0,0 +1,8 @@
+---
+title: "Get information about a transaction output (UTXO) in a Litecoin transaction"
+slug: "ltcgetutxo"
+excerpt: "
5 credits per API call
\n
Get information about a transaction output in a transaction and check whether this output is a UTXO or has been spent.
\n
\"UTXO\" stands for \"Unspent Transaction Output\". A UTXO is the amount of LTC that remains at a Litecoin 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.
\n
\n
If the transaction output is an UTXO, the API returns data about it.
\n
If the transaction output has been spent and there is no UTXO to return, the API returns an error with the 404 response code.
\n
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/litecoin/ltcrpcdriver.md b/v1.0/Blockchain/litecoin/ltcrpcdriver.md
new file mode 100644
index 00000000..7bca9c49
--- /dev/null
+++ b/v1.0/Blockchain/litecoin/ltcrpcdriver.md
@@ -0,0 +1,8 @@
+---
+title: "JSON RPC HTTP driver"
+slug: "ltcrpcdriver"
+excerpt: "
Litecoin transactions are based on UTXOs. \"UTXO\" stands for \"Unspent Transaction Output\". A UTXO is the amount of LTC that remains at a Litecoin 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 about the UTXO, see the Bitcoin user documentation. To check UTXOs in a transaction, see the API for getting information about a transaction output (UTXO) in a Litecoin transaction.
\n
You can build a LTC transaction by one of the following methods:
\n
\n
Sending LTC from blockchain addresses The assets are sent from a list of addresses. For each address, the last 100 transactions are scanned for any UTXO to be included in the transaction. For easier control over the assets to be sent, we recommend that you use this method only if you have one address to send the assets from. To use this method, use the LtcTransactionAddress or LtcTransactionAddressKMS schema of the request body.
\n
Sending LTC from UTXOs The assets are sent from a list of UTXOs. Each UTXO is included in the transaction. Use this method if you want to manually calculate the amount to send. To use this method, use the LtcTransactionFromUTXO or LtcTransactionFromUTXOKMS schema of the request body.
\n
\n
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 LTC and T2 with 2 LTC. A transaction that consumes the UTXOs from both T1 and T2 will have an available amount of 3 LTC to spend: 1 LTC (from T1) + 2 LTC (from T2) = 3 LTC (to spend in total)
\n
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.
\n
Paying the gas fee and receiving the change \nWhen 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).
\n
Signing a transaction \nWhen sending LTC, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
\n Examples of using this endpoint with the Tatum JS SDK can be found in Tatum LTC SDK."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/polygon-1.md b/v1.0/Blockchain/polygon-1.md
new file mode 100644
index 00000000..4cb5fcd0
--- /dev/null
+++ b/v1.0/Blockchain/polygon-1.md
@@ -0,0 +1,8 @@
+---
+title: "Polygon"
+slug: "polygon-1"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/polygon-1/polygonblockchainsmartcontractinvocation.md b/v1.0/Blockchain/polygon-1/polygonblockchainsmartcontractinvocation.md
new file mode 100644
index 00000000..896e6694
--- /dev/null
+++ b/v1.0/Blockchain/polygon-1/polygonblockchainsmartcontractinvocation.md
@@ -0,0 +1,8 @@
+---
+title: "Invoke a method in a smart contract on Polygon"
+slug: "polygonblockchainsmartcontractinvocation"
+excerpt: "
2 credits per API call
\n
Invoke a method in an existing smart contract on Polygon.
\n
You can call a read-only or write method.
\n
\n
For read-only methods, the output of the invoked method is returned.
\n
For write methods, the ID of the associated transaction is returned.
\n
\n
Troubleshooting a failed transaction \nTatum ensures that this API works against the blockchain (accesses the blockchain, finds the specified smart contract, and executes the specified ABI method with the provided parameters). However, because this API can be run against any smart contract on the blockchain, Tatum cannot in any way guarantee that the method itself will be executed successfully.
\n
If you have issues with invoking the method, refer to the user documentation for this method, or contact the author of the smart contract.
\n
For more information about invoking methods in smart contracts, see this article on our Support Portal.
\n
Signing a transaction \nWhen invoking a method in a smart contract, 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.
\n
If caller field is present instead of the private key, Tatum will sign the transaction with the managed private key connected to the caller address. This is applicable only for paid mainnet plans and all testnet plans. Keep in mind that the caller address must have enough access right to perform the action in the smart contract method.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:04 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/polygon-1/polygonblockchaintransfer.md b/v1.0/Blockchain/polygon-1/polygonblockchaintransfer.md
new file mode 100644
index 00000000..85687971
--- /dev/null
+++ b/v1.0/Blockchain/polygon-1/polygonblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send MATIC from account to account"
+slug: "polygonblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send MATIC from account to account.
\n
Signing a transaction
\n
When sending MATIC, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Broadcast signed transaction to Polygon blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:04 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/polygon-1/polygongenerateaddress.md b/v1.0/Blockchain/polygon-1/polygongenerateaddress.md
new file mode 100644
index 00000000..4f712d47
--- /dev/null
+++ b/v1.0/Blockchain/polygon-1/polygongenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate Polygon account address from Extended public key"
+slug: "polygongenerateaddress"
+excerpt: "
1 credit per API call
\n
Generate Polygon account deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Polygon wallet with derivation path m'/44'/966'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible Polygon wallet.
Get a number of outgoing Polygon transactions for the address. When a transaction is sent, there can be multiple outgoing transactions,\nwhich are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents\nthe order of the transaction in the list of outgoing transactions.
Use this endpoint URL as a http-based web3 driver to connect directly to the Polygon node provided by Tatum.\nTo learn more about Polygon Web3, visit the Polygon developer's guide.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:03 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/solana.md b/v1.0/Blockchain/solana.md
new file mode 100644
index 00000000..a7311ced
--- /dev/null
+++ b/v1.0/Blockchain/solana.md
@@ -0,0 +1,8 @@
+---
+title: "Solana"
+slug: "solana"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/solana/solanablockchaintransfer.md b/v1.0/Blockchain/solana/solanablockchaintransfer.md
new file mode 100644
index 00000000..bdc4397e
--- /dev/null
+++ b/v1.0/Blockchain/solana/solanablockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send SOL from account to account"
+slug: "solanablockchaintransfer"
+excerpt: "
2 credits per API call.
\n
Send SOL from account to account.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:05 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/solana/solanabroadcastconfirm.md b/v1.0/Blockchain/solana/solanabroadcastconfirm.md
new file mode 100644
index 00000000..13d38183
--- /dev/null
+++ b/v1.0/Blockchain/solana/solanabroadcastconfirm.md
@@ -0,0 +1,8 @@
+---
+title: "Broadcast and confirm signed Solana transaction"
+slug: "solanabroadcastconfirm"
+excerpt: "
10 credits per API call.
\n
Broadcast signed custom transactions to Solana blockchain and waits for transaction confirmation depending on the commitment given. More information about commitment levels here
Use this endpoint URL as a http-based JSON RPC driver to connect directly to the Solana node provided by Tatum.\nTo learn more about Solana JSON RPC, visit the Solana developer's guide.
Broadcast signed transaction to XLM blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:00 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/stellar/xlmtransferblockchain.md b/v1.0/Blockchain/stellar/xlmtransferblockchain.md
new file mode 100644
index 00000000..3791b0a4
--- /dev/null
+++ b/v1.0/Blockchain/stellar/xlmtransferblockchain.md
@@ -0,0 +1,8 @@
+---
+title: "Send XLM from address to address"
+slug: "xlmtransferblockchain"
+excerpt: "
10 credits per API call.
\n
Send XLM from account to account. It is possbile to send native XLM asset, or any other custom asset present on the network.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n
Create / Update / Delete XLM trust line between accounts to transfer private assets.\nBy creating trustline for the first time, the asset is created automatically and can be used in the transactions.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n
Generate XLM account. Tatum does not support HD wallet for XLM, only specific address and private key can be generated.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:59 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1.md b/v1.0/Blockchain/tron-1.md
new file mode 100644
index 00000000..8c1c524f
--- /dev/null
+++ b/v1.0/Blockchain/tron-1.md
@@ -0,0 +1,8 @@
+---
+title: "Tron"
+slug: "tron-1"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/generatetronwallet.md b/v1.0/Blockchain/tron-1/generatetronwallet.md
new file mode 100644
index 00000000..d2869e70
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/generatetronwallet.md
@@ -0,0 +1,8 @@
+---
+title: "Generate a TRON wallet"
+slug: "generatetronwallet"
+excerpt: "
1 credit per API call
\n
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Bitcoin wallet with derivation path m'/44'/195'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/tron/bips/blob/master/bip-0044.mediawiki.\n Generate BIP44 compatible Tron wallet.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/tronaccounttx.md b/v1.0/Blockchain/tron-1/tronaccounttx.md
new file mode 100644
index 00000000..69ebe136
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/tronaccounttx.md
@@ -0,0 +1,8 @@
+---
+title: "Get all transactions for a TRON account"
+slug: "tronaccounttx"
+excerpt: "
5 credits per API call
\n
Get all transactions for a TRON account.
\n
This API returns up to 200 transactions in one API call. If there are more than 200 transactions for the TRON account, the response body will contain the next parameter with the fingerprint of the transaction that follows the last (200th) transaction in the returned list.
\n
To get the next 200 transactions, make another call using this API, but this time add the next parameter the endpoint URL and set it to the transaction fingerprint from the next parameter in the response, for example:
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:07 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/tronaccounttx20.md b/v1.0/Blockchain/tron-1/tronaccounttx20.md
new file mode 100644
index 00000000..88602eca
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/tronaccounttx20.md
@@ -0,0 +1,8 @@
+---
+title: "Get TRC-20 transactions for a TRON account"
+slug: "tronaccounttx20"
+excerpt: "
5 credits per API call
\n
Get TRC-20 transactions for a TRON account.
\n
This API returns up to 200 transactions in one API call. If there are more than 200 transactions for the TRON account, the response body will contain the next parameter with the fingerprint of the transaction that follows the last (200th) transaction in the returned list.
\n
To get the next 200 transactions, make another call using this API, but this time add the next parameter the endpoint URL and set it to the transaction fingerprint from the next parameter in the response, for example:
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:08 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/tronbroadcast.md b/v1.0/Blockchain/tron-1/tronbroadcast.md
new file mode 100644
index 00000000..d941ebf7
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/tronbroadcast.md
@@ -0,0 +1,8 @@
+---
+title: "Broadcast a TRON transaction"
+slug: "tronbroadcast"
+excerpt: "
5 credits per API call
\n
Broadcast Tron transaction. This method is used internally from Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
One TRON account can create only one TRC-10 token. The whole supply of the token is transferred to the issuer's account 100 seconds after the token has been created.
\n
Signing a transaction \nWhen creating a TRC-10 token, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Create a TRON TRC-20 capped token. A capped TRC20 token is a type of token on the TRON blockchain that has a preset limit on the total number of tokens that can be created. This limit is specified during the token creation process and cannot be exceeded. Once the limit is reached, no more tokens can be minted. This feature helps to ensure the scarcity and value of the token and can provide investors with a sense of security. It is a popular choice for fundraising, as it allows for a predetermined amount of funds to be raised through the sale of tokens, and any excess tokens that are not sold are simply not minted.
\n
Signing a transaction \nWhen creating a TRC-20 token, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/tronfreeze.md b/v1.0/Blockchain/tron-1/tronfreeze.md
new file mode 100644
index 00000000..f9770974
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/tronfreeze.md
@@ -0,0 +1,8 @@
+---
+title: "Freeze the balance of a TRON account"
+slug: "tronfreeze"
+excerpt: "
10 credits per API call
\n
Freeze Tron assets on the address. By freezing assets, you can obtain energy or bandwidth to perform transactions.
\n
Signing a transaction \nWhen freezing the balance, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:08 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trongenerateaddress.md b/v1.0/Blockchain/tron-1/trongenerateaddress.md
new file mode 100644
index 00000000..546e28d9
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trongenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate a TRON address from the wallet's extended public key"
+slug: "trongenerateaddress"
+excerpt: "
5 credits per API call
\n
Generate a TRON address from the extended public key of the wallet. The address is generated for the specific index - each extended public key can generate up to 2^32 addresses with the index starting from 0 up to 2^31.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:07 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trongenerateaddressprivatekey.md b/v1.0/Blockchain/tron-1/trongenerateaddressprivatekey.md
new file mode 100644
index 00000000..56f47438
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trongenerateaddressprivatekey.md
@@ -0,0 +1,8 @@
+---
+title: "Generate the private key for a TRON address"
+slug: "trongenerateaddressprivatekey"
+excerpt: "
10 credits per API call
\n
Generate private key for address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:07 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trongetaccount.md b/v1.0/Blockchain/tron-1/trongetaccount.md
new file mode 100644
index 00000000..90021f4c
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trongetaccount.md
@@ -0,0 +1,8 @@
+---
+title: "Get the TRON account by its address"
+slug: "trongetaccount"
+excerpt: "
5 credits per API call
\n
Get Tron account by address.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trongetblock.md b/v1.0/Blockchain/tron-1/trongetblock.md
new file mode 100644
index 00000000..4e2a2532
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trongetblock.md
@@ -0,0 +1,8 @@
+---
+title: "Get a TRON block by its hash or height"
+slug: "trongetblock"
+excerpt: "
5 credits per API call
\n
Get Tron block by hash or height.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trongetcurrentblock.md b/v1.0/Blockchain/tron-1/trongetcurrentblock.md
new file mode 100644
index 00000000..bacff712
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trongetcurrentblock.md
@@ -0,0 +1,8 @@
+---
+title: "Get the current TRON block"
+slug: "trongetcurrentblock"
+excerpt: "
5 credits per API call
\n
Get current Tron block.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:07 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trongettransaction.md b/v1.0/Blockchain/tron-1/trongettransaction.md
new file mode 100644
index 00000000..7531ca64
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trongettransaction.md
@@ -0,0 +1,8 @@
+---
+title: "Get a TRON transaction by its hash"
+slug: "trongettransaction"
+excerpt: "
5 credits per API call
\n
Get Tron transaction by hash.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:08 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trontransfer.md b/v1.0/Blockchain/tron-1/trontransfer.md
new file mode 100644
index 00000000..f3d0b877
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trontransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send TRX to a TRON account"
+slug: "trontransfer"
+excerpt: "
10 credits per API call
\n
Send an amount in TRX from address to address.
\n
Signing a transaction
\n
When sending TRX to a TRON account, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:07 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trontransfertrc10.md b/v1.0/Blockchain/tron-1/trontransfertrc10.md
new file mode 100644
index 00000000..f64da562
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trontransfertrc10.md
@@ -0,0 +1,8 @@
+---
+title: "Send TRC-10 tokens to a TRON account"
+slug: "trontransfertrc10"
+excerpt: "
10 credits per API call
\n
Send TRC-10 tokens from address to address.
\n
Signing a transaction
\n
When sending TRC-10 tokens to a TRON account, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:08 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trontransfertrc20.md b/v1.0/Blockchain/tron-1/trontransfertrc20.md
new file mode 100644
index 00000000..9efbc22e
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trontransfertrc20.md
@@ -0,0 +1,8 @@
+---
+title: "Send TRC-20 tokens to a TRON account"
+slug: "trontransfertrc20"
+excerpt: "
10 credits per API call
\n
Send TRC-20 tokens from address to address.
\n
Signing a transaction
\n
When sending TRC-20 tokens to a TRON account, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/trontrc10detail.md b/v1.0/Blockchain/tron-1/trontrc10detail.md
new file mode 100644
index 00000000..b8636550
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/trontrc10detail.md
@@ -0,0 +1,8 @@
+---
+title: "Get information about a TRC-10 token"
+slug: "trontrc10detail"
+excerpt: "
5 credits per API call
\n
Get information about a TRON TRC-10 token.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:08 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/tron-1/tronunfreeze.md b/v1.0/Blockchain/tron-1/tronunfreeze.md
new file mode 100644
index 00000000..f48e0fe8
--- /dev/null
+++ b/v1.0/Blockchain/tron-1/tronunfreeze.md
@@ -0,0 +1,8 @@
+---
+title: "Unfreeze the balance of a TRON account"
+slug: "tronunfreeze"
+excerpt: "
10 credits per API call
\n
Unfreeze Tron assets on the address. By unfreezing assets, you can unlock your staked TRX.
\n
Signing a transaction \nWhen unfreezing the balance, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
Send VET from account to account. Fee for the transaction is paid in VTHO.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n
Broadcast signed transaction to VeChain blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:01 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/vechain/vetgenerateaddress.md b/v1.0/Blockchain/vechain/vetgenerateaddress.md
new file mode 100644
index 00000000..fc14d3a7
--- /dev/null
+++ b/v1.0/Blockchain/vechain/vetgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate VeChain account address from Extended public key"
+slug: "vetgenerateaddress"
+excerpt: "
5 credits per API call.
\n
Generate VeChain account deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate\nup to 2^31 addresses starting from index 0 until 2^31 - 1.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys. Each address is identified by 3 main values:
Private Key - your secret value, which should never be revealed
Public Key - public address to be published
Derivation index - index of generated address
Tatum follows BIP44 specification and generates for VeChain wallet with derivation path m'/44'/818'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible VeChain wallet.
Get VeChain Transaction Receipt by transaction hash. Transaction receipt is available only after transaction is\nincluded in the block and contains information about paid fee or created contract address and much more.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:01 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/xinfin.md b/v1.0/Blockchain/xinfin.md
new file mode 100644
index 00000000..01be29b4
--- /dev/null
+++ b/v1.0/Blockchain/xinfin.md
@@ -0,0 +1,8 @@
+---
+title: "XinFin"
+slug: "xinfin"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/xinfin/xdcblockchainsmartcontractinvocation.md b/v1.0/Blockchain/xinfin/xdcblockchainsmartcontractinvocation.md
new file mode 100644
index 00000000..d8a1c574
--- /dev/null
+++ b/v1.0/Blockchain/xinfin/xdcblockchainsmartcontractinvocation.md
@@ -0,0 +1,8 @@
+---
+title: "Invoke a method in a smart contract on XinFin"
+slug: "xdcblockchainsmartcontractinvocation"
+excerpt: "
2 credits per API call
\n
Invoke a method in an existing smart contract on XinFin.
\n
You can call a read-only or write method.
\n
\n
For read-only methods, the output of the invoked method is returned.
\n
For write methods, the ID of the associated transaction is returned.
\n
\n
Troubleshooting a failed transaction \nTatum ensures that this API works against the blockchain (accesses the blockchain, finds the specified smart contract, and executes the specified ABI method with the provided parameters). However, because this API can be run against any smart contract on the blockchain, Tatum cannot in any way guarantee that the method itself will be executed successfully.
\n
If you have issues with invoking the method, refer to the user documentation for this method, or contact the author of the smart contract.
\n
For more information about invoking methods in smart contracts, see this article on our Support Portal.
\n
Signing a transaction \nWhen invoking a method in a smart contract, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/xinfin/xdcblockchaintransfer.md b/v1.0/Blockchain/xinfin/xdcblockchaintransfer.md
new file mode 100644
index 00000000..d094274d
--- /dev/null
+++ b/v1.0/Blockchain/xinfin/xdcblockchaintransfer.md
@@ -0,0 +1,8 @@
+---
+title: "Send XDC / ERC20 from account to account"
+slug: "xdcblockchaintransfer"
+excerpt: "
2 credits per API call
\n
Send XDC or Tatum supported ERC20 token from account to account.
\n
Signing a transaction
\n
When sending XDC, 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.
\n
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.
\n
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
\nAlternatively, using the Tatum client library for supported languages."
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:11 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/xinfin/xdcbroadcast.md b/v1.0/Blockchain/xinfin/xdcbroadcast.md
new file mode 100644
index 00000000..5a0471dc
--- /dev/null
+++ b/v1.0/Blockchain/xinfin/xdcbroadcast.md
@@ -0,0 +1,8 @@
+---
+title: "Broadcast signed XDC transaction"
+slug: "xdcbroadcast"
+excerpt: "
2 credits per API call
\n
Broadcast signed transaction to XDC blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:39:11 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/xinfin/xdcgenerateaddress.md b/v1.0/Blockchain/xinfin/xdcgenerateaddress.md
new file mode 100644
index 00000000..3fe64314
--- /dev/null
+++ b/v1.0/Blockchain/xinfin/xdcgenerateaddress.md
@@ -0,0 +1,8 @@
+---
+title: "Generate XDC account address from Extended public key"
+slug: "xdcgenerateaddress"
+excerpt: "
1 credit per API call
\n
Generate XDC account deposit address from Extended public key. Deposit address is generated for the specific\nindex - each extended public key can generate up to 2^31 addresses starting from index 0 until 2^31.
Generate private key of address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic\ncan generate up to 2^31 private keys starting from index 0 until 2^31.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase.\nMnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys.\n \nEach address is identified by 3 main values:\n
Private Key - your secret value, which should never be revealed
\n
Public Key - public address to be published
\n
Derivation index - index of generated address
\n\n
Tatum follows BIP44 specification and generates for XDC wallet with derivation path m'/44'/550'/0'/0.\nMore about BIP44 HD wallets can be found here - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.\nGenerate BIP44 compatible XDC wallet.
Get a number of outgoing XDC transactions for the address. When a transaction is sent, there can be multiple outgoing transactions,\nwhich are not yet processed by the blockchain. To distinguish between them, there is a counter called a nonce, which represents\nthe order of the transaction in the list of outgoing transactions.
Use this endpoint URL as a http-based web3 driver to connect directly to the XDC node provided by Tatum.\nTo learn more about XDC Web3, visit the XDC developer's guide.
Modify XRP account settings. If an XRP account should be an issuer of the custom asset, this accounts should have rippling enabled to true.\nIn order to support off-chain processing, required destination tag should be set on the account.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n
Broadcast signed transaction to XRP blockchain. This method is used internally from Tatum KMS or Tatum client libraries.\nIt is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
Get XRP Blockchain fee. Standard fee for the transaction is available in the drops.base_fee section and is 10 XRP drops by default.\nWhen there is a heavy traffic on the blockchain, fees are increasing according to current traffic.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:59 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Blockchain/xrp/xrptransferblockchain.md b/v1.0/Blockchain/xrp/xrptransferblockchain.md
new file mode 100644
index 00000000..1800599e
--- /dev/null
+++ b/v1.0/Blockchain/xrp/xrptransferblockchain.md
@@ -0,0 +1,8 @@
+---
+title: "Send XRP from address to address"
+slug: "xrptransferblockchain"
+excerpt: "
10 credits per API call.
\n
Send XRP from account to account.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.\n
Create / Update / Delete XRP trust line between accounts to transfer private assets.\nBy creating trustline for the first time, the asset is created automatically and can be used in the transactions. \nAccount setting rippling must be enabled on the issuer account before the trust line creation to asset work correctly.\nCreating a trust line will cause an additional 5 XRP to be blocked on the account.
\nThis operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.\nNo one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey\nor signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,\nTatum KMS should be used for the highest security standards, and signatureId should be present in the request.\nAlternatively, using the Tatum client library for supported languages.
Generate XRP account. Tatum does not support HD wallet for XRP, only specific address and private key can be generated.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:38:51 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Documentation/getting-started.md b/v1.0/Documentation/getting-started.md
new file mode 100644
index 00000000..763e3424
--- /dev/null
+++ b/v1.0/Documentation/getting-started.md
@@ -0,0 +1,32 @@
+---
+title: "Getting Started with Tatum 🚀"
+slug: "getting-started"
+excerpt: ""
+hidden: false
+createdAt: "Thu Jan 18 2024 08:41:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 01 2024 07:24:33 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum's API and SDK are here to make your life easier when building blockchain applications! No more complicated setups, no need for previous blockchain experience. We've got you covered.
+
+# Why Tatum? 💡
+
+1. **Super fast development:** Start building blockchain applications in no time.
+2. **No previous blockchain experience required:** Perfect for beginners and experts alike.
+3. **One line of code:** Perform complex tasks with minimal effort.
+
+[block:html]{"html":"
\n
Don't have an API key?>\n
Get one to start using Blockchain Data in your app today.
"}[/block]
+
+# Key Features 🌟
+
+- Monitor activity on a blockchain address 🕵️♂️
+- Perform RPC calls to various blockchains 📞
+- Read information about NFTs such as balances, transactions, or ownerships 🖼️
+- Get information about a specific wallet like balances or transaction history 💰
+
+Ready to build fantastic blockchain applications? Check out the official documentation for more information and examples!
+
+Happy coding! 🎉
+
+> 📘 **[Join our Discord](https://discord.com/invite/tatum) **to stay up to date with the latest updates from product news to upcoming events.
+>
+> You'll also be able to submit feedback and help shape future updates. Learn more about our community [here](https://tatum.io/community).
diff --git a/v1.0/Documentation/getting-started/authentication-1.md b/v1.0/Documentation/getting-started/authentication-1.md
new file mode 100644
index 00000000..8013cb83
--- /dev/null
+++ b/v1.0/Documentation/getting-started/authentication-1.md
@@ -0,0 +1,99 @@
+---
+title: "Authentication"
+slug: "authentication-1"
+excerpt: ""
+hidden: false
+createdAt: "Fri Feb 09 2024 08:39:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:34:46 GMT+0000 (Coordinated Universal Time)"
+---
+When using the Tatum API or SDK, you authenticate yourself with an API key. Access our services securely by authenticating with your Tatum account through available methods listed below, ensuring a secure and personalized experience. While it is possible to connect without authentication, please note that this approach provides limited access and functionalities.
+
+To obtain the API key, [create a Tatum account](https://dashboard.tatum.io/signup). Once you are signed into the Dashboard, you are automatically assigned the Free plan.
+
+The API key represents your pricing plan and defines how many API calls you can make per second and what the total number of API calls per month is available for you.
+
+# Auth API Keys: Mainnet vs Testnet
+
+When you sign up in the [Tatum.io Dashboard](https://dashboard.tatum.io/login), you'll get one development (Testnet) Auth API key and one for production (Mainnet) API key. You can create more API keys as you need them.
+
+- **Mainnet** stands for "main network". This is where your production app will run.
+- **Testnet** stands for "testing network". In most cases, has the same features and characteristics as the mainnet. The Testnet blockchain is completely isolated from the Mainnet blockchain. It doesn't have the same data, and it doesn't guarantee data persistence. On the other hand, all operations on the Testnet are free. This makes Testnet a great environment for developing and testing apps.
+
+> 🚧 All **Mainnet** transactions are final. If you send assets like BTC to the wrong address over Testnet it's fine since Testnet assets hold no value. However, if this happens in Mainnet, you'll lose real money!
+
+# X-API-Key
+
+```curl
+curl --location 'https://02-dallas-022-01.rpc.tatum.io'
+--header 'Content-Type: application/json'
+--user 'x-api-key:'
+--data '{
+ "jsonrpc":"2.0",
+ "method":"web3_clientVersion",
+ "params":[],
+ "id":1
+}'
+```
+```typescript
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ apiKey: {
+ v3: 'YOUR_API_KEY_V3',
+ v4: 'YOUR_API_KEY_V4'
+})
+```
+
+## X-API-Key as a part of URL
+
+```curl
+curl --location 'https://x-api-key:@02-dallas-022-01.rpc.tatum.io'
+--header 'Content-Type: application/json'
+--data '{
+ "jsonrpc":"2.0",
+ "method":"web3_clientVersion",
+ "params":[],
+ "id":1
+}'
+```
+
+# Auth Bearer
+
+```curl
+curl --location 'https://02-dallas-022-01.rpc.tatum.io'
+--header 'Content-Type: application/json'
+--header 'Authorization: bearer '
+--data '{
+ "jsonrpc":"2.0",
+ "method":"web3_clientVersion",
+ "params":[],
+ "id":1
+}'
+```
+
+# Basic Auth (with base64 encoding)
+
+Please use following base64 format: x-api-key:
+
+```curl
+curl --location 'https://02-dallas-022-01.rpc.tatum.io'
+--header 'Content-Type: application/json'
+--header 'Authorization: Basic eC1...S0x'
+--data '{
+ "jsonrpc":"2.0",
+ "method":"web3_clientVersion",
+ "params":[],
+ "id":67
+}'
+```
+
+# API Key in the SDK
+
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ apiKey: { v4: 'YOU-API-KEY'}
+ }
+)
+```
diff --git a/v1.0/Documentation/getting-started/create-your-first-app.md b/v1.0/Documentation/getting-started/create-your-first-app.md
new file mode 100644
index 00000000..4541047d
--- /dev/null
+++ b/v1.0/Documentation/getting-started/create-your-first-app.md
@@ -0,0 +1,8 @@
+---
+title: "Create your first app"
+slug: "create-your-first-app"
+excerpt: ""
+hidden: true
+createdAt: "Fri Feb 09 2024 08:40:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 01 2024 07:33:21 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Documentation/getting-started/testnet-faucets.md b/v1.0/Documentation/getting-started/testnet-faucets.md
new file mode 100644
index 00000000..024cb445
--- /dev/null
+++ b/v1.0/Documentation/getting-started/testnet-faucets.md
@@ -0,0 +1,50 @@
+---
+title: "Testnet Faucets"
+slug: "testnet-faucets"
+excerpt: ""
+hidden: false
+createdAt: "Mon Jan 29 2024 12:00:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 01 2024 07:27:11 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum has an official faucet for you to get Testnet coins: [dashboard.tatum.io/faucets](https://dashboard.tatum.io/faucets)
+
+For coins we don't support yet or if you need more, here's a list of popular faucets:
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Chain name",
+ "h-1": "Faucet Link",
+ "0-0": "Bitcoin",
+ "0-1": "",
+ "1-0": "Bitcoin Cash",
+ "1-1": "",
+ "2-0": "BNB",
+ "2-1": "",
+ "3-0": "Celo (Alfajores)",
+ "3-1": "",
+ "4-0": "Ethereum",
+ "4-1": "Sepolia: \nHoleski: ",
+ "5-0": "Harmony One",
+ "5-1": " \nNOTE: Deposit is an internal transaction going undetected by ONE Virtual Accounts. Please transfer from another One account to the deposit address of your Virtual Account.",
+ "6-0": "KLAY",
+ "6-1": "",
+ "7-0": "LTC",
+ "7-1": "",
+ "8-0": "Polygon",
+ "8-1": "Matic: ",
+ "9-0": "TRON",
+ "9-1": "Shasta: ",
+ "10-0": "XLM",
+ "10-1": "",
+ "11-0": "XRP",
+ "11-1": ""
+ },
+ "cols": 2,
+ "rows": 12,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/Fee estimation/blockchain-fees.md b/v1.0/Fee estimation/blockchain-fees.md
new file mode 100644
index 00000000..72ba88cb
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees.md
@@ -0,0 +1,8 @@
+---
+title: "Blockchain fees"
+slug: "blockchain-fees"
+excerpt: ""
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:37 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/bscestimategas.md b/v1.0/Fee estimation/blockchain-fees/bscestimategas.md
new file mode 100644
index 00000000..2cae0ef8
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/bscestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a BNB Smart Chain transaction"
+slug: "bscestimategas"
+excerpt: "
2 credits per API call
\n
Get an estimated gas price and the number of gas units needed for a BNB Smart Chain transaction. The gas price is obtained from https://explorer.bitquery.io/bsc/gas.
\n
NOTE: The estimated gas price is returned in wei. However, when making the transaction itself and providing the custom fee, you have to provide the gas price in Gwei. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/celoestimategas.md b/v1.0/Fee estimation/blockchain-fees/celoestimategas.md
new file mode 100644
index 00000000..6da88423
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/celoestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a Celo transaction"
+slug: "celoestimategas"
+excerpt: "
NOTE: The estimated gas price is returned in wei. However, when making the transaction itself and providing the custom fee, you have to provide the gas price in Gwei. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/egldestimategas.md b/v1.0/Fee estimation/blockchain-fees/egldestimategas.md
new file mode 100644
index 00000000..8237a004
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/egldestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for an Elrond transaction"
+slug: "egldestimategas"
+excerpt: "
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/estimatefeeblockchain-1.md b/v1.0/Fee estimation/blockchain-fees/estimatefeeblockchain-1.md
new file mode 100644
index 00000000..e95eaf62
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/estimatefeeblockchain-1.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a transaction on a blockchain"
+slug: "estimatefeeblockchain-1"
+excerpt: "
10 credits per API call
\n
Estimate the current fee for different types of transactions.
\n
This API is supported for the following blockchains:
\n
\n
Bitcoin
\n
BNB Smart Chain
\n
Celo
\n
Dogecoin
\n
Ethereum
\n
Harmony
\n
Klaytn
\n
Litecoin
\n
Polygon
\n
XinFin
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/ethestimategas.md b/v1.0/Fee estimation/blockchain-fees/ethestimategas.md
new file mode 100644
index 00000000..02cf6dac
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/ethestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for an Ethereum transaction"
+slug: "ethestimategas"
+excerpt: "
10 credits per API call
\n
Get an estimated gas price and the number of gas units needed for an Ethereum transaction. The gas price is obtained from multiple sources and calculated based on the latest N blocks and the current mempool state.
\n
The fast gas price is used by default.
\n
NOTE: The estimated gas price is returned in wei. However, when making the transaction itself and providing the custom fee, you have to provide the gas price in Gwei. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/ethestimategasbatch.md b/v1.0/Fee estimation/blockchain-fees/ethestimategasbatch.md
new file mode 100644
index 00000000..339cf617
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/ethestimategasbatch.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for multiple Ethereum transactions"
+slug: "ethestimategasbatch"
+excerpt: "
10 credits per API call + 10 credits per each gas estimation
\n
Get an estimated gas price and the number of gas units needed for multiple Ethereum transactions. The gas price is obtained from multiple sources and calculated based on the latest N blocks and the current mempool state.
\n
The estimations are returned in the same order as the transactions were submitted in the request.
\n
The fast gas price is used by default.
\n
NOTE: The estimated gas price is returned in wei. However, when making a transaction itself and providing the custom fee, you have to provide the gas price in Gwei. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.
\n"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/getblockchainfee-1.md b/v1.0/Fee estimation/blockchain-fees/getblockchainfee-1.md
new file mode 100644
index 00000000..49dc9826
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/getblockchainfee-1.md
@@ -0,0 +1,8 @@
+---
+title: "Get the recommended fee/gas price for a blockchain"
+slug: "getblockchainfee-1"
+excerpt: "
1 credit per API call
\n
Get the recommended fee/gas price for a blockchain.
\n
Fee is in satoshis(meaning currency(BTC, DOGE,... / 100 000 000) per byte\n
This API is supported for the following blockchains:
\n
\n
Bitcoin
\n
Dogecoin
\n
Ethereum
\n
Litecoin
\n
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/kcsestimategas.md b/v1.0/Fee estimation/blockchain-fees/kcsestimategas.md
new file mode 100644
index 00000000..a86f8877
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/kcsestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a KuCoin Community Chain transaction"
+slug: "kcsestimategas"
+excerpt: "
2 credits per API call
\n
Get an estimated gas price and the number of gas units needed for a KuCoin Community Chain transaction.
\n
NOTE: The estimated gas price is returned in wei. However, when making the transaction itself and providing the custom fee, you have to provide the gas price in Gwei. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/klaytnestimategas.md b/v1.0/Fee estimation/blockchain-fees/klaytnestimategas.md
new file mode 100644
index 00000000..9993b724
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/klaytnestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a Klaytn transaction"
+slug: "klaytnestimategas"
+excerpt: "
2 credits per API call
\n
Get an estimated gas price and the number of gas units needed for a Klaytn transaction. The gas price is obtained from https://explorer.bitquery.io/klaytn/gas.
\n
NOTE: The estimated gas price is returned in peb. However, when making the transaction itself and providing the custom fee, you have to provide the gas price in Gpeb. Make sure to convert the estimated gas price from peb to Gpeb before submitting your transaction.
Get an estimated gas price and the number of gas units needed for a Harmony transaction.
\n
NOTE: The estimated gas price is returned in wei. However, when making the transaction itself, you have to provide the gas price in Gwei. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/polygonestimategas.md b/v1.0/Fee estimation/blockchain-fees/polygonestimategas.md
new file mode 100644
index 00000000..511d4b85
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/polygonestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a Polygon transaction"
+slug: "polygonestimategas"
+excerpt: "
NOTE: The estimated gas price is returned in wei. However, when making the transaction itself and providing the custom fee, you have to provide the gas price in Gwei. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/vetestimategas.md b/v1.0/Fee estimation/blockchain-fees/vetestimategas.md
new file mode 100644
index 00000000..0bbf1f7e
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/vetestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the gas needed for a VeChain transaction"
+slug: "vetestimategas"
+excerpt: "
5 credits per API call
\n
Get an estimated amount of gas needed for a VeChain transaction.
"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Fee estimation/blockchain-fees/xdcestimategas.md b/v1.0/Fee estimation/blockchain-fees/xdcestimategas.md
new file mode 100644
index 00000000..f48e2793
--- /dev/null
+++ b/v1.0/Fee estimation/blockchain-fees/xdcestimategas.md
@@ -0,0 +1,8 @@
+---
+title: "Estimate the fee for a XinFin transaction"
+slug: "xdcestimategas"
+excerpt: "
2 credits per API call
\n
Get an estimated gas price and the number of gas units needed for a XinFin transaction. The gas price is obtained from https://rpc.xinfin.network/gasPrice.
\n
NOTE: The estimated gas price is returned in wei. However, when making the transaction itself and providing the custom fee, you have to provide the gas price in Gwei. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.
Estimate current transaction fee for ledger to blockchain transaction. \nSupported blockchains:\n
\n
Bitcoin
\n
Litecoin
\n
Dogecoin
\n
\n"
+hidden: false
+createdAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Feb 05 2024 11:35:38 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Learn blockchain/what-are-transactions.md b/v1.0/Learn blockchain/what-are-transactions.md
new file mode 100644
index 00000000..36a11959
--- /dev/null
+++ b/v1.0/Learn blockchain/what-are-transactions.md
@@ -0,0 +1,20 @@
+---
+title: "What are Transactions?"
+slug: "what-are-transactions"
+excerpt: ""
+hidden: true
+createdAt: "Fri Jan 19 2024 11:23:37 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:43 GMT+0000 (Coordinated Universal Time)"
+---
+At its most basic level, a transaction is the exchange of value between two parties. In the context of blockchain technology, a transaction is a digital record of this exchange of value, which is recorded and verified on a blockchain network. Let's explore some of the key components of a transaction and how it works. 💰
+
+💳 **Inputs and Outputs:** A transaction on a blockchain network typically consists of inputs and outputs. The inputs represent the funds being spent, while the outputs represent where those funds are going. Each input and output is represented by a specific address on the network.
+
+🔒 **Signatures:** To ensure the security and validity of a transaction, each input must be signed by the sender using a private key. This signature is used to verify that the transaction is legitimate and that the sender has authorised the transfer of funds.
+
+📈 **Transaction Fees:** When a transaction is initiated on a blockchain network, a small fee is charged to the sender to incentivise network participants to validate the transaction. The size of the fee is determined by network congestion and the complexity of the transaction.
+
+🕰️ **Confirmation:** After a transaction is initiated, it must be validated and confirmed by multiple computers on the network. This validation process ensures that the transaction is legitimate and that the funds are being transferred from the sender to the intended recipient.
+
+🔍 **Transparency: **One of the key benefits of blockchain technology is its transparency. Because each transaction is recorded on a public ledger, anyone can view the details of a transaction and verify its legitimacy.
+In conclusion, transactions are a fundamental part of blockchain technology, allowing for the secure and transparent exchange of value between two parties. While the process may seem complex, understanding the key components of a transaction can help you better navigate the world of blockchain and cryptocurrency. 💻
diff --git a/v1.0/Learn blockchain/what-are-transactions/what-are-internal-transactions.md b/v1.0/Learn blockchain/what-are-transactions/what-are-internal-transactions.md
new file mode 100644
index 00000000..1053533e
--- /dev/null
+++ b/v1.0/Learn blockchain/what-are-transactions/what-are-internal-transactions.md
@@ -0,0 +1,19 @@
+---
+title: "What are Internal Transactions?"
+slug: "what-are-internal-transactions"
+excerpt: ""
+hidden: true
+createdAt: "Fri Jan 19 2024 11:25:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:43 GMT+0000 (Coordinated Universal Time)"
+---
+Internal transactions are 💎 another crucial aspect of blockchain technology that play a vital role in facilitating transactions and maintaining the integrity of the network. Internal transactions occur when tokens are transferred between two addresses on the same blockchain network. 🔁
+
+These transactions are different from external transactions, which involve the transfer of tokens between different blockchain networks or to external addresses outside of the network. 🌐
+
+Internal transactions can be initiated by a variety of actors on the network, including individual users, smart contracts, and decentralised applications (dApps). 💻 Smart contracts are particularly important in facilitating internal transactions, as they can execute complex transactions automatically based on pre-determined conditions.
+
+One of the primary benefits of internal transactions is that they are typically faster and cheaper than external transactions, as they do not require the same level of validation and verification as external transactions. This makes them ideal for small transactions and for sending tokens between different wallets or accounts on the same network. 💰
+
+In addition to their speed and efficiency, internal transactions are also transparent and secure. Since all transactions on a blockchain network are publicly visible and recorded on a distributed ledger, internal transactions can be easily traced and audited. This helps to prevent fraud and other forms of malicious activity on the network. 🔒
+
+Overall, internal transactions are a fundamental component of blockchain technology and are critical to the functioning of many blockchain networks. Whether you are a developer, investor, or enthusiast, understanding the role of internal transactions is essential for navigating the complex and rapidly evolving world of blockchain technology. 🚀
diff --git a/v1.0/Learn blockchain/what-are-transactions/what-are-the-reasons-a-transaction-fails.md b/v1.0/Learn blockchain/what-are-transactions/what-are-the-reasons-a-transaction-fails.md
new file mode 100644
index 00000000..e1016017
--- /dev/null
+++ b/v1.0/Learn blockchain/what-are-transactions/what-are-the-reasons-a-transaction-fails.md
@@ -0,0 +1,21 @@
+---
+title: "What are the reasons a transaction fails?"
+slug: "what-are-the-reasons-a-transaction-fails"
+excerpt: ""
+hidden: true
+createdAt: "Fri Jan 19 2024 11:24:21 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:43 GMT+0000 (Coordinated Universal Time)"
+---
+One of the benefits of blockchain technology is its ability to facilitate secure and transparent transactions. However, like any technology, blockchain is not perfect, and transactions can sometimes fail for a variety of reasons. Let's explore some of the most common reasons why a transaction might fail on a blockchain network. 🧐
+
+🔴** Insufficient Funds:** One of the most common reasons for a failed transaction is that the sender does not have enough funds in their account to cover the transaction fees. When a transaction is initiated on a blockchain network, a small fee is charged to the sender to incentivize network participants to validate the transaction. If the sender does not have enough funds to cover the fees, the transaction will fail.
+
+🔴 **Network Congestion:** Another reason for failed transactions is network congestion. When a blockchain network is congested with a high volume of transactions, it can take longer for transactions to be validated and added to the blockchain. In some cases, transactions may time out or fail altogether if the network is too congested.
+
+🔴 **Invalid Address:** If a sender enters an incorrect or invalid address when initiating a transaction, the transaction will fail. It's important to double-check the address before sending any funds to ensure that the transaction goes through.
+
+🔴 **Gas Limit Too Low: **Each transaction on a blockchain network requires a certain amount of "gas," which is a measure of computational power needed to execute the transaction. If the gas limit set by the sender is too low, the transaction will fail.
+
+🔴 **Smart Contract Issues:** Some transactions involve the use of smart contracts, which are self-executing contracts with the terms of the agreement between buyer and seller being directly written into lines of code. If there is an error in the smart contract code, the transaction may fail.
+
+In conclusion, transactions can fail on a blockchain network for a variety of reasons, including insufficient funds, network congestion, invalid addresses, low gas limits, and smart contract issues. While these failures can be frustrating, it's important to remember that blockchain technology is still in its early stages, and as the technology continues to develop, many of these issues will be resolved. If you're experiencing a failed transaction, be patient, and double-check the details before trying again. 💻
diff --git a/v1.0/Learn blockchain/what-is-a-blockchain.md b/v1.0/Learn blockchain/what-is-a-blockchain.md
new file mode 100644
index 00000000..7b6dc6d0
--- /dev/null
+++ b/v1.0/Learn blockchain/what-is-a-blockchain.md
@@ -0,0 +1,19 @@
+---
+title: "What is a blockchain?"
+slug: "what-is-a-blockchain"
+excerpt: ""
+hidden: true
+createdAt: "Thu Jan 18 2024 11:54:00 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:33 GMT+0000 (Coordinated Universal Time)"
+---
+Blockchain technology is a hot topic these days, but what exactly is it and how does it work? 🤔
+
+At its core, a blockchain is a digital ledger that records and verifies transactions. Each block in the chain contains information about a transaction, such as the time it occurred, the parties involved, and the details of the exchange. Once a block is added to the chain, it cannot be altered or deleted, creating a permanent and unalterable record of the transaction. 🔒
+
+The beauty of blockchain technology is that it allows for secure and transparent transactions between two parties without the need for a central authority, such as a bank or government. This is because the ledger is stored across a network of computers, making it difficult for any one person or entity to manipulate the information. 👥
+
+To ensure the security of the blockchain, each block is verified by multiple computers on the network before it is added to the chain. This makes it virtually impossible for any one person or entity to alter the ledger or commit fraud. 🔍
+
+One of the most well-known applications of blockchain technology is cryptocurrency, such as Bitcoin. However, blockchain has the potential to be used in many other areas, such as supply chain management, voting systems, and digital identity verification. 💰
+
+In conclusion, blockchain technology is a powerful tool that has the potential to revolutionize the way we conduct transactions and manage data. Whether you're a business owner, developer, or simply interested in the future of technology, blockchain is definitely something worth learning more about! 💻
diff --git a/v1.0/Learn blockchain/what-is-a-token-on-blockchain.md b/v1.0/Learn blockchain/what-is-a-token-on-blockchain.md
new file mode 100644
index 00000000..73194328
--- /dev/null
+++ b/v1.0/Learn blockchain/what-is-a-token-on-blockchain.md
@@ -0,0 +1,35 @@
+---
+title: "What is a Token on Blockchain?"
+slug: "what-is-a-token-on-blockchain"
+excerpt: ""
+hidden: true
+createdAt: "Thu Jan 18 2024 11:54:58 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:37 GMT+0000 (Coordinated Universal Time)"
+---
+Tokens are digital assets that are created and managed on a blockchain network. They can be broadly classified into two types: native tokens and non-native tokens.
+
+Native tokens are created when a blockchain network is launched and are integral to the underlying protocol of the blockchain. They are also known as protocol tokens and are used to facilitate transactions on that network. Examples of native tokens include Bitcoin (BTC), Ether (ETH), and Binance Coin (BNB).
+
+Non-native tokens, on the other hand, are created through smart contracts and can be used to represent specific assets or utility on a blockchain network. They can be further classified into fungible, non-fungible tokens (NFTs) & multi tokens.
+
+🔸 **Fungible tokens:** Fungible tokens are identical to each other and are interchangeable. Each token holds the same value and can be exchanged with any other token of the same type. Examples of fungible tokens include stable coins like Tether (USDT) and MakerDAO (DAI), which are pegged to the value of a specific asset or currency.
+
+🔸 **Non-fungible tokens (NFTs):** NFTs are unique and indivisible tokens that represent a specific asset or item. Each NFT is one-of-a-kind and holds a specific value. Examples of NFTs include digital art, collectibles, and in-game items.
+
+🔸 **Multitokens:** Multitokens are a type of digital asset that contain multiple other tokens within them. They provide a way to bundle multiple tokens together into a single asset, making it easier to manage and trade multiple tokens at once. Multitokens can contain both fungible and non-fungible tokens, as well as other multitokens, and can have a variety of use cases, including investment, trading, and DeFi.
+
+Tokens can have a variety of use cases on their respective blockchain networks, including:
+
+🔸 **Representing assets:** Tokens can be used to represent a variety of assets, such as real estate, precious metals, or even other cryptocurrencies.
+
+🔸 **Utility tokens:** Some tokens are designed specifically for use within a particular decentralised application or dApp. These tokens are often used to pay for services or to incentivise network participants to contribute to the network.
+
+🔸 **Governance tokens:** Some tokens are used for governance purposes, allowing token holders to vote on important network decisions, such as protocol upgrades and changes.
+
+🔸 **Security tokens:** Security tokens are tokens that are backed by real-world assets, such as stocks or bonds. These tokens are regulated by securities laws and are subject to the same regulations as traditional securities.
+
+One of the primary benefits of tokens is that they allow for the creation of decentralised economies and ecosystems. By creating tokens that represent specific assets or utility on a blockchain network, developers and entrepreneurs can incentivise network participants to contribute to the network and to help grow the ecosystem.
+
+Tokens also provide a way for investors to participate in the growth of blockchain networks and dApps. By investing in tokens, investors can gain exposure to the potential upside of a particular network or project.
+
+Overall, tokens are a powerful tool for building decentralised economies and ecosystems on blockchain networks. Whether you are a developer, investor, or enthusiast, understanding the role of tokens is essential for navigating the complex and rapidly evolving world of blockchain technology. 💻🌱
diff --git a/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-fungible-tokens.md b/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-fungible-tokens.md
new file mode 100644
index 00000000..ac7a7971
--- /dev/null
+++ b/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-fungible-tokens.md
@@ -0,0 +1,17 @@
+---
+title: "What are Fungible Tokens?"
+slug: "what-are-fungible-tokens"
+excerpt: ""
+hidden: true
+createdAt: "Thu Jan 18 2024 11:57:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:37 GMT+0000 (Coordinated Universal Time)"
+---
+Fungible tokens are a type of 💰 digital asset that are identical to each other and can be exchanged for one another. Each token holds the same value and can be exchanged with any other token of the same type. Examples of fungible tokens include stable coins like Tether (USDT) and MakerDAO (DAI), which are pegged to the value of a specific asset or currency.
+
+Fungible tokens are designed to be interchangeable, which means that one token can be exchanged for another token of the same type without any loss of value. This makes them ideal for use as a currency or for representing assets that are uniform and interchangeable, such as 💰 gold or 🛢️ oil.
+
+One of the primary benefits of fungible tokens is their divisibility. Fungible tokens can be divided into smaller units, which allows for more granular transactions and enables micro-transactions on a blockchain network. For example, a single Bitcoin can be divided into 100 million satoshi's, which allows for very small transactions to take place on the Bitcoin network. 💸
+
+Fungible tokens also provide a high degree of liquidity, which means that they can be easily bought and sold on 💹 cryptocurrency exchanges. This allows for the creation of markets and trading pairs, which can help to determine the value of a particular fungible token.
+
+Overall, fungible tokens are an important component of the blockchain ecosystem, providing a way to represent and exchange assets in a uniform and standardised way. Whether you are a developer, investor, or enthusiast, understanding the role of fungible tokens is essential for navigating the complex and rapidly evolving world of blockchain technology. 💻🌱
diff --git a/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-multitokens.md b/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-multitokens.md
new file mode 100644
index 00000000..e3220d59
--- /dev/null
+++ b/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-multitokens.md
@@ -0,0 +1,25 @@
+---
+title: "What are MultiTokens?"
+slug: "what-are-multitokens"
+excerpt: ""
+hidden: true
+createdAt: "Thu Jan 18 2024 11:58:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:37 GMT+0000 (Coordinated Universal Time)"
+---
+Multitokens are a type of 🎁 digital asset that contain multiple other tokens within them. They are designed to provide a way to bundle multiple tokens together into a single asset, making it easier to manage and trade multiple tokens at once.
+
+Multitokens can contain both fungible and non-fungible tokens, as well as other multitokens. This allows for the creation of complex digital assets that represent multiple tokens and assets on a blockchain network. 🌐
+
+One of the primary benefits of multitokens is their ability to provide diversification within a single asset. By bundling multiple tokens together, multitokens can help to reduce risk and increase exposure to different types of assets and tokens.
+
+Multitokens are created through smart contracts and are stored on a blockchain network, which ensures that they are tamper-proof and transparent. This allows for the creation of trustless and decentralised marketplaces for multitokens, where buyers and sellers can transact with each other without the need for intermediaries. 🤝
+
+Multitokens can have a variety of use cases, including:
+
+🔸 **Investment:** Multitokens can be used to create diversified investment portfolios that span multiple blockchain networks and asset classes.
+
+🔸 **Trading:** Multitokens can be traded on cryptocurrency exchanges, providing a way to trade multiple tokens at once and to diversify trading strategies.
+
+🔸 **Decentralised finance (DeFi):** Multitokens can be used as collateral or liquidity in DeFi protocols, allowing for more efficient and diverse use of assets in the DeFi ecosystem.
+
+Overall, multitokens are a powerful tool for creating diversified digital assets and for navigating the complex and rapidly evolving world of blockchain technology. Whether you are a developer, investor, or enthusiast, understanding the role of multitokens is essential for staying ahead of the curve in the blockchain industry. 💻🌱
diff --git a/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-native-tokens.md b/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-native-tokens.md
new file mode 100644
index 00000000..91bf6c79
--- /dev/null
+++ b/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-native-tokens.md
@@ -0,0 +1,24 @@
+---
+title: "What are Native Tokens?"
+slug: "what-are-native-tokens"
+excerpt: ""
+hidden: true
+createdAt: "Thu Jan 18 2024 11:55:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:37 GMT+0000 (Coordinated Universal Time)"
+---
+Native tokens are a type of digital token that are created and used on a specific blockchain network. These tokens are usually created during the initial launch of a blockchain network and are used to facilitate transactions on that network. They are also known as protocol tokens, since they are integral to the underlying protocol of the blockchain.
+One of the most well-known examples of a native token is Ether (ETH), which is the native token of the Ethereum blockchain. ETH is used to pay for transaction fees and to incentivise network participants to secure and validate transactions. It can also be used as a currency to purchase goods and services, much like Bitcoin.
+
+Native tokens can have a variety of uses on their respective blockchain networks, including:
+
+🔸 **Payment for transaction fees:** Native tokens are used to pay for transaction fees on the network. This ensures that the network remains secure and that transactions are processed in a timely manner.
+
+🔸 **Incentivising network participants:** Native tokens are often used to incentivize network participants to contribute to the network. For example, miners who validate transactions on the network are rewarded with native tokens.
+
+🔸 **Governance:** Native tokens can also be used for governance purposes, allowing token holders to vote on important network decisions, such as protocol upgrades and changes.
+
+🔸 **Staking:** Some native tokens can be staked, or locked up, in order to secure the network and earn rewards.
+
+It's important to note that not all tokens on a blockchain network are native tokens. In fact, many blockchain networks have multiple types of tokens, each with their own specific use cases. For example, the Ethereum network has ERC-20 tokens, which are used for creating and managing smart contracts.
+
+In conclusion, native tokens are an important part of many blockchain networks, providing the backbone for transactions and incentivising network participants to contribute to the network. If you're interested in blockchain technology, learning more about native tokens is a great place to start! 💻
diff --git a/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-non-fungible-tokens.md b/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-non-fungible-tokens.md
new file mode 100644
index 00000000..5b4f049d
--- /dev/null
+++ b/v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-non-fungible-tokens.md
@@ -0,0 +1,18 @@
+---
+title: "What are Non Fungible Tokens?"
+slug: "what-are-non-fungible-tokens"
+excerpt: ""
+hidden: true
+createdAt: "Thu Jan 18 2024 11:58:03 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Feb 27 2024 13:34:37 GMT+0000 (Coordinated Universal Time)"
+---
+Non-fungible tokens (NFTs) are a type of 💎 digital asset that are unique and indivisible. Each NFT is one-of-a-kind and holds a specific value. Examples of NFTs include 🎨 digital art, 🎮 collectibles, and in-game items.
+Unlike fungible tokens, which are interchangeable with one another, each NFT holds a unique set of attributes and characteristics that set it apart from all other tokens. This uniqueness is what makes NFTs valuable and desirable to collectors and enthusiasts.
+
+NFTs are created through smart contracts and are stored on a blockchain network, which ensures that they are tamper-proof and transparent. This allows for the creation of trustless and decentralised marketplaces for NFTs, where buyers and sellers can transact with each other without the need for intermediaries. 🤝
+
+One of the primary benefits of NFTs is their ability to represent ownership and provenance of digital assets. Since each NFT is unique and indivisible, it can be used to represent ownership of a specific piece of digital art or a rare collectible. This allows creators and collectors to monetise their work and to create new revenue streams. 💰
+
+NFTs can also be used to create new types of decentralised applications (dApps) and games. For example, NFTs can be used to represent in-game items that have real-world value, which allows for the creation of new types of gaming economies and ecosystems. 🎮
+
+Overall, NFTs are a powerful tool for representing ownership and provenance of digital assets, creating new types of decentralised economies and ecosystems, and unlocking new revenue streams for creators and collectors. Whether you are a developer, investor, or enthusiast, understanding the role of NFTs is essential for navigating the complex and rapidly evolving world of blockchain technology. 💻🌱
diff --git a/v1.0/REFERENCE/api.md b/v1.0/REFERENCE/api.md
new file mode 100644
index 00000000..47c40b33
--- /dev/null
+++ b/v1.0/REFERENCE/api.md
@@ -0,0 +1,10 @@
+---
+title: "API"
+slug: "api"
+excerpt: ""
+hidden: false
+createdAt: "Tue Mar 19 2024 12:06:59 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:06:59 GMT+0000 (Coordinated Universal Time)"
+type: "link"
+link_url: "https://tatumdocs.readme.io/reference"
+---
diff --git a/v1.0/REFERENCE/javascripttypescript.md b/v1.0/REFERENCE/javascripttypescript.md
new file mode 100644
index 00000000..6b15416c
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript.md
@@ -0,0 +1,8 @@
+---
+title: "JavaScript/TypeScript SDK"
+slug: "javascripttypescript"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 12:38:07 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 12:06:10 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/REFERENCE/javascripttypescript/fungible-tokens.md b/v1.0/REFERENCE/javascripttypescript/fungible-tokens.md
new file mode 100644
index 00000000..3ededf9c
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/fungible-tokens.md
@@ -0,0 +1,23 @@
+---
+title: "🪙 Fungible tokens"
+slug: "fungible-tokens"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:09:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:31:26 GMT+0000 (Coordinated Universal Time)"
+---
+Fungible tokens are a type of cryptographic token on the blockchain, which are interchangeable with each other, like traditional fiat currencies such as USD, EUR, or JPY. They are constructed using standard protocols like the ERC-20 for Ethereum, and they serve various purposes, from being used as a currency, to representing voting rights, and more. Fungibility implies that each unit of the token is exactly the same as every other unit.
+
+# Examples of Fungible Token Use Cases
+
+1. **Cryptocurrencies:** The most common application of fungible tokens is cryptocurrencies like Bitcoin (BTC) and Ether (ETH). In these systems, each individual token is identical to the next, ensuring any BTC or ETH token you own or receive will hold the same value as any other.
+2. **Utility Tokens:** Utility tokens offer users access to a product or service provided by a specific project or platform. An example of this is the Binance Coin (BNB). BNB is used on the Binance exchange platform for trading fees, participating in token sales, and more.
+3. **Stablecoins**
+
+ Stablecoins are a type of cryptocurrency designed to minimize volatility. They achieve this by pegging their value to a reserve of assets, typically fiat currencies like USD. Examples of stablecoins include Tether (USDT) and USD Coin (USDC).
+4. **Governance Tokens**
+
+ In Decentralized Autonomous Organizations (DAOs), governance tokens are used to grant holders voting rights within the community. One example is Maker (MKR). Holding MKR allows holders to participate in the governance of the Maker Protocol, voting on important issues such as risk parameters.
+5. **Reward Tokens**
+
+ Certain platforms offer reward tokens to incentivize user engagement or participation. An instance of this is Compound's COMP token, which is distributed to users as they interact with the protocol.
diff --git a/v1.0/REFERENCE/javascripttypescript/fungible-tokens/create-a-fungible-token.md b/v1.0/REFERENCE/javascripttypescript/fungible-tokens/create-a-fungible-token.md
new file mode 100644
index 00000000..78682a03
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/fungible-tokens/create-a-fungible-token.md
@@ -0,0 +1,150 @@
+---
+title: "Create a fungible token"
+slug: "create-a-fungible-token"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:41:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:49:07 GMT+0000 (Coordinated Universal Time)"
+---
+Creating a fungible token involves defining the parameters of the token, such as its name, symbol, and total supply, within a smart contract on a blockchain network like Ethereum. The distinguishing feature of fungible tokens, created using standards like ERC-20 or BEP-20, is their interchangeability. Each token is identical to the others in its set, meaning they can be exchanged on a one-for-one basis. This is in contrast to non-fungible tokens (NFTs), which are unique and not interchangeable, with each NFT representing a distinct asset or value.
+
+# How to create a fungible token on the Ethereum Sepolia network
+
+Use the TatumSDK (`@tatumio/tatum`) to create the token.
+
+```typescript
+// yarn add @tatumio/tatum
+import { TatumSDK, Network, Ethereum, ResponseDto, TokenMetadata } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.token.createNewFungibleToken({
+ name: 'Test Token',
+ symbol: 'MY_TKN',
+ initialHolder: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
+ initialSupply: '1000000',
+ owner: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
+ })
+
+console.log(result)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM_SEPOLIA });
+ const result = await tatum.token.createNewFungibleToken({
+ name: 'Test Token',
+ symbol: 'MY_TKN',
+ initialHolder: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
+ initialSupply: '1000000',
+ owner: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
+ })
+
+ console.log(result.data);
+ } catch (error) {
+ console.error("Error fetching token metadata:", error);
+ }
+})();
+```
+```curl
+curl --location --request POST 'https://api.tatum.io/v4/contract/deploy?type=testnet' -H "Content-Type: application/json" -d '{"chain":"ethereum-sepolia","contractType":"fungible","name":"Test Token","symbol":"MY_TKN","initialHolder":"0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48","initialSupply":"1000000","owner":"0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48"}'
+```
+
+# Expected Response
+
+```json
+{
+ "txId":"0x6f0ef980ee7c5289d10c8ee8cb5e1763ae72074d20424e2c3258f703c4ee7fba"
+}
+```
+
+# Use cases of fungible tokens include:
+
+- **Native Tokens for Platforms/Projects:** For example, Binance Coin (BNB) is the native token of Binance, serving both as a cryptocurrency and a utility token within the platform. It's used for transaction fees, participating in new token sales, and more.
+- **Stablecoins:** Tokens like USDT and USDC are examples of stablecoins, designed to maintain a stable value by being pegged to a reserve of assets, typically a fiat currency like USD. This provides stability in the volatile crypto markets.
+- **Governance Tokens:** Governance tokens, such as Maker (MKR), grant voting rights within a Decentralized Autonomous Organization (DAO). Holders of these tokens can vote on key aspects of the project, influencing its direction and policies.
+- **Reward Tokens:** Certain protocols, like Compound, use fungible tokens (in this case, COMP) as rewards to incentivise user engagement and participation within the platform. These tokens can also grant voting rights, enhancing the protocol's decentralised governance.
+
+# Request interface
+
+```typescript
+interface CreateFungibleToken {
+ /**
+ * Address of the fungible token owner
+ */
+ owner: string
+ /**
+ * Optional. Address of the fungible token minter, it defaults to the owner address
+ */
+ minter?: string
+ /**
+ * Optional. Address of the fungible token pauser, it defaults to the owner address
+ */
+ pauser?: string
+ /**
+ * Name of fungible token
+ */
+ name: string
+ /**
+ * Symbol of fungible token
+ */
+ symbol: string
+ /**
+ * Initial supply of fungible token
+ */
+ initialSupply: string
+ /**
+ * Initial holder of fungible token
+ */
+ initialHolder: string
+ /**
+ * Optional. Number of decimal places for the fungible token, it defaults to 18
+ */
+ decimals?: string
+}
+```
+
+# Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface TxIdResponse {
+ /**
+ * Id of the transaction
+ */
+ txId: string
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "0-0": "Ethereum / Ethereum Sepolia \nBNB Smart Chain / BNB Smart Chain Testnet \nCelo / Celo Alfajores \nPolygon / Polygon Mumbai"
+ },
+ "cols": 1,
+ "rows": 1,
+ "align": [
+ null
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/fungible-tokens/get-all-fungible-tokens-the-wallet-holds.md b/v1.0/REFERENCE/javascripttypescript/fungible-tokens/get-all-fungible-tokens-the-wallet-holds.md
new file mode 100644
index 00000000..28e6601b
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/fungible-tokens/get-all-fungible-tokens-the-wallet-holds.md
@@ -0,0 +1,176 @@
+---
+title: "Get all fungible tokens the wallet holds"
+slug: "get-all-fungible-tokens-the-wallet-holds"
+excerpt: "This function helps you to fetch all the fungible tokens a wallet holds, all you have to do is pass the address to the function parameter and chain while initialising the SDK."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:39:37 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:36:30 GMT+0000 (Coordinated Universal Time)"
+---
+The "Get all fungible tokens the wallet holds" function is designed to retrieve information about all the fungible tokens stored in a specific wallet. By providing the wallet address as a parameter and initialising the software development kit (SDK) with the appropriate blockchain, this function enables users to fetch data regarding the fungible tokens associated with that particular wallet.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/gOQZjjj",
+ "provider": "codepen.io",
+ "href": "https://codepen.io/tatum-devrel/embed/gOQZjjj",
+ "typeOfEmbed": "iframe",
+ "height": "500px",
+ "width": "100%",
+ "iframe": true
+}
+[/block]
+
+
+# How to get fungible tokens on a wallet in the Ethereum network
+
+Use the TatumSDK (`@tatumio/tatum`) to get a balance of the wallet.
+
+```typescript
+// yarn add @tatumio/tatum
+import { TatumSDK, Network, Ethereum, ResponseDto, FungibleTokenBalance } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM })
+
+const balance: ResponseDto = await tatum.token.getBalance({
+ addresses: ['0x78E851C35326c9296485E9720D85CB3Bd153b428'], // replace with your address
+ })
+
+console.log(balance.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const balance = await tatum.token.getBalance({ addresses: ['0x78E851C35326c9296485E9720D85CB3Bd153b428'], // replace with your address
+ });
+ console.log(balance.data);
+ } catch (error) {
+ console.error("Error fetching balances of fungible tokens:", error);
+ }
+})();
+```
+```curl
+curl --location --request GET 'https://api.tatum.io/v4/data/balances?chain=ethereum&addresses=0x78E851C35326c9296485E9720D85CB3Bd153b428&tokenTypes=fungible'
+```
+
+# Expected Response
+
+```json
+[
+ {
+ chain: 'ethereum-mainnet',
+ tokenAddress: '0xd110bb8a24b100c37af7310416e685af807c1f10',
+ type: 'fungible',
+ lastUpdatedBlockNumber: 8167878,
+ address: '0x78e851c35326c9296485e9720d85cb3bd153b428',
+ balance: '0.0006'
+ },
+ {
+ chain: 'ethereum-mainnet',
+ tokenAddress: '0x1fcdce58959f536621d76f5b7ffb955baa5a672f',
+ type: 'fungible',
+ lastUpdatedBlockNumber: 8348276,
+ address: '0x78e851c35326c9296485e9720d85cb3bd153b428',
+ balance: '1'
+ },
+ {
+ chain: 'ethereum-mainnet',
+ tokenAddress: '0x558ec3152e2eb2174905cd19aea4e34a23de9ad6',
+ type: 'fungible',
+ lastUpdatedBlockNumber: 12136720,
+ address: '0x78e851c35326c9296485e9720d85cb3bd153b428',
+ balance: '201.752'
+ }
+]
+```
+
+# Request interface
+
+```typescript
+interface AddressBalanceDetails {
+ /**
+ * List of addresses to check.
+ */
+ addresses: string[]
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+}
+```
+
+# Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface FungibleTokenBalance {
+ /**
+ * Blockchain network
+ */
+ chain: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+ /**
+ * Token type, default 'fungible' (ERC-20).
+ */
+ type: 'fungible'
+
+ /**
+ * Block number of the last balance update.
+ */
+ lastUpdatedBlockNumber: number
+
+ /**
+ * Address
+ */
+ address: string
+
+ /**
+ * Balance of the address.
+ */
+ balance: string
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \nBNB Smart Chain / BNB Smart Chain Testnet \nCelo / Celo Alfajores \nPolygon / Polygon Mumbai",
+ "0-1": "Multiple addresses per 1 invocation"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ null,
+ null
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/fungible-tokens/get-metadata-of-a-fungible-token.md b/v1.0/REFERENCE/javascripttypescript/fungible-tokens/get-metadata-of-a-fungible-token.md
new file mode 100644
index 00000000..cb795f60
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/fungible-tokens/get-metadata-of-a-fungible-token.md
@@ -0,0 +1,146 @@
+---
+title: "Get metadata of a fungible token"
+slug: "get-metadata-of-a-fungible-token"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:40:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:46:34 GMT+0000 (Coordinated Universal Time)"
+---
+Fungible tokens can carry associated metadata, which is a set of data that provides information about the token's properties. Although each token is indistinguishable in value, metadata can specify attributes such as the token's name, symbol, or total supply. In the realm of cryptocurrencies, metadata is often used to create a clearer understanding of the token's purpose or functionality. For instance, a utility token's metadata might detail the specific service or access it provides within its platform. Similarly, a governance token's metadata could illustrate the voting rights or privileges it conveys in a Decentralised Autonomous Organisation (DAO). Thus, metadata provides essential context, enhancing the fungible tokens' usability in diverse scenarios.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/BaGvOoe",
+ "href": "https://codepen.io/tatum-devrel/embed/BaGvOoe",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# How to show the metadata of a fungible token on the Ethereum network
+
+Use the TatumSDK (`@tatumio/tatum`) to get the token metadata.
+
+```typescript
+// yarn add @tatumio/tatum
+import { TatumSDK, Network, Ethereum, ResponseDto, TokenMetadata } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const response: ResponseDto = await tatum.token.getTokenMetadata({
+ tokenAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
+ })
+
+console.log(response.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const result = await tatum.token.getTokenMetadata({
+ tokenAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
+ })
+
+ console.log(result.data);
+ } catch (error) {
+ console.error("Error fetching token metadata:", error);
+ }
+})();
+```
+```curl
+curl --location --request GET 'https://api.tatum.io/v4/data/tokens?tokenAddress=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&chain=ethereum'
+```
+
+# Expected Response
+
+```json
+{
+ "symbol":"USDC",
+ "name":"USD Coin",
+ "supply":"26667389920178985",
+ "decimals":6,
+ "type":"fungible",
+ "cap":"undefined"
+}
+```
+
+# Request interface
+
+```typescript
+interface TokenAddress {
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+}
+```
+
+# Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface TokenMetadata {
+ /**
+ * Symbol of the fungible token.
+ */
+ symbol: string
+ /**
+ * Full name of the fungible token
+ */
+ name: string
+ /**
+ * Total supply of the fungible token.
+ */
+ supply: string
+ /**
+ * Number of decimal places for the fungible token.
+ */
+ decimals: number
+ /**
+ * Type of the token - fungible
+ */
+ type: string
+ /**
+ * Maximum supply cap of the fungible token.
+ */
+ cap: string
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "0-0": "Ethereum / Ethereum Sepolia \nBNB Smart Chain / BNB Smart Chain Testnet \nCelo / Celo Alfajores \nPolygon / Polygon Mumbai"
+ },
+ "cols": 1,
+ "rows": 1,
+ "align": [
+ null
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/fungible-tokens/show-fungible-token-history-of-a-wallet.md b/v1.0/REFERENCE/javascripttypescript/fungible-tokens/show-fungible-token-history-of-a-wallet.md
new file mode 100644
index 00000000..d84e943f
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/fungible-tokens/show-fungible-token-history-of-a-wallet.md
@@ -0,0 +1,203 @@
+---
+title: "Show fungible token history of a wallet"
+slug: "show-fungible-token-history-of-a-wallet"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:40:16 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:42:51 GMT+0000 (Coordinated Universal Time)"
+---
+Fungible token transfers are critical in blockchain networks. They are used as a means of value exchange in cryptocurrency systems like Bitcoin and Ethereum. Beyond just transactions, they're also transferred into smart contracts in DeFi spaces for participation in liquidity pools or lending protocols. In Decentralised Autonomous Organisations (DAOs), governance tokens, a type of fungible token, are transferred to represent voting rights, enabling holders to have a say in network decisions. The versatility of fungible tokens and their transferability underscores the profound utility they bring to the blockchain ecosystem.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/oNQJMPG",
+ "provider": "codepen.io",
+ "href": "https://codepen.io/tatum-devrel/embed/oNQJMPG",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true
+}
+[/block]
+
+
+# How to show the fungible token history of a specific wallet on the Ethereum network
+
+Use the TatumSDK (`@tatumio/tatum`) to get a transaction history of the wallet.
+
+```typescript
+// yarn add @tatumio/tatum
+import { TatumSDK, Network, Ethereum, ResponseDto, Transaction } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const txs: ResponseDto = await tatum.token.getAllFungibleTransactions({
+ addresses: ['0x78E851C35326c9296485E9720D85CB3Bd153b428'], // replace with your address
+ })
+
+console.log(txs.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const txs = await tatum.token.getAllFungibleTransactions({
+ addresses: ['0x78E851C35326c9296485E9720D85CB3Bd153b428'], // replace with your address
+ })
+ console.log(txs.data);
+ } catch (error) {
+ console.error("Error fetching wallet history:", error);
+ }
+})();
+```
+```curl
+curl --location --request GET 'https://api.tatum.io/v4/data/transactions?addresses=0x78E851C35326c9296485E9720D85CB3Bd153b428&chain=ethereum&transactionTypes=fungible'
+```
+
+# Expected Response
+
+```json
+[
+ {
+ "chain":"ethereum-mainnet",
+ "blockNumber":17463011,
+ "hash":"0x3509d471bf8362f4bffcfec8d27b0d1d6af3d3520dbd72f2aad61cfb8e22417f",
+ "transactionType":"fungible",
+ "transactionIndex":60,
+ "tokenAddress":"0xdac17f958d2ee523a2206206994597c13d831ec7",
+ "amount":"3900",
+ "timestamp":1686561155000,
+ "address":"0x78e851c35326c9296485e9720d85cb3bd153b428",
+ "counterAddress":"0x54157126f10ed5019ab2785cd8f1ced207d10346",
+ "transactionSubtype":"incoming"
+ }
+]
+```
+
+# Request interface
+
+```typescript
+interface GetAllFungibleTransactionsQuery {
+ /**
+ * Token contract address
+ */
+ tokenAddress?: string
+ /**
+ * Addresses to fetch. Up to 10 addresses as a comma separated string.
+ */
+ addresses: string[]
+ /**
+ * Optional transaction type. If not specified, both incoming and outgoing transactions are returned.
+ */
+ transactionTypes?: TransactionType[]
+ /**
+ * Optional from block. If not specified, all transactions are returned from the beginning of the blockchain.
+ */
+ blockFrom?: number
+ /**
+ * Optional to block. If not specified, all transactions are returned up till now.
+ */
+ blockTo?: number
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+}
+```
+
+# Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface Transaction {
+ /**
+ * Blockchain network
+ */
+ chain: string
+ /**
+ * Block number
+ */
+ blockNumber: number
+ /**
+ * Transaction hash
+ */
+ hash: string
+ /**
+ * Transaction type
+ */
+ transactionType: 'fungible' | 'nft' | 'multitoken' | 'native' | 'internal'
+ /**
+ * Transaction sub type
+ */
+ transactionSubtype: 'incoming' | 'outgoing' | 'zero-transfer'
+ /**
+ * Index of the transaction in the block
+ */
+ transactionIndex: number
+ /**
+ * Address of the token collection
+ */
+ tokenAddress?: string
+ /**
+ * The ID of the token involved in the transaction (optional).
+ */
+ tokenId?: string
+ /**
+ * Amount transferred. For outgoing transactions, it's a negative number. For zero-transfer transactions, it's always 0. For incoming transactions, it's a positive number.
+ */
+ amount: string
+ /**
+ * Transaction timestamp - UTC millis
+ */
+ timestamp: number
+ /**
+ * Address, on which transaction occurred. This is receiver address for incoming transactions and sender address for outgoing transactions.
+ */
+ address: string
+ /**
+ * Counter address of the transaction. This is sender address for incoming transactions on `address` and receiver address for outgoing transactions on `address`.
+ */
+ counterAddress?: string
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \nBNB Smart Chain / BNB Smart Chain Testnet \nCelo / Celo Alfajores \nPolygon / Polygon Mumbai",
+ "0-1": "Multiple addresses per 1 invocation"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ null,
+ null
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/ipfs-1.md b/v1.0/REFERENCE/javascripttypescript/ipfs-1.md
new file mode 100644
index 00000000..70cfac0e
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/ipfs-1.md
@@ -0,0 +1,26 @@
+---
+title: "💿 IPFS"
+slug: "ipfs-1"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:46:20 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:09:42 GMT+0000 (Coordinated Universal Time)"
+---
+The InterPlanetary File System (IPFS) is a distributed and peer-to-peer system for storing and accessing files, websites, applications, and data. The IPFS submodule is designed to provide an intuitive interface for users and developers to interact with IPFS, enabling seamless storage of data on this decentralised platform.
+
+Utilising the IPFS submodule, developers can easily integrate decentralised file storage into their applications, ensuring data integrity, permanence, and censorship resistance. By tapping into the global IPFS network, data becomes universally accessible, resistant to single points of failure, and is anchored to the decentralized web.
+
+**Note**: Always be mindful of the data you store on IPFS. Once published, it becomes permanent and may be retrievable by anyone.
+
+# **Use Cases**
+
+1. **Decentralised Web Hosting**: Host websites or web applications on IPFS, ensuring they are censorship resistant and always accessible, even if a single node or server goes down.
+2. **Data Backup and Archiving**: Store crucial data or archives in a decentralised manner, safeguarding against data loss from centralised server failures or attacks.
+3. **Content Distribution**: Use IPFS for content delivery, reducing the load on original servers and ensuring faster data retrieval from the nearest node.
+4. **Decentralised Applications (DApps)**: Integrate IPFS storage into DApps to ensure data permanence and resilience against central points of failure.
+
+# **Key Features**
+
+- **Data Storage**: Keep your important files persistently stored on IPFS by uploading them, ensuring they remain accessible.
+
+As the decentralised web grows, the IPFS submodule becomes an indispensable tool for developers and users who wish to leverage the power of decentralised file storage and access.
diff --git a/v1.0/REFERENCE/javascripttypescript/ipfs-1/upload-file.md b/v1.0/REFERENCE/javascripttypescript/ipfs-1/upload-file.md
new file mode 100644
index 00000000..041bf966
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/ipfs-1/upload-file.md
@@ -0,0 +1,105 @@
+---
+title: "Upload File"
+slug: "upload-file"
+excerpt: "This function helps a user to upload a new file on the Inter Planetary File Storage"
+hidden: false
+createdAt: "Thu Feb 22 2024 13:47:07 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:11:19 GMT+0000 (Coordinated Universal Time)"
+---
+The "uploadFile" function is specifically designed to facilitate the process of uploading data to the IPFS network. By supplying the file in a buffer format, this function allows users to store their data on the decentralised IPFS system and receive a unique CID (Content Identifier) in return, which acts as a reference to the uploaded data.
+
+# How to upload a file to IPFS using TatumSDK
+
+Use the TatumSDK (@tatumio/tatum) to upload your file to IPFS.
+
+```typescript
+// yarn add @tatumio/tatum
+import { TatumSDK, Network, Polygon, ResponseDto, FungibleTokenBalance } from
+'@tatumio/tatum'
+import { readFileSync } from 'fs'
+
+const tatumClient = await TatumSDK.init({
+ network: Network.Polygon,
+ verbose: true,
+ apiKey: {
+ v4: '',
+ },
+ })
+
+const buffer = readFileSync('/path/to/file/file.jpg')
+
+const result = await tatumClient.ipfs.uploadFile({ file: buffer })
+console.log(JSON.stringify(result))
+
+await tatum.destroy();
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+const readFileSync = require('fs').readFileSync;
+
+
+const tatumClient = await TatumSDK.init({
+ network: Network.Polygon,
+ verbose: true,
+ apiKey: {
+ v4: '',
+ },
+ })
+
+const buffer = readFileSync('/path/to/file/file.jpg')
+
+const result = await tatumClient.ipfs.uploadFile({ file: buffer })
+console.log(JSON.stringify(result))
+
+await tatum.destroy();
+```
+
+## Expected Response
+
+```json
+// Some code
+{
+ "data": {
+ "ipfsHash":"bafybeighfkqyizr3ncoraqfyi6twf2tnxjxhxewwaqvdom57ijiudh5w7y"
+ },
+ "status":"SUCCESS"
+}
+```
+
+## Request interface
+
+```typescript
+interface UploadFileDetails {
+ /**
+ * The file is to be uploaded in binary format.
+ */
+ file: Buffer
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response.
+ */
+ data: T
+ /**
+ * Status of the response.
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description.
+ */
+ error?: ErrorWithMessage
+}
+
+interface IPFSUploadResponse {
+ /**
+ * The unique CID (Content Identifier) associated with the uploaded file.
+ */
+ ipfsHash: string
+}
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/javascript-sdk.md b/v1.0/REFERENCE/javascripttypescript/javascript-sdk.md
new file mode 100644
index 00000000..1285f9bc
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/javascript-sdk.md
@@ -0,0 +1,70 @@
+---
+title: "Get Started with JS/TS SDK"
+slug: "javascript-sdk"
+excerpt: "Tatum offers a very powerful JS/TS SDK which can help developers to make dapps easier and quicker."
+hidden: false
+createdAt: "Thu Feb 22 2024 12:02:28 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:49:53 GMT+0000 (Coordinated Universal Time)"
+---
+This page provides a step-by-step guide on getting started creating a dapp that fetches the native balance of a user under a minute.
+
+# Prerequisites
+
+Before diving into TatumSDK, ensure that you have the following prerequisites installed:
+
+- **Node.js**: Ensure you have the latest LTS version installed.
+- **npm**: npm is bundled with Node.js, so installing Node.js should automatically install npm.
+
+# Installation
+
+To install TatumSDK, simply run the following command in your terminal or command prompt:
+
+#### Install using [npm](https://www.npmjs.com/)
+
+```javascript
+npm install @tatumio/tatum
+```
+
+#### Install using [yarn](https://yarnpkg.com/)
+
+```javascript
+yarn add @tatumio/tatum
+```
+
+#### Install using [pnpm](https://pnpm.io/)
+
+```javascript
+pnpm install @tatumio/tatum
+```
+
+# Making your first Call
+
+Now that you have installed Tatum SDk, lets make your first call in which we will fetch the native balance of wallet in just 3 steps.
+
+Here's the code snippet for same,
+
+```javascript
+import { TatumSDK, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+const balance = await tatum.address.getBalance({
+ addresses: [addressInput.value],
+});
+console.log(balance.data[0]);
+});
+```
+
+Try the first call in the codepen below.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/MWzZXqz?default-tab=result&theme-id=light",
+ "href": "https://codepen.io/tatum-devrel/embed/MWzZXqz?default-tab=result&theme-id=light",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/javascript-sdk/build-your-first-web3-app-with-tatum-sdk.md b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/build-your-first-web3-app-with-tatum-sdk.md
new file mode 100644
index 00000000..c88a8b3c
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/build-your-first-web3-app-with-tatum-sdk.md
@@ -0,0 +1,144 @@
+---
+title: "Build your first web3 app with Tatum SDK"
+slug: "build-your-first-web3-app-with-tatum-sdk"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 12:06:03 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Feb 22 2024 13:53:11 GMT+0000 (Coordinated Universal Time)"
+---
+🎯 Welcome to the Tatum SDK Demo: Simplifying Blockchain Development! 🚀
+
+In this step-by-step guide, we'll showcase just how remarkably easy it is to work with the Tatum SDK and retrieve the balance of an Ethereum address using vanilla JavaScript. 💰 Get ready to witness the power of simplicity!
+
+With the Tatum SDK, fetching the balance is a breeze, thanks to its intuitive API. 🌟 No complex setup or convoluted coding required! Just a few lines of vanilla JavaScript code, and we'll connect to the Tatum SDK, retrieve the balance, and display it on a user-friendly interface. 🌐💡
+
+Join us as we embark on our journey to build a Tatum DApp with vanilla JavaScript. Let's break it down into simple steps:
+
+1. Create a new Node.js project and install the Tatum SDK package. 📦
+2. Build an HTML page with an input field and a button. This will allow users to enter the Ethereum address and initiate the balance retrieval process. 💻
+3. Write vanilla JavaScript code that leverages the Tatum SDK's address.getBalance() method. This function will fetch the balance of the provided Ethereum address. 🤑
+4. Launch our application using the Parcel server. Sit back and watch as our vanilla JavaScript-powered DApp comes to life, fetching and displaying the balance in a decentralized, secure, and efficient manner. 🚀
+
+So, grab your coding hat, and let's get started on our Tatum SDK adventure with the simplicity of vanilla JavaScript! 💪
+
+# Create a new project 🆕
+
+The first step is to create a new project by running `npm init` in the terminal. This will prompt you to enter some basic information about the project, such as the project name and version.
+
+```shell
+npm init
+```
+
+# Install Tatum SDK 📦
+
+Next, you will need to install the Tatum SDK by running `npm install @tatumio/tatum` it in the terminal. This will install the Tatum SDK package and its dependencies.
+
+```shell
+npm install @tatumio/tatum
+```
+
+# Create an index.html file 📝
+
+After installing the Tatum SDK, you need to create an `index.html` file in your project directory. This file will contain the HTML code that displays the input field, button and a div element for displaying the balance. The button is set up with an event listener that triggers the function to retrieve the balance when clicked. As you can see in the script tag we are import `app.js` which doesn't exist right now, but we will create this file in the next step!
+
+```html
+
+
+
+ My First Tatum DApp
+
+
+
+
Get Eth balance with Tatum!
+
+
+
+
+
+```
+
+# Create an app.js file 📝
+
+Next, you will create a `app.js` file in your project directory. This file will contain the code that interacts with the Tatum SDK to retrieve the balance of a given Ethereum wallet address.
+
+```typescript
+import { TatumSDK, Network } from '@tatumio/tatum'
+
+const button = document.getElementById('get-balance');
+const addressInput = document.getElementById('address');
+const balanceDiv = document.getElementById('balance');
+
+button.addEventListener('click', async () => {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const balance = await tatum.address.getBalance({
+ addresses: [addressInput.value],
+ });
+ const balanceData = balance.data.filter(asset => asset.asset === 'ETH')[0];;
+ balanceDiv.textContent = `${balanceData.balance} ${balanceData.asset}`;
+});
+
+```
+
+You initialise the Tatum SDK by calling and passing in the `Network` object for the Ethereum network. Then you call `tatum.address.getBalance` and pass in an object with an array of addresses to retrieve the balance for. Finally, you display the retrieved balance in the balance div element.
+
+> 📘 There are various blockchain networks available - each instance of the TatumSDK is tied to 1 specific network. All supported networks are available [here](https://github.com/tatumio/tatum-js/blob/master/src/dto/Network.ts).
+
+# Update package.json 📝
+
+To start the app from the `index.html` file, you need to update the `source` property in your `package.json` file.
+
+```json
+{
+ "name": "my-first-tatum-dapp",
+ "version": "1.0.0",
+ "source": "./index.html",
+ "license": "MIT",
+ "dependencies": {
+ "@tatumio/tatum": "^3.0.0"
+ }
+}
+```
+
+# Start server 🚀
+
+The last step is to start the server using Parcel. You can run `npx parcel` in the terminal to start the server, and your app will be available at `http://localhost:1234`.
+
+```typescript
+npx parcel
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/MWzZXqz?default-tab=result&theme-id=light",
+ "href": "https://codepen.io/tatum-devrel/embed/MWzZXqz?default-tab=result&theme-id=light",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+You can enter a wallet address and click the "Get Balance" button to retrieve the balance for that Ethereum address. The balance will be displayed below the button.
+
+> 📘 👉 Hint: Parcel will automatically bundle and serve your app.
+
+All the files we created together are available on our [TatumSDK repository on github](https://github.com/tatumio/example-apps) 📁.
+
+#### 🎉 Congratulations! You have successfully built your first DApp using TatumSDK!
+
+🎉 With just a few lines of vanilla JavaScript code, you were able to connect to the Ethereum blockchain network and retrieve the balance for a given Ethereum wallet address. Now, it's time to explore the full power of Tatum!
+
+🚀 TatumSDK opens up a world of possibilities for your vanilla JavaScript-powered blockchain development journey. Whether you're building decentralised finance (DeFi) applications, NFT platforms, or integrating blockchain into your existing projects, TatumSDK has got you covered.
+
+👨💻 To unlock the full potential of TatumSDK and discover its extensive features, head over to our Tatum Dashboard at dashboard.tatum.io. Sign up for an account and gain access to a range of powerful tools and services that will accelerate your blockchain development.
+
+🌟 The Tatum Dashboard provides a user-friendly interface to manage your API keys, create notifications, and much more. It's your gateway to streamline your blockchain development process.
+
+🔔 In addition, if you're interested in learning more about specific topics like NFTs, wallet operations, and RPCs, be sure to check out the comprehensive Tatum Notifications Documentation for detailed insights and step-by-step guides. This resource will help you dive deeper into advanced functionalities and unleash the full potential of TatumSDK.
+
+👋 Thank you for following along with this guide and taking your first steps into the exciting world of blockchain development with TatumSDK. Get ready to unleash the true potential of decentralised applications!
+
+👉 Don't forget to check out other example apps on our TatumSDK repository on GitHub. Happy coding! 🌟
diff --git a/v1.0/REFERENCE/javascripttypescript/javascript-sdk/configuration-options.md b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/configuration-options.md
new file mode 100644
index 00000000..884fad55
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/configuration-options.md
@@ -0,0 +1,149 @@
+---
+title: "Configuration options"
+slug: "configuration-options"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 12:32:24 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Feb 22 2024 13:41:15 GMT+0000 (Coordinated Universal Time)"
+---
+# Network
+
+Every Tatum SDK instance must be initiated with the proper blockchain network. All operations performed later using this SDK will automatically use the network from the configuration.
+
+> 📘 To see the list of all available blockchain protocols, check on [GitHub](https://github.com/tatumio/tatum-js/blob/master/src/dto/Network.ts)
+
+```typescript
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+```
+
+> 👍 TatumSDK is returning the correct types for the RPC submodule using generic types in the init() method. To see all the supported RPC types, check [here](https://github.com/tatumio/tatum-js/blob/master/src/dto/rpc/index.ts).
+
+# API Version
+
+Tatum SDK works with two versions of the Tatum API - version 3 and version 4. Each of the versions supports different operations, it's recommended to use version 4.
+
+> 📘 Version 4 of the API supports the most up-to-date features and is set as a default value. The SDK by default tries to perform the calls against version 4 and fallbacks to version 3
+
+```typescript
+import {TatumSDK, Network, Ethereum, ApiVersion} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM, version: ApiVersion.V4})
+```
+
+# API Key
+
+Most of the operations available in the SDK don't require API Key authentication to Tatum. But, if you want to have a higher throughput or save your data for future use, you should obtain one at [Tatum Dashboard](https://dashboard.tatum.io/). Here, you will get the API Key Version 4 for your SDK, and you can use it in your application.
+
+> 📘 Alternatively, for access to features of Api Key Version 3, you can get the API Key [here](https://dashboard.tatum.io/).
+>
+> You can use both API Keys at the same time or just one of them.
+
+```typescript
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ apiKey: {
+ v3: 'YOUR_API_KEY_V3',
+ v4: 'YOUR_API_KEY_V4'
+})
+```
+
+# Verbose mode
+
+If you want to start the verbose logging mode to see requests and responses returned from the Tatum API, just set the config `verbose: true`.
+
+```typescript
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM, verbose: true})
+```
+
+# Custom RPC provider URL
+
+You can use any RPC provider for interacting with a blockchain. Just add your custom node provider inside `rpc.nodes` array. All other features from the SDK will work as expected, only the RPC calls will point to your custom node.
+
+```typescript
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM, rpcUrl: 'https://YOUR_CUSTOM_RPC_PROVIDER'})
+
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ verbose: true,
+ rpc: {
+ nodes: [
+ {
+ url: 'YOUR_CUSTOM_PROVIDER_URL',
+ type: RpcNodeType.NORMAL,
+ },
+ ],
+ },
+})
+```
+
+# Retry
+
+There are some cases when requests fail to complete successfully. For instance, when you exceed request rate limitations or a network error occurs. To configure behavior when requests fail use
+
+- `retryCount` - specifies the maximum number of how many times the failed request is resent again until a successful response is returned, the default value is 1
+- `retryDelay` - specifies the number in milliseconds of how long it waits before the failed request is resent again, the default value is 1000
+
+```typescript
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ retryCount: 5,
+ retryDelay: 1500,
+})
+```
+
+# Logger
+
+TatumSDK allows you to inject a custom logger in case you already have one or want to tweak the settings of one provided by Tatum.
+
+```typescript
+import { TatumSDK, TatumDevelopmentLogger, Network, Ethereum } from "@tatumio/tatum"
+
+const logger = new TatumDevelopmentLogger({ level: LogLevel.DEBUG });
+
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ logger,
+})
+```
+
+Or bring your own one entirely:
+
+```typescript
+const logger = {
+ trace(...args) {},
+ debug(...args) {},
+ info(...args) {},
+ warn(...args) {},
+ error(...args) {},
+}
+
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ logger,
+})
+```
+
+> 📘 You can read more on this topic on our Logging page.
+
+# Quiet
+
+Enables `quiet` mode, overriding the provided or builtin logger. Disables logging from inside the SDK.
+
+```typescript
+import { TatumSDK, TatumDevelopmentLogger, Network, Ethereum } from "@tatumio/tatum"
+
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ quiet: true,
+})
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/javascript-sdk/logging.md b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/logging.md
new file mode 100644
index 00000000..bc944c41
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/logging.md
@@ -0,0 +1,87 @@
+---
+title: "Logging"
+slug: "logging"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:08:06 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Feb 22 2024 13:40:31 GMT+0000 (Coordinated Universal Time)"
+---
+Tatum comes with a built-in logger which can help you debug your application, display errors and warnings from the inner workings of TatumSDK. You can also use it to log your own messages.
+
+Tatum comes with 3 builtin loggers:
+
+- `TatumDevelopmentLogger` - formats messages for easy viewing terminal
+- `TatumDevelopmentBrowserLogger` - formats messages for browser console
+- `TatumProductionLogger` - avoids formatting where possible, wraps global console
+
+You can pick choose which logger you use based on your needs.
+
+By default, Tatum will use of the development loggers if you are running in development mode, and `TatumProductionLogger` if you are running in production mode. Of course, you can override this behaviour by passing your own logger to Tatum SDK.
+
+```typescript
+import { TatumSDK, TatumDevelopmentLogger } from "@tatumio/tatum"
+
+const logger = new TatumDevelopmentLogger()
+
+const tatum = await TatumSDK.init({
+ logger,
+ // ...
+})
+```
+
+# Log levels
+
+Tatum supports 5 logging levels in order of severity:
+
+- `TRACE`
+- `DEBUG`
+- `INFO`
+- `WARN`
+- `ERROR`
+
+> 📘 By specifying a certain log level, all logs with a lower severity will be ignored
+
+You can set the log level by passing `level` to any of our loggers' constructor.
+
+```typescript
+import { TatumDevelopmentLogger, LogLevel } from "@tatumio/tatum"
+
+const logger = new TatumDevelopmentLogger({ level: LogLevel.DEBUG })
+
+logger.trace("This is a trace message") // will not be logged
+logger.debug("This is a debug message")
+logger.error("Ooopsie!")
+```
+
+# Bring your own logger
+
+You can also use your own logger, as long as it implements the following interface importable from `@tatumio/tatum`:
+
+```typescript
+interface Logger {
+ trace(...args: any[]): void
+ debug(...args: any[]): void
+ info(...args: any[]): void
+ warn(...args: any[]): void
+ error(...args: any[]): void
+}
+```
+
+> 📘 Many popular off-the-shelf loggers such as pino, loglevel or log4js already do so! You can use them without any additional configuration
+
+ Alternatively, you can implement it yourself:
+
+```typescript
+const myLogger = {
+ trace(...args) {},
+ debug(...args) {},
+ info(...args) {},
+ warn(...args) {},
+ error(...args) {},
+}
+
+const tatum = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ logger: myLogger,
+})
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/javascript-sdk/quick-start.md b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/quick-start.md
new file mode 100644
index 00000000..c1af2bfd
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/quick-start.md
@@ -0,0 +1,28 @@
+---
+title: "Quick Start"
+slug: "quick-start"
+excerpt: "Fastest SDK to get you started"
+hidden: false
+createdAt: "Thu Feb 22 2024 13:42:07 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Feb 22 2024 13:42:20 GMT+0000 (Coordinated Universal Time)"
+---
+# Install the SDK
+
+```typescript
+npm install @tatumio/tatum
+```
+
+# Make your first RPC call
+
+```typescript
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+// Init chain of your choice
+ const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+ // Use our interfaces to make the call
+ const latestBlock = await tatum.rpc.blockNumber()
+
+ console.log(`Latest block is ${latestBlock}`)
+
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/javascript-sdk/submodules.md b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/submodules.md
new file mode 100644
index 00000000..7d04d1f0
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/javascript-sdk/submodules.md
@@ -0,0 +1,55 @@
+---
+title: "Submodules"
+slug: "submodules"
+excerpt: "A quick overview of th different submodules in Tatum SDK and how they simplify blockchain development. These submodules include RPC, Notification, NFT, Address, and Wallet Provider."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:02:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Feb 22 2024 13:40:45 GMT+0000 (Coordinated Universal Time)"
+---
+TatumSDK is thoughtfully designed and organized into two primary submodules to provide a clean and efficient way of interacting with the various blockchains:
+
+**RPC submodule - `tatum.rpc.*`: **This submodule enables you to make direct Remote Procedure Call (RPC) calls to multiple blockchains, providing seamless access to various on-chain data and functionalities. With the RPC submodule, you can fetch account balances, send transactions, interact with smart contracts, and more.
+
+```typescript
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const latestBlock = await tatum.rpc.blockNumber()
+```
+
+**Notification submodule - `tatum.notification.*`: **This submodule allows you to subscribe to real-time notifications for a wide range of events related to specified blockchain addresses. By leveraging the notification submodule, you can effortlessly track incoming and outgoing transactions, NFT transfers, and other events without constantly polling the blockchain.
+
+```typescript
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const subscription = await tatum.notification.subscribe.nativeIncomingTx({
+ "address": "0xcb31c8B2Ce9D229b1968Ceb2516B2EB650151227",
+ "url": "https://dashboard.tatum.io/webhook-handler" // REPLACE WITH YOUR URL HANDLER
+})
+```
+
+**NFT submodule - `tatum.nft.*`:** This submodule offers a comprehensive suite of tools for working with Non-Fungible Tokens (NFTs). With the NFT submodule, you can query the balance of NFTs on an address, retrieve NFT transactions associated with a specific address, explore NFTs within a collection, or identify the owners of a particular NFT.
+
+```typescript
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+// Get balance of all NFTs this wallet holds
+const balance = await tatum.nft.getBalance({
+ "addresses": ["0xcb31c8B2Ce9D229b1968Ceb2516B2EB650151227"]
+})
+```
+
+**Wallet address submodule - `tatum.address.*`: **This submodule simplifies wallet management across multiple blockchains by allowing you to fetch wallet balances and retrieve transactions for a given address. With the Address submodule, you can easily manage your wallets and monitor transactions, making your blockchain application development more efficient and user-friendly.
+
+By dividing the library into these submodules, TatumSDK offers an organized, easy-to-use interface that makes interacting with Ethereum and other blockchains a breeze. Both beginners and advanced developers can benefit from the streamlined architecture, enabling them to focus on building powerful blockchain applications.
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1.md b/v1.0/REFERENCE/javascripttypescript/nfts-1.md
new file mode 100644
index 00000000..c8f1706c
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1.md
@@ -0,0 +1,39 @@
+---
+title: "🐒 NFTs"
+slug: "nfts-1"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:00:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:30:28 GMT+0000 (Coordinated Universal Time)"
+---
+A non-fungible token (NFT) is a unique digital asset that represents ownership of a one-of-a-kind item or piece of content, such as digital art, virtual real estate, or collectibles. Unlike fungible tokens, NFTs are not interchangeable, and each NFT has a distinct value based on its rarity, provenance, and demand for that specific token.
+
+# Video Guide on how to use NFT Submodule
+
+In this video guide we have demonstrated how you can use the Check Owner of an NFT function of this NFT Submodule to create a NFT gating app. This video is also helpful to get you started on using this submodule.
+
+[block:embed]
+{
+ "html": "",
+ "url": "https://www.youtube.com/watch?v=byTVqO3eefE",
+ "title": "Developers' Guide: Build an NFT-Gated Website in Less Than 3 Mins!",
+ "favicon": "https://www.google.com/favicon.ico",
+ "image": "https://i.ytimg.com/vi/byTVqO3eefE/hqdefault.jpg",
+ "provider": "youtube.com",
+ "href": "https://www.youtube.com/watch?v=byTVqO3eefE",
+ "typeOfEmbed": "youtube"
+}
+[/block]
+
+
+# Use cases of NFT's
+
+NFTs provide various benefits and use cases for both businesses and individuals:
+
+1. **Digital Art and Collectibles**: NFTs have become popular for digital artists and creators, as they can mint unique digital art pieces as NFTs, enabling them to prove ownership, protect their intellectual property, and monetise their creations. Collectors can buy, trade, and showcase their NFT collections, deriving value from their rarity and uniqueness.
+2. **Gaming and Virtual Items**: NFTs have transformed the gaming industry, allowing players to own in-game assets such as characters, items, and virtual real estate. These NFT-based assets can be traded, sold, or transferred across different platforms, creating a new economy within the gaming ecosystem.
+3. **Tokenised Physical Assets**: NFTs enable businesses to tokenize real-world assets like real estate, luxury goods, or even fine art. This tokenization process facilitates fractional ownership, making it possible for a broader audience to invest in and trade valuable assets that were previously less accessible.
+4. **Proof of Authenticity**: NFTs can serve as digital certificates of authenticity for various items, ensuring their provenance and verifying their scarcity. This can be beneficial for businesses dealing with high-value products, such as luxury brands or art dealers, as it can help prevent counterfeiting and create trust in the market.
+5. **Royalties and Secondary Sales**: NFTs can be programmed to generate royalties for creators every time their work is resold in the secondary market. This provides a new revenue stream for artists and creators, empowering them to capture more value from their work.
+
+For common people, NFTs present a new way to participate in the digital economy, enabling them to own, trade, and invest in unique digital assets that can appreciate in value over time. Additionally, NFTs offer a means to support their favorite artists, creators, and brands in a direct and meaningful way.
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/check-if-the-wallet-owns-a-specific-nft.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/check-if-the-wallet-owns-a-specific-nft.md
new file mode 100644
index 00000000..3ee70626
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/check-if-the-wallet-owns-a-specific-nft.md
@@ -0,0 +1,134 @@
+---
+title: "Check if the wallet owns a specific NFT"
+slug: "check-if-the-wallet-owns-a-specific-nft"
+excerpt: "This function checks if a wallet own's any or a specific nft from a collection, you can pass collection address, wallet address & tokenId as an option parameter."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:07:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:42:04 GMT+0000 (Coordinated Universal Time)"
+---
+# Check if the wallet owns a specific NFT
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/bGQOjoQ",
+ "href": "https://codepen.io/tatum-devrel/embed/bGQOjoQ",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Overview
+
+In the rapidly growing world of non-fungible tokens (NFTs), verifying the ownership of a particular NFT is crucial for creators, collectors, and traders alike. This guide introduces you to the operation of checking if a wallet owns a specific NFT, providing an efficient way to confirm the possession of unique digital assets. By leveraging this functionality, you can ensure the accuracy and authenticity of your NFT holdings, make well-informed decisions about buying, selling, or holding NFTs, and navigate the dynamic NFT landscape with greater confidence. Ultimately, this operation empowers you to manage your digital assets more effectively, fostering transparency and trust in your NFT transactions.
+
+# How to get the owner of the NFT on the Ethereum network
+
+Use the TatumSDK (`@tatumcom/js`) to check, if the wallet is the owner.
+
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const isOwner = await tatum.nft.checkNftOwner({
+ tokenAddress: "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d", // replace with your collection
+ tokenId: "1",
+ owner: "0x46efbaedc92067e6d60e84ed6395099723252496" // owner wallet
+ });
+ console.log(isOwner);
+ } catch (error) {
+ console.error("Error checking NFT owner:", error);
+ }
+})();
+
+
+// Expected outcome
+// true
+```
+```typescript Typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init\({network: Network.ETHEREUM})
+
+const isOwner: boolean = await tatum.nft.checkNftOwner({
+ tokenAddress: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d', // replace with your collection
+ tokenId: '1',
+ owner: '0x46efbaedc92067e6d60e84ed6395099723252496' // owner wallet
+})
+
+console.log(isOwner)
+```
+```curl cURL
+curl --location --request GET 'https://api.tatum.io/v4/data/owners/address?tokenAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=1&chain=ethereum&address=0x46efbaedc92067e6d60e84ed6395099723252496'
+```
+
+# Expected Response
+
+```json5
+true
+```
+
+## Request interface
+
+```typescript
+interface GetTokenOwner {
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+ /**
+ * Owner address of the NFT token
+ */
+ owner: string
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response - true or false result
+ */
+ data: boolean
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Supoprt",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "NFTs (BAYC,...) \nERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/create-multitoken-nft-collection.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/create-multitoken-nft-collection.md
new file mode 100644
index 00000000..3a0c1c5a
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/create-multitoken-nft-collection.md
@@ -0,0 +1,130 @@
+---
+title: "Create MultiToken NFT Collection"
+slug: "create-multitoken-nft-collection"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:06:52 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:47:51 GMT+0000 (Coordinated Universal Time)"
+---
+ERC-1155 is a standard for smart contracts on the Ethereum blockchain, which encompasses the functionality of both ERC-20 (fungible tokens, like cryptocurrencies) and ERC-721 (non-fungible tokens, or NFTs) within a single smart contract. This makes it a MultiToken standard.
+
+In the ERC-1155 standard, each token is identified by an ID. What makes this different from ERC-721 (where each token also has a unique ID) is that tokens of the same ID in ERC-1155 are interchangeable, just like ERC-20 tokens. This allows for both fungible and non-fungible tokens to be represented within a single contract.
+
+# Use Cases for ERC-1155 MultiToken Collections
+
+1. **Video Games**: ERC-1155 tokens can represent a wide variety of assets within a game, such as fungible resources (like in-game currency or consumable items) and non-fungible unique items (like a special character or a limited edition weapon). This can all be done within a single, smart contract.
+2. **DeFi Platforms**: A single ERC-1155 contract can manage a variety of tokens, such as governance tokens (fungible) and insurance contracts or loan receipts (non-fungible).
+3. **Art and Collectibles**: Just like with ERC-721, artists can mint their artworks as NFTs with ERC-1155. However, with ERC-1155 they can also issue fungible tokens, such as prints or copies, alongside the unique piece.
+4. **Real World Assets**: ERC-1155 tokens can represent ownership in real world assets, such as real estate or commodities. The fungible tokens can represent a divisible interest in an asset, while non-fungible tokens can represent unique assets.
+
+By using the Tatum SDK to create an ERC-1155 MultiToken collection, you're able to manage a complex economy of both fungible and non-fungible tokens with ease. Whether you're developing an intricate in-game economy or creating a platform with diverse types of assets, ERC-1155 offers a versatile solution for digital ownership and trade.
+
+# How to show create MultiToken NFT Collection (ERC-1155 type) on the Ethereum network
+
+Use the TatumSDK (`@tatumio/tatum`) to get a transaction history of the wallet.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const tx: ResponseDto<{txId: string}> = await tatum.nft.createMultiTokenNftCollection({
+ owner: '0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d', // replace with your address
+})
+
+console.log(tx.data.txId)
+// 0x8e564406701caab6258501c794f5c1eece380f673be99b561d626c3d8d81b202
+
+// you can get created collection address using this RPC call
+const collectionAddress = await tatum.rpc.getContractAddress(tx.data.txId)
+console.log(collectionAddress)
+// 0x876977006988ce590e219f576077459a49c7318a
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const txs = await tatum.nft.createMultiTokenNftCollection({
+ owner: '0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d', // replace with your address
+ });
+ console.log(txs.data.txId);
+ // 0x8e564406701caab6258501c794f5c1eece380f673be99b561d626c3d8d81b202
+
+ const collectionAddress = await tatum.rpc.getContractAddress(tx.data.txId);
+ console.log(collectionAddress);
+ // 0x876977006988ce590e219f576077459a49c7318a
+ } catch (error) {
+ console.error("Error creating NFT collection:", error);
+ }
+})();
+```
+```curl
+curl --location --request POST 'https://api.tatum.io/v4/contract/deploy' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "contractType": "multitoken",
+ "chain": "ethereum-sepolia",
+ "owner": "0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d"
+}'
+```
+
+## Request interface
+
+```typescript
+export interface CreateMultiTokenNftCollection {
+ /**
+ * Address of the NFT collection owner
+ */
+ owner: string
+ /**
+ * Address of the NFT collection minter, this is optional and defaults to the owner address
+ */
+ minter?: string
+ /**
+ * Optional base URI, which will be prepended to the token URI. If not specified, the token should be minted with the URI
+ */
+ baseURI?: string
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto<{txId: string}> {
+ /**
+ * Actual payload of the response
+ */
+ data: {txId: string}
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "NFTs (BAYC,...) ERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/create-nft-collection.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/create-nft-collection.md
new file mode 100644
index 00000000..9c068a10
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/create-nft-collection.md
@@ -0,0 +1,149 @@
+---
+title: "Create NFT Collection"
+slug: "create-nft-collection"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:06:18 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:28:44 GMT+0000 (Coordinated Universal Time)"
+---
+An NFT, or non-fungible token, is a type of cryptocurrency that represents a unique item or asset. Unlike regular cryptocurrencies such as Bitcoin or Ether, NFTs aren't interchangeable with other tokens of the same type but stand as unique tokens with their own specific value. They leverage blockchain technology to establish provenance and ownership.
+
+An NFT collection is a group of NFTs, typically bound together by a common theme or brand. Each individual NFT within the collection is unique, but they are all part of the broader collection. Think of it like a collection of paintings from the same artist or a series of collectible toys.
+
+> Note : This function creates a collection for you using your Tatum Plan and transfers the ownership to you. Thus the gas cost is paid from the Tatum Plan.
+>
+> In case you would like to create it directly from your wallet check the [createNftCollection](../wallet-provider/metamask/create-your-nft-collection.md) function in the Metamask Extension of the Wallet provider submodule.
+
+# How to create NFT Collection (ERC-721 type) on the Ethereum network
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const tx: ResponseDto<{txId: string}> = await tatum.nft.createNftCollection({
+ name: 'My NFT Collection',
+ symbol: 'MyNFT',
+ owner: '0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d', // replace with your address
+})
+
+console.log(tx.data.txId)
+// 0x8e564406701caab6258501c794f5c1eece380f673be99b561d626c3d8d81b202
+
+// you can get created collection address using this RPC call
+const collectionAddress = await tatum.rpc.getContractAddress(tx.data.txId)
+console.log(collectionAddress)
+// 0x876977006988ce590e219f576077459a49c7318a
+```
+```Text Javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const txs = await tatum.nft.createNftCollection({
+ name: 'My NFT Collection,
+ symbol: 'MyNFT'
+ owner: '0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d', // replace with your address
+ });
+ console.log(txs.data.txId);
+ // 0x8e564406701caab6258501c794f5c1eece380f673be99b561d626c3d8d81b202
+
+ const collectionAddress = await tatum.rpc.getContractAddress(tx.data.txId);
+ console.log(collectionAddress);
+ // 0x876977006988ce590e219f576077459a49c7318a
+ } catch (error) {
+ console.error("Error creating NFT collection:", error);
+ }
+})();
+```
+```curl
+curl --location --request POST 'https://api.tatum.io/v4/contract/deploy' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "contractType": "nft",
+ "chain": "ethereum-sepolia",
+ "name": "My NFT Collection",
+ "symbol": "MyNFT",
+ "owner": "0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d"
+}'
+```
+
+# Use Cases for NFT Collections
+
+1. **Art**: Artists can mint their artworks as NFTs and sell them directly to collectors. Each NFT represents a unique piece of art or a limited edition series.
+2. **Collectibles**: Virtual collectibles, such as CryptoPunks or NBA Top Shots, are often grouped into collections. Each unique item in the collection is an NFT.
+3. **Virtual Real Estate and Goods**: Platforms like Decentraland allow users to own and trade virtual land and assets as NFTs.
+4. **Music and Entertainment**: Musicians can mint their albums or songs as NFTs, providing a new way to monetize their work and connect with fans. Movies or show clips can also be tokenized as collectible NFTs.
+5. **Identity and Certification**: NFTs can be used to represent ownership or the achievement of something, such as completing a course or owning a specific domain name.
+
+By creating an NFT collection using the Tatum SDK, you can easily mint, manage, and distribute NFTs on the blockchain. Whether you're an artist launching a new series of artwork, a game developer creating unique in-game items, or a brand creating digital collectibles, the ability to create an NFT collection offers exciting new possibilities for digital ownership and commerce.
+
+# Request interface
+
+{% code overflow="wrap" lineNumbers="true" %}
+
+```typescript
+export interface CreateNftCollection {
+ /**
+ * Name of the NFT collection, e.g. Bored Ape Yacht Club
+ */
+ name: string
+ /**
+ * Symbol of the NFT collection, e.g. BAYC
+ */
+ symbol: string
+ /**
+ * Address of the NFT collection owner
+ */
+ owner: string
+ /**
+ * Address of the NFT collection minter, this is optional and defaults to the owner address
+ */
+ minter?: string
+ /**
+ * Optional base URI, which will be prepended to the token URI. If not specified, the token should be minted with the URI
+ */
+ baseURI?: string
+}
+```
+
+# Response interface
+
+```typescript
+interface ResponseDto<{txId: string}> {
+ /**
+ * Actual payload of the response
+ */
+ data: {txId: string}
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "NFTs (BAYC,...) ERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/get-all-nfts-in-the-nft-collection.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/get-all-nfts-in-the-nft-collection.md
new file mode 100644
index 00000000..ca43d622
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/get-all-nfts-in-the-nft-collection.md
@@ -0,0 +1,176 @@
+---
+title: "Get all NFTs in the NFT collection"
+slug: "get-all-nfts-in-the-nft-collection"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:03:54 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:52:14 GMT+0000 (Coordinated Universal Time)"
+---
+As the non-fungible token (NFT) market continues to flourish, creators, collectors, and traders need efficient ways to manage and explore their digital collections. This guide introduces you to the operation of retrieving all NFTs in a specific collection, providing a comprehensive view of the unique digital assets grouped together. By leveraging this functionality, you can easily navigate and analyze your NFT collection, gain insights into the themes and trends within your portfolio, and make informed decisions about buying, selling, or holding specific NFTs. Ultimately, this operation enables you to better understand your digital assets, streamlines your NFT management, and empowers you to engage with the NFT market more effectively.
+
+### How to get NFTs of a collection in the Ethereum network
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, NftTokenDetail} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const nfts: ResponseDto = await tatum.nft.getNftsInCollection({
+ collectionAddress: '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D', // replace with your collection
+})
+
+console.log(nfts.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const nfts = await tatum.nft.getNftsInCollection({
+ collectionAddress: '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D', // replace with your collection
+ });
+ console.log(nfts.data);
+ } catch (error) {
+ console.error("Error fetching NFT collection:", error);
+ }
+})();
+```
+```curl
+curl
+ --location
+ --request GET
+ 'https://api.tatum.io/v4/data/collections?collectionAddresses=0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D&chain=ethereum'
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/eYQbKxX",
+ "href": "https://codepen.io/tatum-devrel/embed/eYQbKxX",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Expected Response
+
+```json5
+[
+ {
+ "address": "0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d",
+ "balance": "2",
+ "chain": "ethereum-mainnet",
+ "lastUpdatedBlockNumber": 14086122,
+ "metadata": {
+ "description": "# ***\"Sometimes I swear I can see a glimmer of the Sun through all the layers of chaos. It's probably just wishful thinking. There's a lot of that here.\" — Renn Dialos, Alexandria Research Node 557***\n### **1 / 71492 Jupiter DAO Tokens**\n\nThis token represents proportional ownership over Jupiter. Together with other Jupiter DAO Token holders, its owner is able to actively build and govern the planet into its own unique environment.\n\n*Jupiter represents 10.4% of the total voting power for MetaHero Universe's United Planets DAO.*\n\n*[ Token Design by: TheVirtunaut, Odious, Raw & Rendered | Joey Camacho ]*",
+ "external_url": "https://punkscomic.com",
+ "image": "ipfs://QmS21WhH94jBnYompXHD1SxS6Gw2bY8E81sTYRktWrYa7a/JUPITER.mp4",
+ "name": "MetaHero Universe: Jupiter DAO Token"
+ },
+ "metadataURI": "ipfs://QmR9PokA9rnKKUF1uLtZyHYEhExqQU1Z7t8AbovMBxND4U/5",
+ "tokenAddress": "0x7deb7bce4d360ebe68278dee6054b882aa62d19c",
+ "tokenId": "5",
+ "type": "multitoken"
+ }
+]
+```
+
+# Request interface
+
+```typescript
+interface GetCollection {
+ /**
+ * Collection contract address
+ */
+ collectionAddress: string
+ /**
+ * Optional flag to exclude metadata from the response. In this case, only token IDs are returned. Defaults to false.
+ */
+ excludeMetadata?: boolean
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface NftTokenDetail {
+ /**
+ * Blockchain network
+ */
+ chain: string
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+ /**
+ * Token type. Either 'nft' (ERC-721) or 'multitoken' (ERC-1155)
+ */
+ type: 'nft' | 'multitoken'
+ /**
+ * Token URI
+ */
+ metadataURI: string
+ /**
+ * Token metadata
+ */
+ metadata?: {
+ name: string
+ description: string
+ image: string
+ [metadataKey: string]: unknown
+ }
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "Multiple addresses per 1 invocation NFTs (BAYC,...)"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/get-all-nfts-the-wallet-holds.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/get-all-nfts-the-wallet-holds.md
new file mode 100644
index 00000000..658bf9bd
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/get-all-nfts-the-wallet-holds.md
@@ -0,0 +1,186 @@
+---
+title: "Get all NFTs the wallet holds"
+slug: "get-all-nfts-the-wallet-holds"
+excerpt: "This function helps you to fetch all the NFT's a wallet holds, all you have to do is pass the address to the function parameter and chain while initialising the sdk."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:01:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:13:42 GMT+0000 (Coordinated Universal Time)"
+---
+# Get all NFTs the wallet holds
+
+The world of non-fungible tokens (NFTs) has witnessed exponential growth, attracting artists, collectors, and investors alike. As users accumulate various NFTs across multiple blockchain networks, it becomes crucial to manage and track their digital collections. This guide introduces you to the operation of obtaining all NFTs associated with a particular address, offering you a comprehensive snapshot of your NFT holdings. By leveraging this functionality, you can effectively monitor your NFT collection, verify ownership, and assess the value of your digital assets. Ultimately, this operation empowers you to take full control of your unique digital assets and manage them with greater ease and efficiency.
+
+# How to get NFTs on a wallet in the Ethereum network
+
+Use the TatumSDK (`@tatumio/tatum`) to get a balance of the wallet.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, NftAddressBalance} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const balance: ResponseDto = await tatum.nft.getBalance({
+ addresses: ['0x727EA45B2EB6abb2badD3dC7106d146E0Dc0450d'], // replace with your address
+})
+
+console.log(balance.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const balance = await tatum.nft.getBalance({
+ addresses: ['0x727EA45B2EB6abb2badD3dC7106d146E0Dc0450d'], // replace with your address
+ });
+ console.log(balance.data);
+ } catch (error) {
+ console.error("Error fetching NFT balance:", error);
+ }
+})();
+```
+```curl
+curl
+ --location
+ --request GET 'https://api.tatum.io/v4/data/balances?chain=ethereum&addresses=0x727EA45B2EB6abb2badD3dC7106d146E0Dc0450d'
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/oNQJyJb",
+ "href": "https://codepen.io/tatum-devrel/embed/oNQJyJb",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Expected Response
+
+```json5
+[
+ {
+ "address": "0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d",
+ "balance": "2
+ ",
+ "chain": "ethereum-mainnet",
+ "lastUpdatedBlockNumber": 14086122,
+ "metadata": {
+ "description": "# ***\"Sometimes I swear I can see .... | Joey Camacho ]*",
+ "external_url": "https://punkscomic.com",
+ "image": "ipfs://QmS21WhH94jBnYompXHD1SxS6Gw2bY8E81sTYRktWrYa7a/JUPITER.mp4",
+ "name": "MetaHero Universe: Jupiter DAO Token"
+ },
+ "metadataURI": "ipfs://QmR9PokA9rnKKUF1uLtZyHYEhExqQU1Z7t8AbovMBxND4U/5",
+ "tokenAddress": "0x7deb7bce4d360ebe68278dee6054b882aa62d19c",
+ "tokenId": "5",
+ "type": "multitoken"
+ }
+]
+```
+
+## Request interface
+
+{% code overflow="wrap" lineNumbers="true" %}
+
+```typescript
+interface AddressBalanceDetails {
+ /**
+ * List of addresses to check.
+ */
+ addresses: string[]
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface NftAddressBalance {
+ /**
+ * Balance of the address.
+ */
+ balance: string
+ /**
+ * Blockchain network
+ */
+ chain: string
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+ /**
+ * Token type. Either 'nft' (ERC-721) or 'multitoken' (ERC-1155)
+ */
+ type: 'nft' | 'multitoken'
+ /**
+ * Token URI
+ */
+ metadataURI: string
+ /**
+ * Token metadata
+ */
+ metadata?: {
+ name: string
+ description: string
+ image: string
+ [metadataKey: string]: unknown
+ }
+ /**
+ * Block number of the last balance update.
+ */
+ lastUpdatedBlock: number
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "Multiple addresses per 1 invocation \nNFTs (BAYC,...) ERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/get-the-metadata-of-a-specific-nft.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/get-the-metadata-of-a-specific-nft.md
new file mode 100644
index 00000000..5cc442ca
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/get-the-metadata-of-a-specific-nft.md
@@ -0,0 +1,135 @@
+---
+title: "Get the metadata of a specific NFT"
+slug: "get-the-metadata-of-a-specific-nft"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:08:21 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:17:01 GMT+0000 (Coordinated Universal Time)"
+---
+As non-fungible tokens (NFTs) gain popularity in the digital asset space, it becomes increasingly important for creators, collectors, and traders to have access to detailed information about individual NFTs. This guide introduces you to the operation of retrieving the metadata of a specific NFT, providing valuable insights into the unique properties, characteristics, and history of the digital asset. By leveraging this functionality, you can better understand the provenance, rarity, and artistic attributes of the NFT, make well-informed decisions about buying, selling, or holding it, and navigate the dynamic NFT market with greater confidence. Ultimately, this operation allows you to manage your digital assets more effectively and fosters a deeper appreciation for the unique qualities of each NFT.
+
+# How to get the metadata of the NFT on the Ethereum network
+
+Use the TatumSDK (`@tatumio/tatum`) to get the metadata of the specific NFT.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, NftTokenDetail} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const metadata: ResponseDto = await tatum.nft.getNftMetadata({
+ tokenAddress: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d', // replace with your collection
+ tokenId: '1'
+})
+
+console.log(metadata.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const metadata = await tatum.nft.getNftMetadata({
+ tokenAddress: "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d", // replace with your collection
+ tokenId: "1"
+ });
+ console.log(metadata.data);
+ } catch (error) {
+ console.error("Error getting NFT metadata:", error);
+ }
+})();
+```
+```curl
+curl
+ --location
+ --request GET 'https://api.tatum.io/v4/data/metadata?chain=ethereum&tokenAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenIds=1'
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/XWyoBYd",
+ "href": "https://codepen.io/tatum-devrel/embed/XWyoBYd",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Request interface
+
+```typescript
+interface GetNftMetadata {
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+}
+```
+
+# Response interface
+
+{% code overflow="wrap" lineNumbers="true" %}
+
+```typescript
+interface NftTokenDetail {
+ /**
+ * Blockchain network
+ */
+ chain: string
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+ /**
+ * Token type. Either 'nft' (ERC-721) or 'multitoken' (ERC-1155)
+ */
+ type: 'nft' | 'multitoken'
+ /**
+ * Token URI
+ */
+ metadataURI: string
+ /**
+ * Token metadata
+ */
+ metadata?: {
+ name: string
+ description: string
+ image: string
+ [metadataKey: string]: unknown
+ }
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "NFTs (BAYC,...) \nERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/retrieve-the-owner-of-the-nft.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/retrieve-the-owner-of-the-nft.md
new file mode 100644
index 00000000..f2e448c5
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/retrieve-the-owner-of-the-nft.md
@@ -0,0 +1,130 @@
+---
+title: "Retrieve the owner of the NFT"
+slug: "retrieve-the-owner-of-the-nft"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:07:25 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:21:01 GMT+0000 (Coordinated Universal Time)"
+---
+In the rapidly evolving world of non-fungible tokens (NFTs), it is essential for creators, collectors, and traders to have the ability to verify the ownership of individual NFTs. This guide introduces you to the operation of retrieving the owner of a specific NFT, providing you with the necessary information to confirm the current holder of the unique digital asset. By leveraging this functionality, you can ensure the authenticity and provenance of the NFT, make informed decisions about buying, selling, or holding it, and navigate the dynamic NFT market with confidence. Ultimately, this operation enables you to manage your digital assets more effectively and maintain the integrity of your NFT transactions.
+
+# How to get the owner of the NFT on the Ethereum network
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, NftTransaction} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const owner: ResponseDto = await tatum.nft.getNftOwner({
+ tokenAddress: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d', // replace with your collection
+ tokenId: '1'
+})
+
+console.log(owner.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const txs = await tatum.nft.getNftOwner({
+ tokenAddress: "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d", // replace with your collection
+ tokenId: "1"
+ });
+ console.log(txs.data);
+ } catch (error) {
+ console.error("Error fetching NFT owner:", error);
+ }
+})();
+```
+```curl
+curl
+ --location
+ --request GET 'https://api.tatum.io/v4/data/owners?tokenAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=1&chain=ethereum'
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/rNQorxB",
+ "href": "https://codepen.io/tatum-devrel/embed/rNQorxB",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Expected Response
+
+```json5
+[
+ "0x46efbaedc92067e6d60e84ed6395099723252496"
+]
+```
+
+## Request interface
+
+```typescript
+interface GetTokenOwner {
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response - list of the owner address
+ */
+ data: string[]
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "NFTs (BAYC,...) \nERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/show-the-nft-history-of-a-wallet.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/show-the-nft-history-of-a-wallet.md
new file mode 100644
index 00000000..47dc54df
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/show-the-nft-history-of-a-wallet.md
@@ -0,0 +1,202 @@
+---
+title: "Show the NFT history of a wallet"
+slug: "show-the-nft-history-of-a-wallet"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:05:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:24:36 GMT+0000 (Coordinated Universal Time)"
+---
+As non-fungible tokens (NFTs) gain traction in the world of digital assets, it becomes increasingly essential for users to manage and monitor their NFT-related transactions across various blockchain networks. This guide introduces you to obtaining all NFT transactions for a specific wallet, offering a comprehensive view of your NFT wallet history. By leveraging this functionality, you can effectively track the acquisition, transfer, and sale of NFTs associated with your wallet, analyze your trading patterns, and maintain accurate records for tax or accounting purposes. Ultimately, this operation empowers you to take full control of your unique digital assets and navigate the ever-evolving NFT landscape with greater ease and efficiency.
+
+# How to show the NFT history of a specific wallet on the Ethereum network
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, NftTransaction} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const txs: ResponseDto = await tatum.nft.getAllNftTransactionsByAddress({
+ addresses: ['0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d'], // replace with your address
+})
+
+console.log(txs.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const txs = await tatum.nft.getAllNftTransactionsByAddress({
+ addresses: ['0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d'], // replace with your address
+ });
+ console.log(txs.data);
+ } catch (error) {
+ console.error("Error fetching wallet history:", error);
+ }
+})();
+```
+```curl
+curl
+ --location
+ --request GET 'https://api.tatum.io/v4/data/transactions?addresses=0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d&chain=ethereum'
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/qBQLKGO?editors=1111",
+ "href": "https://codepen.io/tatum-devrel/embed/qBQLKGO?editors=1111",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Expected Response
+
+```javascript
+[
+ {
+ "chain": "ethereum-mainnet",
+ "hash": "0x3d5dafbb461ae5b1a485756c345779ed7e0a21ca4d8e2d59fb3453a7c38131b9",
+ "address": "0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d",
+ "blockNumber": 17029923,
+ "transactionIndex": 79,
+ "transactionType": "nft",
+ "transactionSubtype": "outgoing",
+ "amount": "-0.2",
+ "timestamp": 1681278035000,
+ "counterAddress": "0x64ceaaf5df1be80f29f35589f096f0714f458b40"
+ }
+]
+```
+
+## Request interface
+
+```typescript
+interface GetAllNftTransactionsByAddress {
+ /**
+ * Addresses to get NFT transactions from.
+ */
+ addresses: string[]
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+ /**
+ * Optional transaction type. If not specified, both incoming and outgoing transactions are returned.
+ */
+ transactionType?: 'incoming' | 'outgoing'
+ /**
+ * Optional from block. If not specified, all transactions are returned from the beginning of the blockchain.
+ */
+ fromBlock?: number
+ /**
+ * Optional to block. If not specified, all transactions are returned up till now.
+ */
+ toBlock?: number
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface NftTransaction {
+ /**
+ * Blockchain network
+ */
+ chain: string
+ /**
+ * Block number
+ */
+ blockNumber: number
+ /**
+ * Transaction hash
+ */
+ hash: string
+ /**
+ * Transaction type
+ */
+ transactionType: 'incoming' | 'outgoing' | 'zero-transfer'
+ /**
+ * Index of the transaction in the block
+ */
+ transactionIndex: number
+ /**
+ * Address of the token collection
+ */
+ tokenAddress: string
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Amount transferred. For outgoing transactions, it's a negative number. For zero-transfer transactions, it's always 0. For incoming transactions, it's a positive number.
+ */
+ amount: string
+ /**
+ * Transaction timestamp - UTC millis
+ */
+ timestamp: number
+ /**
+ * Address, on which transaction occurred. This is receiver address for incoming transactions and sender address for outgoing transactions.
+ */
+ address: string
+ /**
+ * Counter address of the transaction. This is sender address for incoming transactions on `address` and receiver address for outgoing transactions on `address`.
+ */
+ counterAddress: string
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "NFTs (BAYC,...) \nERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/nfts-1/trace-the-history-of-a-specific-nft.md b/v1.0/REFERENCE/javascripttypescript/nfts-1/trace-the-history-of-a-specific-nft.md
new file mode 100644
index 00000000..294b86c4
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/nfts-1/trace-the-history-of-a-specific-nft.md
@@ -0,0 +1,214 @@
+---
+title: "Trace the history of a specific NFT"
+slug: "trace-the-history-of-a-specific-nft"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:04:25 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:32:09 GMT+0000 (Coordinated Universal Time)"
+---
+As the popularity of non-fungible tokens (NFTs) continues to surge, it becomes increasingly important for creators, collectors, and traders to monitor the transaction history of individual NFTs. This guide introduces you to the operation of obtaining all transactions for a specific NFT, providing a detailed overview of its transfer, trading, and ownership history. By leveraging this functionality, you can gain insights into the provenance and value of an NFT, assess its authenticity, and make informed decisions about buying, selling, or holding it. Ultimately, this operation enables you to navigate the dynamic NFT market with confidence and manage your digital assets more effectively.
+
+# How to trace the history of a specific NFT on the Ethereum network
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, NftTransaction} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const txs: ResponseDto = await tatum.nft.getAllNftTransactions({
+ tokenId: '14721',
+ tokenAddress: '0xccb9d89e0f77df3618eec9f6bf899be3b5561a89', // replace with your collection
+})
+
+console.log(txs.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const txs = await tatum.nft.getAllNftTransactions({
+ tokenId: '14721',
+ tokenAddress: '0xccb9d89e0f77df3618eec9f6bf899be3b5561a89', // replace with your collection
+ });
+ console.log(txs.data);
+ } catch (error) {
+ console.error("Error fetching wallet balance:", error);
+ }
+})();
+```
+```curl
+curl
+ --location
+ --request GET 'https://api.tatum.io/v4/data/transactions?tokenAddress=0xccb9d89e0f77df3618eec9f6bf899be3b5561a89&tokenId=14721&chain=ethereum'
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/MWzZXxZ",
+ "href": "https://codepen.io/tatum-devrel/embed/MWzZXxZ",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Expected Response
+
+[
+ {
+ "chain": "ethereum-mainnet",
+ "hash": "0xbbac7d1a2196c5148958bcf4ef05658f8220ca3f0ce1ff6ae9e87f67b9c940c5",
+ "address": "0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d",
+ "blockNumber": 14568283,
+ "transactionIndex": 34,
+ "transactionType": "nft",
+ "transactionSubtype": "incoming",
+ "amount": "1",
+ "timestamp": 1649733396000,
+ "tokenId": "14721",
+ "tokenAddress": "0xccb9d89e0f77df3618eec9f6bf899be3b5561a89",
+ "counterAddress": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "chain": "ethereum-mainnet",
+ "hash": "0xbbac7d1a2196c5148958bcf4ef05658f8220ca3f0ce1ff6ae9e87f67b9c940c5",
+ "address": "0x0000000000000000000000000000000000000000",
+ "blockNumber": 14568283,
+ "transactionIndex": 34,
+ "transactionType": "nft",
+ "transactionSubtype": "outgoing",
+ "amount": "-1",
+ "timestamp": 1649733396000,
+ "tokenId": "14721",
+ "tokenAddress": "0xccb9d89e0f77df3618eec9f6bf899be3b5561a89",
+ "counterAddress": "0x727ea45b2eb6abb2badd3dc7106d146e0dc0450d"
+ }
+]
+
+## Request interface
+
+```typescript
+interface GetAllNftTransactionsQuery {
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Token contract address
+ */
+ tokenAddress: string
+ /**
+ * Optional transaction type. If not specified, both incoming and outgoing transactions are returned.
+ */
+ transactionType?: 'incoming' | 'outgoing'
+ /**
+ * Optional from block. If not specified, all transactions are returned from the beginning of the blockchain.
+ */
+ fromBlock?: number
+ /**
+ * Optional to block. If not specified, all transactions are returned up till now.
+ */
+ toBlock?: number
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface NftTransaction {
+ /**
+ * Blockchain network
+ */
+ chain: string
+ /**
+ * Block number
+ */
+ blockNumber: number
+ /**
+ * Transaction hash
+ */
+ hash: string
+ /**
+ * Transaction type
+ */
+ transactionType: 'incoming' | 'outgoing' | 'zero-transfer'
+ /**
+ * Index of the transaction in the block
+ */
+ transactionIndex: number
+ /**
+ * Address of the token collection
+ */
+ tokenAddress: string
+ /**
+ * Token ID
+ */
+ tokenId: string
+ /**
+ * Amount transferred. For outgoing transactions, it's a negative number. For zero-transfer transactions, it's always 0. For incoming transactions, it's a positive number.
+ */
+ amount: string
+ /**
+ * Transaction timestamp - UTC millis
+ */
+ timestamp: number
+ /**
+ * Address, on which transaction occurred. This is receiver address for incoming transactions and sender address for outgoing transactions.
+ */
+ address: string
+ /**
+ * Counter address of the transaction. This is sender address for incoming transactions on `address` and receiver address for outgoing transactions on `address`.
+ */
+ counterAddress: string
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \n \nBNB Smart Chain / BNB Smart Chain Testnet \n \nCelo / Celo Alfajores \n \nPolygon / Polygon Mumbai",
+ "0-1": "NFTs (BAYC,...) \nERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates.md b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates.md
new file mode 100644
index 00000000..61f89e08
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates.md
@@ -0,0 +1,19 @@
+---
+title: "💲 Exchange rates"
+slug: "sdk-exchange-rates"
+excerpt: "Exchange rate submodule helps any web3 app developer to quickly query exchange rate of a crypto against more than 165 fiat currencies."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:47:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 14:09:03 GMT+0000 (Coordinated Universal Time)"
+---
+The exchange rate submodule offers a powerful feature that enables users to obtain real-time exchange rates for a wide range of cryptocurrencies against more than 165 fiat currencies (see the full list on Supported Fiat page) & more than 90 cryptocurrencies which you can find listed on Supported Crypto Currencies page. This functionality can added better onboarding experience to new crypto users to keep them up-to-date with the Transaction Value they are most comfortable to read in.
+
+With the exchange rate submodule, developers can easily integrate this capability into their applications without the need for extensive knowledge of individual exchange APIs or complex rate calculation algorithms. Tatum SDK simplifies the process by providing a streamlined interface to retrieve exchange rates, allowing developers to focus on building robust and innovative applications.
+
+As a developer, the exchange rate submodule within our SDK offers you powerful capabilities to enhance your cryptocurrency applications. Here are the top three use cases you can get started building on:
+
+1. Portfolio Integration: Easily integrate real-time portfolio tracking into your application. With the exchange rate submodule, you can fetch and display the current values of users' cryptocurrency holdings, providing them with a comprehensive view of their investments.
+2. Seamless Currency Conversion: Simplify cryptocurrency-to-fiat conversions within your app. The exchange rate submodule allows you to retrieve accurate exchange rates, enabling users to convert cryptocurrencies seamlessly. Enhance the user experience by offering transparent and efficient currency conversion functionality.
+3. Merchant Integration: Seamlessly integrate cryptocurrency payment solutions for merchants. With the exchange rate submodule, you can fetch real-time exchange rates and display prices in users' preferred fiat currencies. Empower merchants to accept cryptocurrency payments with confidence and streamline transactions for their customers.
+
+Explore the possibilities and enhance user experience across your web3 application today.
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/get-current-exchange-rate-of-the-crypto-asset.md b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/get-current-exchange-rate-of-the-crypto-asset.md
new file mode 100644
index 00000000..e0655465
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/get-current-exchange-rate-of-the-crypto-asset.md
@@ -0,0 +1,76 @@
+---
+title: "Get current exchange rate of the crypto asset"
+slug: "get-current-exchange-rate-of-the-crypto-asset"
+excerpt: "This endpoint allows you to obtain current exchange rate between fiat/crypto or fiat/fiat."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:48:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:15:40 GMT+0000 (Coordinated Universal Time)"
+---
+The `getExchangeRate()` method offers a seamless way to retrieve up-to-date exchange rate information for cryptocurrencies. By invoking this method, you can effortlessly access the current exchange rate, along with the corresponding timestamp and the reliable source of the data.
+
+# How to use it
+
+```typescript
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const rate = await tatum.rates.getCurrentRate("BTC","EUR")
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/poQqQNB",
+ "href": "https://codepen.io/tatum-devrel/embed/poQqQNB",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Request Interface
+
+```typescript
+export class RateBatchDto {
+ // fiat
+ basePair: Fiat
+
+ // crypto currency/fiat
+ currency: Fiat | Currency
+}
+```
+
+# Response interface
+
+```typescript
+export class Rate {
+ // crypto currency/fiat
+ _id: Fiat | Currency
+
+ // the amount of basePair that can be exchanged for 1 _id (crypto currency/fiat)
+ value: string
+
+ // fiat
+ basePair: Fiat
+
+ // timestamp of rate information from source
+ timestamp: number
+
+ // source of rate
+ source: string
+}
+```
+
+# Supported FIAT
+
+See the full wide range of fiat currencies we support for the exchange submodule on this page.
+
+# Supported Crypto Currency
+
+See the full wide range of crypto currencies we support for the exchange submodule on this page.
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/get-current-rates-for-multiple-crypto-assets-at-once.md b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/get-current-rates-for-multiple-crypto-assets-at-once.md
new file mode 100644
index 00000000..83ff94b2
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/get-current-rates-for-multiple-crypto-assets-at-once.md
@@ -0,0 +1,77 @@
+---
+title: "Get current rates for multiple crypto assets at once"
+slug: "get-current-rates-for-multiple-crypto-assets-at-once"
+excerpt: "This endpoint allows you to obtain current exchange rates between fiat/crypto or fiat/fiat."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:49:21 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:17:36 GMT+0000 (Coordinated Universal Time)"
+---
+The `getExchangeRates()` method in our API provides a powerful solution similar to the "Get current rate" method. It enables you to obtain current exchange rate information, along with timestamps and the source of the data.
+
+One notable feature of this method is the ability to request multiple exchange pairs simultaneously. This means you can retrieve exchange rates for various cryptocurrencies all in one API call, saving time and reducing complexity.
+
+# How to use it
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/xxQmQgV",
+ "href": "https://codepen.io/tatum-devrel/embed/xxQmQgV",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+## Request Interface
+
+```typescript
+// array of
+export class RateBatchDto {
+ // fiat
+ basePair: Fiat
+
+ // crypto currency/fiat
+ currency: Fiat | Currency
+
+ // used to identify pair in batch calls
+ batchId?: string
+}
+```
+
+## Response interface
+
+```typescript
+// array of
+export class Rate {
+ // used to identify pair in batch calls
+ batchId?: string
+
+ // crypto currency/fiat
+ _id: Fiat | Currency
+
+ // the amount of basePair that can be exchanged for 1 _id (crypto currency/fiat)
+ value: string
+
+ // fiat
+ basePair: Fiat
+
+ // timestamp of rate information from source
+ timestamp: number
+
+ // source of rate
+ source: string
+}
+
+```
+
+# Supported FIAT
+
+See the full wide range of fiat currencies we support for the exchange submodule on this page.
+
+# Supported Crypto Currency
+
+See the full wide range of crypto currencies we support for the exchange submodule on this page.
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/supported-crypto-currencies.md b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/supported-crypto-currencies.md
new file mode 100644
index 00000000..bc0ceefc
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/supported-crypto-currencies.md
@@ -0,0 +1,108 @@
+---
+title: "Supported Crypto Currencies"
+slug: "supported-crypto-currencies"
+excerpt: "This page lists all the cryptocurrencies Tatum supports for the Exchange rate submodule."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:49:43 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:18:22 GMT+0000 (Coordinated Universal Time)"
+---
+Below is the list of Cryptocurrencies we supports for the Exchange Rate Submodule.
+
+```typescript
+export enum Currency {
+ BTC = 'BTC',
+ AVAX = 'AVAX',
+ FTM = 'FTM',
+ REVV = 'REVV',
+ SAND = 'SAND',
+ ADA = 'ADA',
+ BCH = 'BCH',
+ BNB = 'BNB',
+ LTC = 'LTC',
+ ONE = 'ONE',
+ ETH = 'ETH',
+ EGLD = 'EGLD',
+ MATIC = 'MATIC',
+ GAMEE = 'GAMEE',
+ MATIC_ETH = 'MATIC_ETH',
+ USDC_MATIC = 'USDC_MATIC',
+ USDC_BSC = 'USDC_BSC',
+ USDC_SOL = 'USDC_SOL',
+ RMD = 'RMD',
+ GMC = 'GMC',
+ GMC_BSC = 'GMC_BSC',
+ CELO = 'CELO',
+ COIIN = 'COIIN',
+ COIIN_BSC = 'COIIN_BSC',
+ CUSD = 'CUSD',
+ CEUR = 'CEUR',
+ FLOW = 'FLOW',
+ FUSD = 'FUSD',
+ BSC = 'BSC',
+ XDC = 'XDC',
+ DOGE = 'DOGE',
+ XRP = 'XRP',
+ XLM = 'XLM',
+ USDT = 'USDT',
+ TRON = 'TRON',
+ LEO = 'LEO',
+ LINK = 'LINK',
+ LISK = 'LISK',
+ FREE = 'FREE',
+ MKR = 'MKR',
+ USDC = 'USDC',
+ UNI = 'UNI',
+ BAT = 'BAT',
+ TUSD = 'TUSD',
+ PAX = 'PAX',
+ PLTC = 'PLTC',
+ XCON = 'XCON',
+ MMY = 'MMY',
+ PAXG = 'PAXG',
+ VET = 'VET',
+ HAG = 'HAG',
+ BETH = 'BETH',
+ BUSD = 'BUSD',
+ BBTC = 'BBTC',
+ BADA = 'BADA',
+ WBNB = 'WBNB',
+ BDOT = 'BDOT',
+ BXRP = 'BXRP',
+ BLTC = 'BLTC',
+ BBCH = 'BBCH',
+ CAKE = 'CAKE',
+ BUSD_BSC = 'BUSD_BSC',
+ B2U_BSC = 'B2U_BSC',
+ WBTC = 'WBTC',
+ USDT_TRON = 'USDT_TRON',
+ USDT_MATIC = 'USDT_MATIC',
+ LATOKEN = 'LATOKEN',
+ INRT_TRON = 'INRT_TRON',
+ ALGO = 'ALGO',
+ SOL = 'SOL',
+ KCS = 'KCS',
+ NEO = 'NEO',
+ KLAY = 'KLAY',
+ EOS = 'EOS',
+ ARB = 'ARB',
+ OPTIMISM = 'OPTIMISM',
+ NEAR = 'NEAR',
+ CRO = 'CRO',
+ RSK = 'RSK',
+ AURORA = 'AURORA',
+ GNO = 'GNO',
+ DOT = 'DOT',
+ KSM = 'KSM',
+ OASIS = 'OASIS',
+ TEZOS = 'TEZOS',
+ PALM = 'PALM',
+ GLMR = 'GLMR',
+ INTENT = 'INTENT',
+ EURTENT = 'EURTENT',
+ GOLDAX = 'GOLDAX',
+ ZCASH = 'ZCASH',
+ ZEC = 'ZEC',
+ ZIL = 'ZIL',
+ ETC = 'ETC',
+}
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/supported-fiats.md b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/supported-fiats.md
new file mode 100644
index 00000000..b6f43f11
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/supported-fiats.md
@@ -0,0 +1,182 @@
+---
+title: "Supported Fiats"
+slug: "supported-fiats"
+excerpt: "This page lists all the Fiat currencies Tatum supports for Exchange Rate Submodule."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:50:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:18:49 GMT+0000 (Coordinated Universal Time)"
+---
+Below of the list of the fiats we support for the Exchange Rate Submodule.
+
+```typescript
+export enum Fiat {
+ AED = 'AED',
+ AFN = 'AFN',
+ ALL = 'ALL',
+ AMD = 'AMD',
+ ANG = 'ANG',
+ AOA = 'AOA',
+ ARS = 'ARS',
+ AUD = 'AUD',
+ AWG = 'AWG',
+ AZN = 'AZN',
+ BAM = 'BAM',
+ BBD = 'BBD',
+ BDT = 'BDT',
+ BGN = 'BGN',
+ BHD = 'BHD',
+ BIF = 'BIF',
+ BMD = 'BMD',
+ BND = 'BND',
+ BOB = 'BOB',
+ BRL = 'BRL',
+ BSD = 'BSD',
+ BTN = 'BTN',
+ BWP = 'BWP',
+ BYN = 'BYN',
+ BYR = 'BYR',
+ BZD = 'BZD',
+ CAD = 'CAD',
+ CDF = 'CDF',
+ CHF = 'CHF',
+ CLF = 'CLF',
+ CLP = 'CLP',
+ CNY = 'CNY',
+ COP = 'COP',
+ CRC = 'CRC',
+ CUC = 'CUC',
+ CUP = 'CUP',
+ CVE = 'CVE',
+ CZK = 'CZK',
+ DJF = 'DJF',
+ DKK = 'DKK',
+ DOP = 'DOP',
+ DZD = 'DZD',
+ EGP = 'EGP',
+ ERN = 'ERN',
+ ETB = 'ETB',
+ EUR = 'EUR',
+ FJD = 'FJD',
+ FKP = 'FKP',
+ GBP = 'GBP',
+ GEL = 'GEL',
+ GGP = 'GGP',
+ GHS = 'GHS',
+ GIP = 'GIP',
+ GMD = 'GMD',
+ GNF = 'GNF',
+ GTQ = 'GTQ',
+ GYD = 'GYD',
+ HKD = 'HKD',
+ HNL = 'HNL',
+ HRK = 'HRK',
+ HTG = 'HTG',
+ HUF = 'HUF',
+ IDR = 'IDR',
+ ILS = 'ILS',
+ IMP = 'IMP',
+ INR = 'INR',
+ IQD = 'IQD',
+ IRR = 'IRR',
+ ISK = 'ISK',
+ JEP = 'JEP',
+ JMD = 'JMD',
+ JOD = 'JOD',
+ JPY = 'JPY',
+ KES = 'KES',
+ KGS = 'KGS',
+ KHR = 'KHR',
+ KMF = 'KMF',
+ KPW = 'KPW',
+ KRW = 'KRW',
+ KWD = 'KWD',
+ KYD = 'KYD',
+ KZT = 'KZT',
+ LAK = 'LAK',
+ LBP = 'LBP',
+ LKR = 'LKR',
+ LRD = 'LRD',
+ LSL = 'LSL',
+ LTL = 'LTL',
+ LVL = 'LVL',
+ LYD = 'LYD',
+ MAD = 'MAD',
+ MDL = 'MDL',
+ MGA = 'MGA',
+ MKD = 'MKD',
+ MMK = 'MMK',
+ MNT = 'MNT',
+ MOP = 'MOP',
+ MRO = 'MRO',
+ MUR = 'MUR',
+ MVR = 'MVR',
+ MWK = 'MWK',
+ MXN = 'MXN',
+ MYR = 'MYR',
+ MZN = 'MZN',
+ NAD = 'NAD',
+ NGN = 'NGN',
+ NIO = 'NIO',
+ NOK = 'NOK',
+ NPR = 'NPR',
+ NZD = 'NZD',
+ OMR = 'OMR',
+ PAB = 'PAB',
+ PEN = 'PEN',
+ PGK = 'PGK',
+ PHP = 'PHP',
+ PKR = 'PKR',
+ PLN = 'PLN',
+ PYG = 'PYG',
+ QAR = 'QAR',
+ RON = 'RON',
+ RSD = 'RSD',
+ RUB = 'RUB',
+ RWF = 'RWF',
+ SAR = 'SAR',
+ SBD = 'SBD',
+ SCR = 'SCR',
+ SDG = 'SDG',
+ SEK = 'SEK',
+ SGD = 'SGD',
+ SHP = 'SHP',
+ SLL = 'SLL',
+ SOS = 'SOS',
+ SRD = 'SRD',
+ STD = 'STD',
+ SVC = 'SVC',
+ SYP = 'SYP',
+ SZL = 'SZL',
+ THB = 'THB',
+ TJS = 'TJS',
+ TMT = 'TMT',
+ TND = 'TND',
+ TOP = 'TOP',
+ TRY = 'TRY',
+ TTD = 'TTD',
+ TWD = 'TWD',
+ TZS = 'TZS',
+ UAH = 'UAH',
+ UGX = 'UGX',
+ USD = 'USD',
+ UYU = 'UYU',
+ UZS = 'UZS',
+ VEF = 'VEF',
+ VND = 'VND',
+ VUV = 'VUV',
+ WST = 'WST',
+ XAF = 'XAF',
+ XAG = 'XAG',
+ XAU = 'XAU',
+ XCD = 'XCD',
+ XDR = 'XDR',
+ XOF = 'XOF',
+ XPF = 'XPF',
+ YER = 'YER',
+ ZAR = 'ZAR',
+ ZMK = 'ZMK',
+ ZMW = 'ZMW',
+ ZWL = 'ZWL',
+}
+
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-fee-estimation.md b/v1.0/REFERENCE/javascripttypescript/sdk-fee-estimation.md
new file mode 100644
index 00000000..dbffbc6f
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-fee-estimation.md
@@ -0,0 +1,64 @@
+---
+title: "💶 Fee Estimation"
+slug: "sdk-fee-estimation"
+excerpt: "The Fee submodule is a part of the Tatum SDK, which allows developers to interact with various blockchain networks. It specifically provides functionalities related to retrieving gas fees."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:51:01 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:20:37 GMT+0000 (Coordinated Universal Time)"
+---
+The Tatum Fee Submodule is a component of the Tatum SDK that provides a simple way to fetch and display the current gas fee for a specific blockchain network. Gas fees are a vital aspect of blockchain transactions, representing the cost required to execute operations on the network. By utilising this submodule, developers can easily retrieve and showcase the current gas fee for various blockchain networks, enabling better transparency and user experience within decentralised applications.
+
+# Get Started
+
+```javascript
+import { TatumSDK, Network, ApiVersion } from "@tatumio/tatum";
+
+// Initialize the Tatum SDK with the desired network and API version
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM, version: ApiVersion.V1 });
+
+// Fetch the current gas fee
+const fee = await tatum.fee.getCurrentFee();
+
+// Display the fetched fee in console
+console.log(fee.data.gasPrice.fast);
+});
+
+```
+
+# Use Cases
+
+The Tatum Fee Submodule offers several use cases for developers working with blockchain networks. Some potential applications include:
+
+## Transaction Cost Estimation
+
+Before executing a transaction on a blockchain network, it is essential to estimate the associated gas fee accurately. The Tatum Fee Submodule enables developers to fetch the current fee and use it to calculate the approximate transaction cost. This information allows users to make informed decisions and optimize their transaction parameters accordingly.
+
+## User-Friendly Fee Display
+
+Displaying the current gas fee to end-users within a decentralised application can enhance their understanding of the transaction's cost. The Tatum Fee Submodule simplifies the process of fetching the fee and presenting it in a user-friendly format. Developers can integrate this functionality into their applications to show real-time gas fee updates, increasing transparency and facilitating user engagement.
+
+## Gas Fee Comparison
+
+Comparing gas fees across different blockchain networks is crucial for users seeking the most cost-effective and efficient options. By utilising the Tatum Fee Submodule, developers can fetch and display fees from various supported networks simultaneously. This feature empowers users to evaluate and select networks based on current gas fees, enhancing the overall user experience.
+
+# Why it's tough to know Gas fees at a point of time
+
+Determining the precise gas fees at a particular moment can be challenging in the blockchain ecosystem due to several reasons:
+
+## Dynamic Fee Market
+
+Blockchain networks often employ dynamic fee markets where fees fluctuate based on network congestion and demand. Gas fees are determined by a bidding process, where users compete to have their transactions included in the next block. As a result, gas fees can vary significantly within short timeframes, making it difficult to pinpoint the exact fee at any given point.
+
+## Lack of Standardisation
+
+Different blockchain networks utilise varying fee models and calculation methods, further complicating the process of finding gas fees. Each network may have its own unit of measurement, fee structures, and mechanisms for determining transaction costs. This lack of standardisation makes it challenging to provide a unified approach to fetch gas fees across multiple networks.
+
+## Network-Specific Implementations
+
+Fetching gas fees requires interacting with blockchain networks directly through their respective APIs or nodes. Each network may have its own specific implementation for retrieving fee data, including authentication requirements, rate limits, and API endpoints. Navigating these network-specific intricacies can be time-consuming and technically demanding for developers.
+
+The Tatum Fee Submodule addresses these challenges by providing a simplified and standardised interface to fetch gas fees from supported networks, allowing developers to focus on integrating fee-related functionalities into their applications without dealing with the complexities of individual networks.
+
+> 📘 Note
+>
+> The code provided in the initial question demonstrates a basic usage example of the Tatum Fee Submodule for fetching and displaying the current gas fee on the Ethereum network.
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-fee-estimation/getcurrentfee.md b/v1.0/REFERENCE/javascripttypescript/sdk-fee-estimation/getcurrentfee.md
new file mode 100644
index 00000000..a4bb6ac0
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-fee-estimation/getcurrentfee.md
@@ -0,0 +1,118 @@
+---
+title: "getCurrentFee"
+slug: "getcurrentfee"
+excerpt: "This function fetches real-time gas fee data, including slow, medium, and fast fees, based on the most recent recalculation, providing transparency for blockchain transaction cost estimation."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:51:18 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:23:12 GMT+0000 (Coordinated Universal Time)"
+---
+The `getCurrentFee()` function is a method provided by the Tatum Fee Submodule in the Tatum SDK. It enables developers to fetch the current gas fee for a specific blockchain network. This function facilitates access to real-time fee information, allowing users to make informed decisions about transaction costs and optimize their blockchain interactions.
+
+# Syntax
+
+```javascript
+const fee = await tatum.fee.getCurrentFee();
+```
+
+> 📘 Note
+>
+> This function currently works with the previous version of our api & requires an explicit version initialisation for the main object to be called.
+
+```javascript
+// Some code
+const tatum = await TatumSDK.init(
+{ network: Network.ETHEREUM, version: ApiVersion.V3 }
+);
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/abQPQoz",
+ "href": "https://codepen.io/tatum-devrel/embed/abQPQoz",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# Response DTO
+
+```typescript
+interface CurrentEvmFee {
+ /* Chain for the Response */
+ chain: Network
+
+ /* gasPrice for slow, medium, fast, baseFee & unit */
+ gasPrice: {
+ slow: string
+ medium: string
+ fast: string
+ baseFee: string
+ unit: string
+ }
+
+ /* Last time when the gas fees was Recalculated */
+ lastRecalculated: string
+
+ /* This property specifies the block number or block
+ identifier on the blockchain network on which the current
+ gas fee data is based. */
+ basedOnBlockNumber: string
+}
+```
+
+# Return Value
+
+The `getCurrentFee()` function returns a Promise that resolves to an object containing the current gas fee data for the selected network. The specific structure of the returned object may vary depending on the blockchain network and API version being used.
+
+# Usage
+
+1. Initialise the Tatum SDK with the desired network and API version using `TatumSDK.init()`.
+
+```javascript
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM, version: ApiVersion.V3 });
+```
+
+2. Call the `getCurrentFee()` function to fetch the current gas fee for the selected network.
+
+```javascript
+const fee = await tatum.fee.getCurrentFee();
+```
+
+3. Access the fee data returned by the function to retrieve the gas fee information.
+
+```javascript
+console.log(fee.data.gasPrice.fast); // Display the fast gas fee
+```
+
+# Supported blockchains
+
+- ETHEREUM
+- BITCOIN
+- LITECOIN
+- DOGECOIN
+
+# Example
+
+The following example demonstrates the usage of the `getCurrentFee()` function within an event listener:
+
+```javascript
+const button = document.getElementById("fetch-fee");
+const feeContainer = document.getElementById("fee-container");
+
+button.addEventListener("click", async () => {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM, version: ApiVersion.V3 });
+
+ const fee = await tatum.fee.getCurrentFee();
+
+ feeContainer.textContent = `Current Fee: ${fee.data.gasPrice.fast}`;
+});
+```
+
+In this example, when the "Fetch Fee" button is clicked, the `getCurrentFee()` function is called to fetch the current gas fee for the Ethereum network. The returned fee data is then used to update the content of the `feeContainer` element with the fast gas fee value.
+
+Note: The example assumes that the HTML structure and event listeners are properly set up as described in the previous sections. Adjust the code according to your specific requirements and chosen blockchain network.
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-notifications.md b/v1.0/REFERENCE/javascripttypescript/sdk-notifications.md
new file mode 100644
index 00000000..c94451ba
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-notifications.md
@@ -0,0 +1,11 @@
+---
+title: "📮 Notifications"
+slug: "sdk-notifications"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 12:38:24 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:14:38 GMT+0000 (Coordinated Universal Time)"
+---
+> 📘 This section has moved
+>
+> Read all about how to use Notifications [here](/docs/notifications).
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator.md b/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator.md
new file mode 100644
index 00000000..bf00a4d8
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator.md
@@ -0,0 +1,127 @@
+---
+title: "🧾 Transaction Simulator"
+slug: "sdk-transaction-simulator"
+excerpt: "Transaction Simulator integrates seamlessly with Tatum SDK to provide transaction simulation capabilities for EVM-based blockchains."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:44:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 14:21:00 GMT+0000 (Coordinated Universal Time)"
+---
+The Transaction Simulator is designed to bolster the efficiency and security of blockchain transactions. It offers crucial capabilities such as:
+
+- Simulating native currency transfers.
+- Simulating ERC20 token transfers.
+
+By leveraging these simulations, developers can:
+
+1. **Estimate Fees Accurately:** One of the primary challenges in sending blockchain transactions is determining an optimal gas fee that ensures quick confirmation without overpaying. By simulating a transaction before sending it, developers can get a precise estimate of the gas fee, saving costs and improving user experience.
+2. **Enhance Safety:** Simulating transactions allows developers to anticipate and catch potential errors or vulnerabilities in transaction logic. By identifying these issues in a simulation environment, developers can prevent costly mistakes when deploying actual transactions.
+3. **Optimize Transaction Parameters:** Beyond just estimating fees, simulating transactions can help developers fine-tune other parameters, such as gas limit or nonce, to optimize transaction performance.
+
+It is built upon popular packages like `ethers`, ensuring a robust, reliable, and secure foundation for all simulation activities.
+
+# 🚀 Quick Start
+
+1. **Installation**
+
+ Firstly, ensure that the `@tatumio/transaction-simulator` package is set as a dependency within your project. Next, import the Transaction Simulator extension:
+
+ ```javascript
+ import { TransactionSimulator } from '@tatumio/transaction-simulator';
+ ```
+2. **Initialization**
+
+ Create an instance of Tatum SDK passing `TransactionSimulator` as one of extensions.
+
+ ```javascript
+ const tatumSdk = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ configureExtensions: [
+ TransactionSimulator,
+ ]
+ })
+ ```
+
+# 🛠️ ERC20 Token Transfers:
+
+1. **Define Your Token Transfer Payload**: To simulate an ERC20 token transfer, you will use the `TokenTransfer` object.
+
+ ```javascript
+ const tokenTransferPayload: TokenTransfer = {
+ to: 'recipient_address',
+ from: 'sender_address',
+ gas: '0xB411', // optional
+ gasPrice: '0x4B16C370A', //optional
+ value: 500, // example token amount to send
+ tokenContractAddress: 'your_erc20_token_contract_address'
+ };
+ ```
+2. **Call `simulateTransferErc20`**: With your `TokenTransfer` payload ready, pass it to the `simulateTransferErc20` method.
+
+ ```javascript
+ const tokenSimulationResult = await simulateTransferErc20(tokenTransferPayload);
+ ```
+
+ This method fetches token details, simulates the transaction, and returns an estimation of the transaction's outcome along with the necessary gas fees.
+3. **Check simulation results**:
+
+ ```json
+ {
+ "transactionDetails": {
+ "from": "0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81",
+ "to": "0xaf758da9f7bdaa7590175193388e9c99427cc2d2",
+ "tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
+ "data": "0xa9059cbb000000000000000000000000af758da9f7bdaa7590175193388e9c99427cc2d2000000000000000000000000000000000000000000000000000000001908b100",
+ "gasLimit": 46097,
+ "gasPrice": 20156528394
+ },
+ "status": "success",
+ "balanceChanges": {
+ "0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81": {
+ "from": 243656557299636170000,
+ "to": 243655628144146780000
+ }
+ },
+ "tokenTransfers": {
+ "0xdac17f958d2ee523a2206206994597c13d831ec7": {
+ "name": "TetherUSD",
+ "symbol": "USDT",
+ "decimals": 6,
+ "0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81": {
+ "from": 2387468.080258,
+ "to": 2387048.080258
+ },
+ "0xaf758da9f7bdaa7590175193388e9c99427cc2d2": {
+ "from": 422.304,
+ "to": 842.304
+ }
+ }
+ }
+ }
+ ```
+
+By using the above methods, you can efficiently predict the behavior and costs of your transactions before actually broadcasting them, ensuring optimized and error-free transactions.
+
+# Gas Price Estimation:
+
+- Methods accept `gasPrice` as a parameter. If you don't provide it, the gas price will be estimated using the `eth_gasPrice` method.
+- Methods accept `gas` as a parameter. If you don't provide it, the gas limit will be estimated using the `eth_estimateGas` method.
+
+# Supported Networks
+
+```
+Network.ARBITRUM_ONE,
+Network.AVALANCHE_C,
+Network.CELO,
+Network.CELO_ALFAJORES,
+Network.CHILIZ,
+Network.ETHEREUM,
+Network.ETHEREUM_SEPOLIA,
+Network.ETHEREUM_HOLESKY,
+Network.ETHEREUM_CLASSIC,
+Network.POLYGON,
+Network.POLYGON_MUMBAI,
+Network.BINANCE_SMART_CHAIN,
+Network.BINANCE_SMART_CHAIN_TESTNET,
+Network.OPTIMISM,
+Network.OPTIMISM_TESTNET,
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator/simulate-transfer-erc20.md b/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator/simulate-transfer-erc20.md
new file mode 100644
index 00000000..3ccd15fa
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator/simulate-transfer-erc20.md
@@ -0,0 +1,129 @@
+---
+title: "Simulate Transfer Erc20"
+slug: "simulate-transfer-erc20"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:45:11 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:08:36 GMT+0000 (Coordinated Universal Time)"
+---
+The `simulateTransferErc20` function within the Transaction Simulator extension is instrumental for simulating ERC20 token transfers on EVM-based blockchains. This function allows developers to comprehend and test the behavior of ERC20 token transfers without interacting with the live blockchain. This guide delineates the steps to utilize the `simulateTransferErc20` function to enrich your blockchain projects.
+
+# How to Simulate an ERC20 Transfer
+
+Utilize the provided library to simulate an ERC20 transfer on an EVM-based blockchain.
+
+```javascript
+// Import necessary libraries
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+import { simulateTransferErc20, Erc20Transfer } from '@tatumio/transaction-simulator';
+
+// Initialize the SDK for a specific blockchain network
+const tatumSdk = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ configureExtensions: [
+ TransactionSimulator,
+ ]
+ })
+
+// Define Your Payload
+const tokenTransferPayload: TokenTransfer = {
+ to: 'recipient_address',
+ from: 'sender_address',
+ gas: '0xB411', // optional
+ gasPrice: '0x4B16C370A', //optional
+ value: 500, // example token amount to send
+ tokenContractAddress: 'your_erc20_token_contract_address'
+};
+
+// Call simulateTransferErc20
+const tokenSimulationResult = await simulateTransferErc20(tokenTransferPayload);
+
+// Check simulation results
+console.log(tokenSimulationResult);
+```
+```typescript
+// Import necessary libraries
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+import { TransactionSimulator } from '@tatumio/transaction-simulator';
+
+// Initialize the SDK for a specific blockchain network
+const tatumSdk = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ configureExtensions: [
+ TransactionSimulator,
+ ]
+ })
+
+// Define Your Payload
+const tokenTransferPayload: TokenTransfer = {
+ to: 'recipient_address',
+ from: 'sender_address',
+ gas: '0xB411', // optional
+ gasPrice: '0x4B16C370A', //optional
+ value: 500, // example token amount to send
+ tokenContractAddress: 'your_erc20_token_contract_address'
+};
+
+// Call simulateTransferErc20
+const tokenSimulationResult = await await tatumSdk.extension(TransactionSimulator)
+.simulateTransferErc20(tokenTransferPayload);
+
+// Check simulation results
+console.log(tokenSimulationResult);
+```
+
+## Parameters
+
+- `to`: Address of the recipient.
+- `from`: Address of the sender.
+- `gas`: (Optional) Gas limit for the transaction.
+- `gasPrice`: (Optional) Gas price for the transaction.
+- `value`: Amount to send in wei.
+- tokenContractAddress : Token address you want to interact with.
+
+## Expected Response
+
+```json
+{
+ "transactionDetails": {
+ "from": "0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81",
+ "to": "0xaf758da9f7bdaa7590175193388e9c99427cc2d2",
+ "tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
+ "data": "0xa9059cbb000000000000000000000000af758da9f7bdaa7590175193388e9c99427cc2d2000000000000000000000000000000000000000000000000000000001908b100",
+ "gasLimit": 46097,
+ "gasPrice": 20156528394
+ },
+ "status": "success",
+ "balanceChanges": {
+ "0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81": {
+ "from": 243656557299636170000,
+ "to": 243655628144146780000
+ }
+ },
+ "tokenTransfers": {
+ "0xdac17f958d2ee523a2206206994597c13d831ec7": {
+ "name": "TetherUSD",
+ "symbol": "USDT",
+ "decimals": 6,
+ "0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81": {
+ "from": 2387468.080258,
+ "to": 2387048.080258
+ },
+ "0xaf758da9f7bdaa7590175193388e9c99427cc2d2": {
+ "from": 422.304,
+ "to": 842.304
+ }
+ }
+ }
+}
+```
+
+# Use Cases
+
+- **Development and Testing:** Simulate ERC20 transactions to test smart contracts, DApps, and other blockchain functionalities in a risk-free environment.
+- **Education and Training:** Foster practical blockchain education by simulating real-world ERC20 transaction scenarios.
+- **Hackathons:** Empower participants to grasp the implications of ERC20 transactions without the necessity of a live blockchain.
+
+# Summary
+
+The `simulateTransferErc20` function in the Transaction Simulator submodule is a robust tool intended to provide a simulated environment for understanding and testing ERC20 token transfers on EVM-based blockchains. Utilising this function will enable developers, educators, and blockchain enthusiasts to bolster their understanding and expedite their projects within the blockchain ecosystem.
diff --git a/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator/simulate-transfer.md b/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator/simulate-transfer.md
new file mode 100644
index 00000000..c99144a6
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator/simulate-transfer.md
@@ -0,0 +1,117 @@
+---
+title: "Simulate Transfer"
+slug: "simulate-transfer"
+excerpt: "This function helps you to simulate a native transfer by passing a payload to the function simulateTransfer of the extension '@tatumio/transaction-simulator'"
+hidden: false
+createdAt: "Thu Feb 22 2024 13:44:29 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:07:16 GMT+0000 (Coordinated Universal Time)"
+---
+The `simulateTransfer` function within the `Transaction Simulator` submodule serves a vital role in simulating native and ERC20 token transfers on EVM-based blockchains. This function is crucial for developers to test and understand the behavior of token transfers without interacting with the live blockchain. This guide provides a step-by-step approach to utilize the `simulateTransfer` function to enhance your blockchain projects.
+
+# How to Simulate a Transfer
+
+Utilize the provided library to simulate a transfer on an EVM-based blockchain.
+
+```javascript
+// Import necessary libraries
+import { TatumSDK, Network } from '@tatumio/tatum';
+import { simulateTransfer, Transfer } from '@tatumio/transaction-simulator';
+
+const tatumSdk = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ configureExtensions: [
+ TransactionSimulator,
+ ]
+ })
+
+// Define Your Payload
+const transferPayload: Transfer = {
+ to: '0x0Ae9E7437092BB7E7Bd6Eccf0eF1ad05591f5B47',
+ from: '0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81',
+ gas: '0x5208', // optional
+ gasPrice: '0x4BA1C7B8C', //optional
+ value: 1000, // example amount to send in wei
+};
+
+// Call simulateTransfer
+const simulationResult = await simulateTransfer(transferPayload);
+
+// Check simulation results
+console.log(simulationResult);
+```
+```typescript
+// Import necessary libraries
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+import { TransactionSimulator } from '@tatumio/transaction-simulator';
+
+const tatumSdk = await TatumSDK.init({
+ network: Network.ETHEREUM,
+ configureExtensions: [
+ TransactionSimulator,
+ ]
+ })
+
+// Define Your Payload
+const transferPayload: Transfer = {
+ to: '0x0Ae9E7437092BB7E7Bd6Eccf0eF1ad05591f5B47',
+ from: '0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81',
+ gas: '0x5208', // optional
+ gasPrice: '0x4BA1C7B8C', //optional
+ value: 1000, // example amount to send in wei
+};
+
+// Call simulateTransfer
+const simulationResult = await tatumSdk.extension(TransactionSimulator)
+.simulateTransfer(transferPayload);
+
+
+// Check simulation results
+console.log(simulationResult);
+```
+
+## Parameters
+
+- `to`: Address of the recipient.
+- `from`: Address of the sender.
+- `gas`: (Optional) Gas limit for the transaction.
+- `gasPrice`: (Optional) Gas price for the transaction.
+- `value`: Amount to send in wei.
+
+## Expected Response
+
+```json5
+{
+ "transactionDetails": {
+ "from": "0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81",
+ "to": "0x0Ae9E7437092BB7E7Bd6Eccf0eF1ad05591f5B47",
+ "value": 10000,
+ "gasLimit": 21000,
+ "gasPrice": 20302297996
+ },
+ "status": "success",
+ "balanceChanges": {
+ "0xDce92f40cAdDE2C4e3EA78b8892c540e6bFe2f81": {
+ "from": 243323659206289750000,
+ "to": 243323232858031850000
+ },
+ "0x0Ae9E7437092BB7E7Bd6Eccf0eF1ad05591f5B47": {
+ "from": 8951104779026672,
+ "to": 8951104779036672
+ }
+ }
+}
+```
+
+## Response Interface
+
+In this response interface, `transactionDetails` contains the details of the simulated transaction, `status` indicates the success or failure, and `balanceChanges` shows the balance changes for the involved addresses.
+
+# Use Cases
+
+- **Development and Testing:** Simulate transactions to test smart contracts, DApps, and other blockchain functionalities in a safe and controlled environment.
+- **Education and Training:** Enhance hands-on blockchain education by simulating real-world transaction scenarios.
+- **Hackathons:** Enable participants to understand the implications of transactions without the necessity of a live blockchain.
+
+# Summary
+
+The `simulateTransfer` function in the `Transaction Simulator` submodule is a powerful tool designed to provide a simulated environment for understanding and testing token transfers on EVM-based blockchains. Leveraging this function will enable developers, educators, and blockchain enthusiasts to enhance their understanding and expedite their projects in the blockchain ecosystem.
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-address-operations.md b/v1.0/REFERENCE/javascripttypescript/wallet-address-operations.md
new file mode 100644
index 00000000..018e391d
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-address-operations.md
@@ -0,0 +1,29 @@
+---
+title: "💰 Wallet address operations"
+slug: "wallet-address-operations"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:42:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:51:23 GMT+0000 (Coordinated Universal Time)"
+---
+A wallet, in the context of blockchain and cryptocurrencies, is a digital tool that allows users to securely store, manage, and transact with their digital assets such as cryptocurrencies and tokens. Wallets come in various forms, including hardware, software, and even paper wallets. The primary function of a wallet is to securely store a user's private keys, which are needed to access and manage their assets on the blockchain.
+
+Now that we understand what a wallet is, let's explore why users should leverage features like retrieving wallet balances and transaction histories.
+
+# Get the Balance of a Wallet
+
+Retrieving the balance of a wallet is a crucial feature for users who want to keep track of their digital assets. By checking their wallet balance, users can:
+
+- Monitor their asset holdings: Regularly checking the wallet balance helps users stay informed about the value of their assets, allowing them to make informed decisions about buying, selling, or holding their digital assets.
+- Verify received transactions: When users expect to receive digital assets, checking the wallet balance helps confirm if the transaction was successful and if the correct amount has been received.
+- Plan transactions: By knowing the balance of their wallet, users can plan transactions accordingly and ensure they have sufficient funds to cover fees or other expenses.
+
+# Get Transactions on a Specific Address
+
+Viewing transaction history is another essential feature for users who want to track their digital asset activities. By accessing the transaction history of a specific address, users can:
+
+- Audit past transactions: Users can review their transaction history to verify the accuracy of previous transactions, confirm the right amounts were sent or received, and ensure that no unauthorized transactions have occurred.
+- Track spending and receiving patterns: Reviewing transaction history helps users analyze their spending and receiving habits, which can be useful for budgeting or evaluating the performance of their investments.
+- Manage tax obligations: In many jurisdictions, digital assets are subject to taxation. Having access to transaction history enables users to maintain accurate records for tax purposes and meet their tax reporting obligations.
+
+In summary, wallets play a vital role in the management of digital assets, and the ability to retrieve wallet balances and transaction histories is crucial for users who want to stay informed and in control of their assets. By leveraging these features, users can effectively monitor their holdings, verify transactions, and make better-informed decisions about their digital assets.
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-address-operations/get-all-assets-the-wallet-holds.md b/v1.0/REFERENCE/javascripttypescript/wallet-address-operations/get-all-assets-the-wallet-holds.md
new file mode 100644
index 00000000..915f8880
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-address-operations/get-all-assets-the-wallet-holds.md
@@ -0,0 +1,223 @@
+---
+title: "Get all assets the wallet holds"
+slug: "get-all-assets-the-wallet-holds"
+excerpt: "This endpoint can help you fetch all the Assets a wallet holds including native tokens, fungible tokens, non fungible tokens & multitokens."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:42:26 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 11:57:45 GMT+0000 (Coordinated Universal Time)"
+---
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/xxQmQxG",
+ "href": "https://codepen.io/tatum-devrel/embed/xxQmQxG",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+Managing digital assets across various blockchain networks can be a challenging task. However, with TatumSDK, a powerful TypeScript library, developers can effortlessly retrieve wallet balances from multiple blockchains using a unified interface. This guide will demonstrate how to leverage TatumSDK's cross-chain capabilities to obtain wallet balances on Ethereum and Bitcoin, two popular, yet different blockchain networks. By following the steps outlined, you'll be able to streamline the development process and build applications that easily interact with multiple blockchains, saving time and reducing complexity.
+
+# How to get a balance on Ethereum network
+
+Use the TatumSDK (`@tatumio/tatum`) to get a balance of the wallet.
+
+> 📘 Hint
+>
+> TatumSDK wraps multiple different calls to the Tatum API together in 1 function, so we don't show here the curl example for using direct HTTP API calls. You can check the API documentation for specific operations, which are internally used inside the library.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, AddressBalance} from '@@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const balance: ResponseDto = await tatum.address.getBalance({
+ addresses: ['0xF64E82131BE01618487Da5142fc9d289cbb60E9d'], // replace with your address
+})
+
+console.log(balance.data)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+import { TatumSDK, Network } from "@tatumio/tatum";
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const balance = await tatum.address.getBalance({
+ addresses: ['0xF64E82131BE01618487Da5142fc9d289cbb60E9d'], // replace with your address
+ });
+ console.log(balance.data);
+ } catch (error) {
+ console.error("Error fetching wallet balance:", error);
+ }
+})();
+```
+
+## Expected Response
+
+```json
+[
+ {
+ asset: 'ETH',
+ address: '0xF64E82131BE01618487Da5142fc9d289cbb60E9d',
+ decimals: 18,
+ balance: '0.001',
+ type: 'native',
+ }
+]
+```
+
+# How to get a balance on the Bitcoin network
+
+In order to get a balance of a Bitcoin address, you can use the same approach and reuse the same code.
+
+```typescript
+// yarn add @tatumcom/js
+import {TatumSDK, Network, Bitcoin, ResponseDto, AddressBalance} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const balance: ResponseDto = await tatum.address.getBalance({
+ addresses: ['bc1q7zw9ax8tm4jk2k2674u6lcd9fwjut8kqtvfeg8'], // replace with your address
+})
+
+console.log(balance.data)
+
+// Expected outcome
+// [{
+// asset: 'BTC',
+// address: 'bc1q7zw9ax8tm4jk2k2674u6lcd9fwjut8kqtvfeg8',
+// decimals: 8,
+// balance: '0.001',
+// type: 'native',
+// }]
+```
+```javascript
+// Install with: npm install @tatumcom/js
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.BITCOIN });
+ const balance = await tatum.address.getBalance({
+ addresses: ["bc1q7zw9ax8tm4jk2k2674u6lcd9fwjut8kqtvfeg8"], // replace with your address
+ });
+ console.log(balance.data);
+ } catch (error) {
+ console.error("Error fetching wallet balance:", error);
+ }
+})();
+
+// Expected outcome
+// [{
+// asset: 'BTC',
+// address: 'bc1q7zw9ax8tm4jk2k2674u6lcd9fwjut8kqtvfeg8',
+// decimals: 8,
+// balance: '0.001',
+// type: 'native',
+// }]
+```
+
+You can see, that the same request and response is used for different blockchain networks.
+
+## Request interface
+
+```typescript
+interface AddressBalanceDetails {
+ /**
+ * List of addresses to check. Some blockchain network supports only 1 address at a time
+ */
+ addresses: string[]
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface AddressBalance {
+ /**
+ * Blockchain address of the balance.
+ */
+ address: string
+ /**
+ * Asset of the balance. For native currencies, it's always present. For tokens, only when readable from the contract `symbol()` method.
+ */
+ asset?: string
+ /**
+ * Decimals of the asset. Valid for native and fungible tokens. For tokens, only when readable from the contract `decimals()` method.
+ */
+ decimals?: number
+ /**
+ * Balance of the address.
+ */
+ balance: string
+ /**
+ * Type of the balance.
+ */
+ type: 'native' | 'fungible' | 'nft' | 'mutlitoken'
+ /**
+ * Optional token contract address. Valid only for tokens (USDT, NFTs of any kind), not for native network balances (ETH, BTC).
+ */
+ tokenAddress?: string
+ /**
+ * Optional token ID. Valid only for non-fungible and semi-fungible tokens.
+ */
+ tokenId?: string
+ /**
+ * Block number of the last balance update.
+ */
+ lastUpdatedBlock?: number
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \nBNB Smart Chain / BNB Smart Chain Testnet \nCelo / Celo Alfajores \nPolygon / Polygon Mumbai \nChilliz",
+ "0-1": "Multiple addresses per 1 invocation \nNative Assets \nERC-20 Tokens (USDT, USDC,...) \nNFTs (BAYC,...) \nERC-1155 Tokens",
+ "1-0": "Solana / Solana Devnet",
+ "1-1": "Multiple addresses per 1 invocation \nNative Assets (SOL)",
+ "2-0": "XRP / XRP Testnet \nBitcoin / Bitcoin Testnet \nLitecoin / Litecoin Testnet \nDogecoin / Dogecoin Testnet \nCardano / Cardano Preprod",
+ "2-1": "Native Assets \nOnly 1 address per 1 invocation"
+ },
+ "cols": 2,
+ "rows": 3,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-address-operations/get-all-transactions-on-the-wallet.md b/v1.0/REFERENCE/javascripttypescript/wallet-address-operations/get-all-transactions-on-the-wallet.md
new file mode 100644
index 00000000..509ce664
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-address-operations/get-all-transactions-on-the-wallet.md
@@ -0,0 +1,282 @@
+---
+title: "Get all transactions of a wallet"
+slug: "get-all-transactions-on-the-wallet"
+excerpt: "This endpoint can help you get all the transactions of a wallet."
+hidden: false
+createdAt: "Thu Feb 22 2024 13:42:56 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:02:51 GMT+0000 (Coordinated Universal Time)"
+---
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/VwVqVwm",
+ "href": "https://codepen.io/tatum-devrel/embed/VwVqVwm",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+As the world of digital assets expands, it becomes increasingly important for users to keep track of their transactions across various blockchain networks. The ability to retrieve all transactions associated with a particular address is an essential feature for managing and auditing your digital assets. This guide will introduce you to obtaining all transactions for a specific address, providing you with a comprehensive overview of your transaction history. By leveraging this functionality, you can effectively monitor your digital asset activities, verify past transactions, and maintain accurate records for tax or accounting purposes, ultimately gaining greater control over your financial assets in the digital landscape.
+
+# How to get wallet transactions on the Ethereum network
+
+Use the TatumSDK (`@tatumio/tatum`) to get a transaction history of the wallet.
+
+> 📘 Hint
+>
+> TatumSDK wraps multiple different calls to the Tatum API together in 1 function, so curl example is not shown here. You can check the API documentation for specific operations, which are internally used inside the library.
+
+> 🚧 Some filters are in alpha for UTXO chains, thus you may experience inconsistencies.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, ResponseDto, AddressTransaction} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const txs: ResponseDto = await tatum.address.getTransactions({
+ address: '0x514d547c8ac8ccbec29b5144810454bd7d3625ca', // replace with your address
+})
+
+console.log(txs.data)
+
+// Expected outcome
+
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const txs = await tatum.address.getTransactions({
+ address: '0x514d547c8ac8ccbec29b5144810454bd7d3625ca', // replace with your address
+ });
+ console.log(txs.data);
+ } catch (error) {
+ console.error("Error fetching wallet balance:", error);
+ }
+})();
+
+// Expected outcome
+// [{
+// address: '0x514d547c8ac8ccbec29b5144810454bd7d3625ca',
+// amount: '1',
+// blockNumber: 3325299,
+// chain: 'ethereum-sepolia',
+// counterAddress: '0x39d2ba91296029afbe725436b4824ca803e27391',
+// hash: '0xf4ef4715f9ba61f1fb606a32775a7bf281ddf7858092aeb3e0e0484d01957058',
+// timestamp: 1681982316000,
+// transactionIndex: 1,
+// transactionSubtype: 'incoming',
+// transactionType: 'native',
+// }]
+```
+
+# Expected Response
+
+```json
+[
+ {
+ address: '0x514d547c8ac8ccbec29b5144810454bd7d3625ca',
+ amount: '1',
+ blockNumber: 3325299,
+ chain: 'ethereum-sepolia',
+ counterAddress: '0x39d2ba91296029afbe725436b4824ca803e27391',
+ hash: '0xf4ef4715f9ba61f1fb606a32775a7bf281ddf7858092aeb3e0e0484d01957058',
+ timestamp: 1681982316000,
+ transactionIndex: 1,
+ transactionSubtype: 'incoming',
+ transactionType: 'native',
+ }
+]
+```
+
+# How to get wallet transactions on the Bitcoin network
+
+In order to get a transaction history of a Bitcoin address, you can use the same approach and reuse the same code.
+
+```typescript
+// yarn add @tatumcom/js
+import {TatumSDK, Network, Bitcoin, ResponseDto, AddressTransaction} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN_TESTNET})
+
+const balance: ResponseDto = await tatum.address.getTransactions({
+ address: 'tb1qrd9jz8ksy3qqm400vt296udlvk89z96p443mv0', // replace with your address
+})
+
+console.log(balance.data)
+
+/// Expected outcome
+// [{
+// address: 'tb1qrd9jz8ksy3qqm400vt296udlvk89z96p443mv0',
+// amount: '0.001',
+// blockNumber: 2427655,
+// chain: 'bitcoin-testnet',
+// hash: '954b246cdebf7338f561e2fdfb869fedd75302e2b233f339639b36d880e9c983',
+// timestamp: 1680779879,
+// transactionType: 'incoming',
+// }]
+```
+```javascript
+// Install with: npm install @tatumcom/js
+const { TatumSDK, Network } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.BITCOIN_TESTNET });
+ const txs = await tatum.address.getTransactions({
+ address: "tb1qrd9jz8ksy3qqm400vt296udlvk89z96p443mv0", // replace with your address
+ });
+ console.log(txs.data);
+ } catch (error) {
+ console.error("Error fetching wallet transactions:", error);
+ }
+})();
+
+// Expected outcome
+// [{
+// address: 'tb1qrd9jz8ksy3qqm400vt296udlvk89z96p443mv0',
+// amount: '0.001',
+// blockNumber: 2427655,
+// chain: 'bitcoin-testnet',
+// hash: '954b246cdebf7338f561e2fdfb869fedd75302e2b233f339639b36d880e9c983',
+// timestamp: 1680779879,
+// transactionType: 'incoming',
+// }]
+```
+
+You can see, that the same request and response is used for different blockchain networks.
+
+## Request interface
+
+```typescript
+export interface GetAddressTransactionsQuery {
+ /**
+ * Blockchain address to get transactions for.
+ */
+ address: string
+ /**
+ * Optional transaction type. If not specified, all transactions are returned. For networks that support only native transactions, this parameter is ignored.
+ */
+ transactionTypes?: ['fungible' | 'nft' | 'multitoken' | 'native']
+ /**
+ * Optional transaction type. If not specified, both incoming and outgoing transactions are returned.
+ */
+ transactionDirection?: 'incoming' | 'outgoing'
+ /**
+ * Optional from block. If not specified, all transactions are returned from the beginning of the blockchain.
+ */
+ fromBlock?: number
+ /**
+ * Optional to block. If not specified, all transactions are returned up till now.
+ */
+ toBlock?: number
+ /**
+ * Optional page size. If not specified, the default page size is used, which is 10.
+ */
+ pageSize?: number
+ /**
+ * Optional page number. If not specified, the first page is returned.
+ */
+ page?: number
+ /**
+ * Optional token address. If specified, only transactions related to this token (smart contract) are returned.
+ */
+ tokenAddress?: string
+}
+```
+
+## Response interface
+
+```typescript
+interface ResponseDto {
+ /**
+ * Actual payload of the response
+ */
+ data: T
+ /**
+ * Status of the response
+ */
+ status: Status
+ /**
+ * In case of ERROR status, this field contains the error message and detailed description
+ */
+ error?: ErrorWithMessage
+}
+
+interface AddressTransaction {
+ /**
+ * Blockchain network
+ */
+ chain: string
+ /**
+ * Block number
+ */
+ blockNumber: number
+ /**
+ * Transaction hash
+ */
+ hash: string
+ /**
+ * Transaction type
+ */
+ transactionType: 'incoming' | 'outgoing' | 'zero-transfer'
+ /**
+ * Index of the transaction in the block
+ */
+ transactionIndex?: number
+ /**
+ * Address of the token collection, if the transaction is related to a token (ERC-20, ERC-721, ERC-1155)
+ */
+ tokenAddress?: string
+ /**
+ * Token ID, if the transaction is related to a NFT (ERC-721) or MutiToken (ERC-1155)
+ */
+ tokenId?: string
+ /**
+ * Amount transferred. For outgoing transactions, it's a negative number. For zero-transfer transactions, it's always 0. For incoming transactions, it's a positive number.
+ */
+ amount: string
+ /**
+ * Transaction timestamp - UTC millis
+ */
+ timestamp: number
+ /**
+ * Address, on which transaction occurred. This is receiver address for incoming transactions and sender address for outgoing transactions.
+ */
+ address: string
+ /**
+ * Counter address of the transaction. This is sender address for incoming transactions on `address` and receiver address for outgoing transactions on `address`.
+ * Not all blockchain networks can identify the counter address (UTXO chains like Bitcoin e.g., where there is multiple senders or recipients). In this case, the counter address is not returned.
+ */
+ counterAddress?: string
+}
+```
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia \nBNB Smart Chain / BNB Smart Chain Testnet \nCelo / Celo Alfajores \nPolygon / Polygon Mumbai \nChilliz",
+ "0-1": "Native Assets \nERC-20 Tokens (USDT, USDC,...) \nNFTs (BAYC,...) \nERC-1155 Tokens",
+ "1-0": "Bitcoin / Bitcoin Testnet \nLitecoin / Litecoin Testnet \nDogecoin / Dogecoin Testnet",
+ "1-1": "Native Assets only"
+ },
+ "cols": 2,
+ "rows": 2,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy.md
new file mode 100644
index 00000000..96137089
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy.md
@@ -0,0 +1,115 @@
+---
+title: "💻 Wallet Provider EVM"
+slug: "wallet-provider-copy"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 12:26:59 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:27:55 GMT+0000 (Coordinated Universal Time)"
+---
+The EVM Wallet Provider Submodule submodule helps you create wallets locally for EVM (Ethereum Virtual Machine) blockchains.The submodule comes with simple functions to create special phrases called mnemonics, extended public keys (xpubs), private keys, and addresses, as well as to handle transactions on EVM blockchains.
+
+# Get Started
+
+To get started using EVM Wallet Providers, you would need to install @tatumio/evm-wallet-provider along with the Tatum SDK.
+
+```bash
+npm install @tatumio/evm-wallet-provider
+```
+
+# What are the use cases EVM Wallet Provider Submodule helps with?
+
+1. Mnemonic Generation: Generate mnemonics for seed phrases effortlessly, a foundational step for wallet creation and management.
+2. Extended Public Key (xpub) Creation: Create xpubs from mnemonics seamlessly, paving the way for deriving addresses and managing wallets.
+3. Private Key and Address Derivation: Derive private keys and addresses from mnemonics and xpubs efficiently, ensuring secure and organized wallet management.
+4. Transaction Signing and Broadcasting: Sign and broadcast transactions to EVM-based networks with ease, facilitating smooth interactions with the blockchain.
+5. Cross-Blockchain Development: With support for a multitude of EVM-based networks, extend your development horizons across various blockchain platforms including Ethereum, Binance Smart Chain, Polygon, and more. Secure dApp Development:
+
+The EVM Wallet Provider submodule is an indispensable companion for developers striving to excel in the EVM blockchain ecosystem. Its extensive functionalities make it a reliable and potent toolkit for advanced wallet management and blockchain interaction.
+
+# Supported Chains
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Blockchain",
+ "h-1": "Mainnet",
+ "h-2": "Testnet",
+ "0-0": "Arbitrum",
+ "0-1": "Network.ARBITRUM_NOVA \nNetwork.ARBITRUM_ONE",
+ "0-2": "Network.ARBITRUM_NOVA_TESTNET",
+ "1-0": "Aurora",
+ "1-1": "Network.AURORA",
+ "1-2": "Network.AURORA_TESTNET",
+ "2-0": "Avalanche",
+ "2-1": "Network.AVALANCHE_C",
+ "2-2": "Network.AVALANCHE_C_TESTNET",
+ "3-0": "Binance Smart Chain",
+ "3-1": "Network.BINANCE_SMART_CHAIN",
+ "3-2": "Network.BINANCE_SMART_CHAIN_TESTNET",
+ "4-0": "Celo",
+ "4-1": "Network.CELO",
+ "4-2": "Network.CELO_ALFAJORES",
+ "5-0": "Chilliz",
+ "5-1": "Network.CHILIZ",
+ "5-2": "",
+ "6-0": "Cronos",
+ "6-1": "Network.CRONOS",
+ "6-2": "Network.CRONOS_TESTNET",
+ "7-0": "Ethereum",
+ "7-1": "Network.ETHEREUM",
+ "7-2": "Network.ETHEREUM_SEPOLIA \nNetwork.ETHEREUM_GOERLI",
+ "8-0": "Ethereum Classic",
+ "8-1": "Network.ETHEREUM_CLASSIC",
+ "8-2": "",
+ "9-0": "Fantom",
+ "9-1": "Network.FANTOM",
+ "9-2": "Network.FANTOM_TESTNET",
+ "10-0": "Flare",
+ "10-1": "Network.FLARE",
+ "10-2": "Network.FLARE_COSTON \nNetwork.FLARE_COSTON_2 \nNetwork.FLARE_SONGBIRD",
+ "11-0": "Gnosis",
+ "11-1": "Network.GNOSIS",
+ "11-2": "Network.GNOSIS_TESTNET",
+ "12-0": "Harmony",
+ "12-1": "Network.HARMONY_ONE_SHARD_0",
+ "12-2": "Network.HARMONY_ONE_TESTNET_SHARD_0",
+ "13-0": "Haqq",
+ "13-1": "Network.HAQQ",
+ "13-2": "Network.HAQQ_TESTNET",
+ "14-0": "Horizen",
+ "14-1": "Network.HORIZEN_EON",
+ "14-2": "Network.HORIZEN_EON_GOBI",
+ "15-0": "Klaytn",
+ "15-1": "Network.KLAYTN",
+ "15-2": "Network.KLAYTN_BAOBAB",
+ "16-0": "KuCoin",
+ "16-1": "Network.KUCOIN",
+ "16-2": "Network.KUCOIN_TESTNET",
+ "17-0": "Oasis",
+ "17-1": "Network.OASIS",
+ "17-2": "Network.OASIS_TESTNET",
+ "18-0": "Optimism",
+ "18-1": "Network.OPTIMISM",
+ "18-2": "Network.OPTIMISM_TESTNET",
+ "19-0": "Palm",
+ "19-1": "Network.PALM",
+ "19-2": "Network.PALM_TESTNET",
+ "20-0": "Polygon",
+ "20-1": "Network.POLYGON",
+ "20-2": "Network.POLYGON_MUMBAI",
+ "21-0": "VeChain",
+ "21-1": "Network.VECHAIN",
+ "21-2": "Network.VECHAIN_TESTNET",
+ "22-0": "XDC",
+ "22-1": "Network.XDC",
+ "22-2": "Network.XDC_TESTNET"
+ },
+ "cols": 3,
+ "rows": 23,
+ "align": [
+ "left",
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-address.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-address.md
new file mode 100644
index 00000000..0dbaf68c
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-address.md
@@ -0,0 +1,60 @@
+---
+title: "Generate Address"
+slug: "generate-address"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:31:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:32:01 GMT+0000 (Coordinated Universal Time)"
+---
+Generating an address is about creating a public address where others can send you funds. It's like an account number in the blockchain world.
+
+You can generate an address with both Mnemonic or Xpub
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { EvmWalletProvider } from '@tatumio/evm-wallet-provider';
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+
+// Generate address from mnemonic or xpub
+const addressFromMnemonic = await tatumSdk.walletProvider
+.use(EvmWalletProvider).generateAddressFromMnemonic(mnemonic, 0);
+const addressFromXpub = await tatumSdk.walletProvider
+.use(EvmWalletProvider).generateAddressFromXpub(xpubDetails.xpub, 0);
+
+// This will print the generated address from mnemonic
+console.log(addressFromMnemonic);
+// This will print the generated address from xpub
+console.log(addressFromXpub);
+
+await tatum.destroy()
+
+```
+```javascript
+// Install with: npm install @tatumio/evm-wallet-provider @tatumio/tatum
+const { EvmWalletProvider } = require("@tatumio/evm-wallet-provider");
+const { TatumSDK, Network, Ethereum } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatumSdk = await TatumSDK.init({ network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+ const addressFromMnemonic = await tatumSdk.walletProvider
+ .use(EvmWalletProvider).generateAddressFromMnemonic(mnemonic, 0);
+ const addressFromXpub = await tatumSdk.walletProvider
+ .use(EvmWalletProvider).generateAddressFromXpub(xpubDetails.xpub, 0);
+ console.log(addressFromMnemonic);
+ console.log(addressFromXpub);
+ } catch (error) {
+ console.error("Error generating address:", error);
+ }
+})();
+
+await tatum.destroy()
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-mnemonic.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-mnemonic.md
new file mode 100644
index 00000000..4d106f25
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-mnemonic.md
@@ -0,0 +1,50 @@
+---
+title: "Generate Mnemonic"
+slug: "generate-mnemonic"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:28:56 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:29:30 GMT+0000 (Coordinated Universal Time)"
+---
+Generating a mnemonic means creating a special phrase that will be the foundation for your wallet. This phrase is like a master key from which all your wallet addresses and their private keys can be generated. It's a crucial step for ensuring the security and recoverability of your wallet.
+
+The EVM Wallet Provider submodule helps in generating a mnemonic easily. This mnemonic phrase, also known as a seed phrase, is vital for creating and recovering wallets on EVM chains.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { EvmWalletProvider } from '@tatumio/evm-wallet-provider';
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+
+// Generate mnemonic using the EVM Wallet Provider submodule
+const mnemonic = tatumSdk.walletProvider.use(EvmWalletProvider).generateMnemonic();
+
+console.log(mnemonic); // This will print the generated mnemonic
+
+await tatum.destroy()
+```
+```javascript
+// Install with: npm install @tatumio/evm-wallet-provider @tatumio/tatum
+const { EvmWalletProvider } = require("@tatumio/evm-wallet-provider");
+const { TatumSDK, Network, Ethereum } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatumSdk = await TatumSDK.init({ network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]
+ });
+ const mnemonic = await tatumSdk.walletProvider.use(EvmWalletProvider).generateMnemonic();
+ console.log(mnemonic);
+ } catch (error) {
+ console.error("Error generating mnemonic:", error);
+ }
+})();
+
+await tatum.destroy()
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-private-key.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-private-key.md
new file mode 100644
index 00000000..4e734f97
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-private-key.md
@@ -0,0 +1,51 @@
+---
+title: "Generate Private Key"
+slug: "generate-private-key"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:30:39 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:31:13 GMT+0000 (Coordinated Universal Time)"
+---
+Creating a private key is creating a unique and secret key that belongs to you. This key is crucial for accessing and controlling your funds.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { EvmWalletProvider } from '@tatumio/evm-wallet-provider';
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+
+// Generate private key from mnemonic
+const privateKey = await tatumSdk.walletProvider.use(EvmWalletProvider)
+.generatePrivateKeyFromMnemonic(mnemonic, 0);
+
+console.log(privateKey); // This will print the generated private key
+
+await tatum.destroy()
+
+```
+```javascript
+// Install with: npm install @tatumio/evm-wallet-provider @tatumio/tatum
+const { EvmWalletProvider } = require("@tatumio/evm-wallet-provider");
+const { TatumSDK, Network, Ethereum } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatumSdk = await TatumSDK.init({ network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+ const privateKey = await tatumSdk.walletProvider.use(EvmWalletProvider)
+ .generatePrivateKeyFromMnemonic(mnemonic, 0);
+ console.log(privateKey);
+ } catch (error) {
+ console.error("Error generating private key:", error);
+ }
+})();
+
+
+await tatum.destroy()
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-xpub.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-xpub.md
new file mode 100644
index 00000000..cb72ed45
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-xpub.md
@@ -0,0 +1,50 @@
+---
+title: "Generate Xpub"
+slug: "generate-xpub"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:29:52 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:30:21 GMT+0000 (Coordinated Universal Time)"
+---
+Generating an extended public key (xpub) is a way to allow the creation of public addresses without exposing the corresponding private keys. It's an important function for maintaining security while still being able to receive funds.
+
+You can generate Xpub with or without mnemonic.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { EvmWalletProvider } from '@tatumio/evm-wallet-provider';
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+
+// Generate xpub using the generated mnemonic
+const xpubDetails = await tatumSdk.walletProvider.use(EvmWalletProvider)
+.generateXpub(mnemonic);
+
+console.log(xpubDetails.xpub); // This will print the generated xpub
+
+await tatum.destroy()
+```
+```javascript
+// Install with: npm install @tatumio/evm-wallet-provider @tatumio/tatum
+const { EvmWalletProvider } = require("@tatumio/evm-wallet-provider");
+const { TatumSDK, Network, Ethereum } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatumSdk = await TatumSDK.init({ network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+ const xpubDetails = await tatumSdk.walletProvider.use(EvmWalletProvider).generateXpub(mnemonic);
+ console.log(xpubDetails.xpub);
+ } catch (error) {
+ console.error("Error generating xpub:", error);
+ }
+})();
+
+await tatum.destroy()
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/sign-and-broadcast-a-transaction.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/sign-and-broadcast-a-transaction.md
new file mode 100644
index 00000000..4411ba91
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/sign-and-broadcast-a-transaction.md
@@ -0,0 +1,60 @@
+---
+title: "Sign and Broadcast a Transaction"
+slug: "sign-and-broadcast-a-transaction"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:32:27 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:32:53 GMT+0000 (Coordinated Universal Time)"
+---
+Signing and broadcasting a transaction is about authorising a transfer of funds or interaction with a smart contract and then sending that authorisation to the blockchain to be processed.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { EvmWalletProvider } from '@tatumio/evm-wallet-provider';
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+
+// Define your transaction details
+const payload = {
+ privateKey: 'YOUR_PRIVATE_KEY',
+ // other fields for your transaction...
+}
+
+// Sign and broadcast the transaction using the EVM Wallet Provider submodule
+const txHash = await tatumSdk.walletProvider.use(EvmWalletProvider)
+.signAndBroadcast(payload);
+
+// This will print the transaction hash of the broadcasted transaction
+console.log(txHash);
+
+await tatum.destroy()
+```
+```javascript
+ // Install with: npm install @tatumio/evm-wallet-provider @tatumio/tatum
+const { EvmWalletProvider } = require("@tatumio/evm-wallet-provider");
+const { TatumSDK, Network, Ethereum } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatumSdk = await TatumSDK.init({ network: Network.ETHEREUM,
+ configureWalletProviders: [
+ EvmWalletProvider,
+ ]});
+ const payload = {
+ privateKey: 'YOUR_PRIVATE_KEY',
+ // other fields for your transaction...
+ }
+ const txHash = await tatumSdk.walletProvider.use(EvmWalletProvider)
+ .signAndBroadcast(payload);
+ console.log(txHash);
+ } catch (error) {
+ console.error("Error signing and broadcasting transaction:", error);
+ }
+})();
+
+await tatum.destroy()
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy.md
new file mode 100644
index 00000000..cc1b065d
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy.md
@@ -0,0 +1,31 @@
+---
+title: "💻 Wallet Provider Tron"
+slug: "wallet-provider-evm-copy"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:19:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:13:06 GMT+0000 (Coordinated Universal Time)"
+---
+The Tron Wallet Provider is designed to work flawlessly with the Tatum SDK, extending wallet functionalities for the Tron blockchain.
+
+# Getting Started
+
+Ensure to have `@tatumio/tron-wallet-provider` installed alongside Tatum SDK.
+
+```bash
+npm install @tatumio/tron-wallet-provider
+```
+
+# Features
+
+1. **Mnemonic Generation**: Create mnemonics for seed phrases effortlessly.
+2. **Extended Public Key (xpub) Creation**: Generate xpubs from mnemonics seamlessly.
+3. **Private Key and Address Derivation**: Derive private keys and addresses from mnemonics and xpubs efficiently.
+4. **Transaction Signing and Broadcasting**: Sign and broadcast transactions on the Tron network with ease.
+
+# Supported Networks
+
+- Network.TRON
+- Network.TRON\_SHASTA
+
+Ensure the security of mnemonics, private keys, and other sensitive data. Never expose them in client-side code or public repositories.
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-address-1.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-address-1.md
new file mode 100644
index 00000000..d9db78d4
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-address-1.md
@@ -0,0 +1,64 @@
+---
+title: "Generate Address"
+slug: "generate-address-1"
+excerpt: "Generate Address from Mnemonic or an Xpub"
+hidden: false
+createdAt: "Fri Mar 15 2024 14:17:04 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:17:04 GMT+0000 (Coordinated Universal Time)"
+---
+These functions allow you to derive a wallet address from a mnemonic or an xpub using the `TronWalletProvider` from the Tatum SDK.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+// Initialize the SDK for Tron
+const tatumSdk = await TatumSDK.init({
+ network: Network.TRON,
+ configureWalletProviders: [TronWalletProvider]
+});
+
+// Derive address from mnemonic
+const addressFromMnemonic = await tatumSdk.walletProvider
+ .use(TronWalletProvider)
+ .generateAddressFromMnemonic(mnemonic, 0);
+
+// Derive address from xpub
+const addressFromXpub = await tatumSdk.walletProvider
+ .use(TronWalletProvider)
+ .generateAddressFromXpub(xpubDetails.xpub, 0);
+
+// Output the derived addresses
+console.log(addressFromMnemonic); // Prints the address derived from mnemonic
+console.log(addressFromXpub); // Prints the address derived from xpub
+
+await tatum.destroy();
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+// Initialize the SDK for Tron
+const tatumSdk = await TatumSDK.init({
+ network: Network.TRON,
+ configureWalletProviders: [TronWalletProvider]
+});
+
+// Derive address from mnemonic
+const addressFromMnemonic = await tatumSdk.walletProvider
+ .use(TronWalletProvider)
+ .generateAddressFromMnemonic(mnemonic, 0);
+
+// Derive address from xpub
+const addressFromXpub = await tatumSdk.walletProvider
+ .use(TronWalletProvider)
+ .generateAddressFromXpub(xpubDetails.xpub, 0);
+
+// Output the derived addresses
+console.log(addressFromMnemonic); // Prints the address derived from mnemonic
+console.log(addressFromXpub); // Prints the address derived from xpub
+
+await tatum.destroy();
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-mnemonic-1.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-mnemonic-1.md
new file mode 100644
index 00000000..7d0b3432
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-mnemonic-1.md
@@ -0,0 +1,48 @@
+---
+title: "Generate Mnemonic"
+slug: "generate-mnemonic-1"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:13:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:13:48 GMT+0000 (Coordinated Universal Time)"
+---
+Generating a mnemonic means creating a special phrase that will be the foundation for your wallet. This phrase is like a master key from which all your wallet addresses and their private keys can be generated. It's a crucial step for ensuring the security and recoverability of your wallet.
+
+The Tron Wallet Provider submodule helps in generating a mnemonic easily. This mnemonic phrase, also known as a seed phrase, is vital for creating and recovering wallets on Tron.
+
+```typescript
+// Import necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network, Tron } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TRON,
+ configureWalletProviders: [
+ TronWalletProvider,
+ ]});
+
+// Generate mnemonic using the Tron Wallet Provider submodule
+const mnemonic = tatumSdk.walletProvider.use(TronWalletProvider)
+.generateMnemonic();
+
+console.log(mnemonic); // This will print the generated mnemonic
+
+await tatum.destroy()
+```
+```javascript
+// Import necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network, Tron } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TRON,
+ configureWalletProviders: [
+ TronWalletProvider,
+ ]});
+
+// Generate mnemonic using the Tron Wallet Provider submodule
+const mnemonic = tatumSdk.walletProvider.use(TronWalletProvider)
+.generateMnemonic();
+
+console.log(mnemonic); // This will print the generated mnemonic
+
+await tatum.destroy()
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-private-key-1.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-private-key-1.md
new file mode 100644
index 00000000..7b77c5ec
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-private-key-1.md
@@ -0,0 +1,50 @@
+---
+title: "Generate Private Key"
+slug: "generate-private-key-1"
+excerpt: "Generate private key from Mnemonic"
+hidden: false
+createdAt: "Fri Mar 15 2024 14:15:18 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:15:18 GMT+0000 (Coordinated Universal Time)"
+---
+Creating a private key is creating a unique and secret key that belongs to you. This key is crucial for accessing and controlling your funds.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network, Tron } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TRON,
+ configureWalletProviders: [
+ TronWalletProvider,
+ ]});
+
+// Generate private key from mnemonic
+const privateKey = await tatumSdk.walletProvider.use(TronWalletProvider)
+.generatePrivateKeyFromMnemonic(mnemonic, 0);
+
+console.log(privateKey); // This will print the generated private key
+
+await tatum.destroy()
+
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network, Tron } from '@tatumio/tatum';
+
+// Initialize the SDK for Tron
+const tatumSdk = await TatumSDK.init({
+ network: Network.TRON,
+ configureWalletProviders: [TronWalletProvider]
+});
+
+// Generate private key from mnemonic
+const privateKey = await tatumSdk.walletProvider
+ .use(TronWalletProvider)
+ .generatePrivateKeyFromMnemonic(mnemonic, 0);
+
+console.log(privateKey); // This will print the generated private key
+
+await tatum.destroy()
+
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-xpub-1.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-xpub-1.md
new file mode 100644
index 00000000..65bf8c3e
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-xpub-1.md
@@ -0,0 +1,52 @@
+---
+title: "Generate Xpub"
+slug: "generate-xpub-1"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:14:30 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:14:30 GMT+0000 (Coordinated Universal Time)"
+---
+Generating an extended public key (xpub) is a way to allow the creation of public addresses without exposing the corresponding private keys. It's an important function for maintaining security while still being able to receive funds.
+
+You can generate Xpub with or without mnemonic.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network, Ethereum } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TRON,
+ configureWalletProviders: [
+ TronWalletProvider,
+ ]});
+
+// Generate xpub using the generated mnemonic
+const xpubDetails = await tatumSdk.walletProvider.use(TronWalletProvider)
+.generateXpub(mnemonic)
+
+
+console.log(xpubDetails.xpub); // This will print the generated xpub
+
+await tatum.destroy()
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+// Initialize the SDK for Tron
+const tatumSdk = await TatumSDK.init({
+ network: Network.TRON,
+ configureWalletProviders: [TronWalletProvider]
+});
+
+// Generate xpub using the generated mnemonic
+const xpubDetails = await tatumSdk.walletProvider
+ .use(TronWalletProvider)
+ .generateXpub(mnemonic);
+
+console.log(xpubDetails.xpub); // This will print the generated xpub
+
+await tatum.destroy();
+
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/sign-and-broadcast-a-transaction-1.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/sign-and-broadcast-a-transaction-1.md
new file mode 100644
index 00000000..a17c4e53
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/sign-and-broadcast-a-transaction-1.md
@@ -0,0 +1,63 @@
+---
+title: "Sign and Broadcast a Transaction"
+slug: "sign-and-broadcast-a-transaction-1"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:17:44 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:17:44 GMT+0000 (Coordinated Universal Time)"
+---
+Signing and broadcasting a transaction is about authorising a transfer of funds or interaction with a smart contract and then sending that authorisation to the blockchain to be processed.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network, Tron } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TRON,
+ configureWalletProviders: [
+ TronWalletProvider,
+ ]});
+
+// Define your transaction details
+const payloadTron = {
+ privateKey: 'YOUR_PRIVATE_KEY',
+ to: 'TARGET_WALLET_ADDRESS',
+ amount: '0.01' // TRX_AMOUNT
+}
+
+// Sign and broadcast the transaction using the Tron Wallet Provider submodule
+const txHash = await tatumSdk.walletProvider.use(TronWalletProvider)
+.signAndBroadcast(payloadTron);
+
+// This will print the transaction hash of the broadcasted transaction
+console.log(txHash);
+
+await tatum.destroy();
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
+import { TatumSDK, Network, Tron } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TRON,
+ configureWalletProviders: [
+ TronWalletProvider,
+ ]});
+
+// Define your transaction details
+const payloadTron = {
+ privateKey: 'YOUR_PRIVATE_KEY',
+ to: 'TARGET_WALLET_ADDRESS',
+ amount: '0.01' // TRX_AMOUNT
+}
+
+// Sign and broadcast the transaction using the Tron Wallet Provider submodule
+const txHash = await tatumSdk.walletProvider.use(TronWalletProvider)
+.signAndBroadcast(payloadTron);
+
+// This will print the transaction hash of the broadcasted transaction
+console.log(txHash);
+
+await tatum.destroy();
+
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy.md
new file mode 100644
index 00000000..a7e0452a
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy.md
@@ -0,0 +1,46 @@
+---
+title: "💻 Wallet Provider UTXO"
+slug: "wallet-provider-tezos-copy"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:20:28 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:24:33 GMT+0000 (Coordinated Universal Time)"
+---
+UTXO Wallet Provider extends wallet capabilities for UTXO-based blockchains via Tatum SDK, facilitating:
+
+- Mnemonic generation for seed phrases.
+- xpub creation from mnemonics.
+- Private key and address derivation from mnemonics and xpubs.
+- Transaction signing and broadcasting to UTXO networks.
+
+Utilizes well-regarded packages like bitcoinjs-lib, bitcore-lib, bip39, and bip32.
+
+# Quick Start
+
+## Installation
+
+```javascript Install
+npm install @tatumio/utxo-wallet-provider
+```
+
+```javascript
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+
+const tatumSdk = await TatumSDK.init({
+ network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]
+ });
+```
+
+# Supported Networks
+
+- Network.BITCOIN
+- Network.DOGECOIN
+- Network.LITECOIN
+- Network.BITCOIN_TESTNET
+- Network.DOGECOIN_TESTNET
+- Network.LITECOIN_TESTNET
+
+Remember to keep mnemonics, private keys, and other sensitive data secure. Avoid exposing them in client-side code or public repositories.
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-address-3.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-address-3.md
new file mode 100644
index 00000000..ed2d6ac1
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-address-3.md
@@ -0,0 +1,60 @@
+---
+title: "Generate Address"
+slug: "generate-address-3"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:28:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:28:35 GMT+0000 (Coordinated Universal Time)"
+---
+Generating an address is about creating a public address where others can send you funds. It's like an account number in the blockchain world.
+
+You can generate an address with both Mnemonic or Xpub
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network, Bitcoin } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Generate address from mnemonic or xpub
+const addressFromMnemonic = await tatumSdk.walletProvider
+.use(UtxoWalletProvider).generateAddressFromMnemonic(mnemonic, 0);
+const addressFromXpub = await tatumSdk.walletProvider
+.use(UtxoWalletProvider).generateAddressFromXpub(xpubDetails.xpub, 0);
+
+// This will print the generated address from mnemonic
+console.log(addressFromMnemonic);
+// This will print the generated address from xpub
+console.log(addressFromXpub);
+
+await tatum.destroy();
+
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Generate address from mnemonic or xpub
+const addressFromMnemonic = await tatumSdk.walletProvider
+.use(UtxoWalletProvider).generateAddressFromMnemonic(mnemonic, 0);
+const addressFromXpub = await tatumSdk.walletProvider
+.use(UtxoWalletProvider).generateAddressFromXpub(xpubDetails.xpub, 0);
+
+// This will print the generated address from mnemonic
+console.log(addressFromMnemonic);
+// This will print the generated address from xpub
+console.log(addressFromXpub);
+
+await tatum.destroy();
+
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-mnemonic-3.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-mnemonic-3.md
new file mode 100644
index 00000000..bbe8670c
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-mnemonic-3.md
@@ -0,0 +1,46 @@
+---
+title: "Generate Mnemonic"
+slug: "generate-mnemonic-3"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:25:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:25:52 GMT+0000 (Coordinated Universal Time)"
+---
+Generating a mnemonic means creating a special phrase that will be the foundation for your wallet. This phrase is like a master key from which all your wallet addresses and their private keys can be generated. It's a crucial step for ensuring the security and recoverability of your wallet.
+
+The UTXO Wallet Provider submodule helps in generating a mnemonic easily. This mnemonic phrase, also known as a seed phrase, is vital for creating and recovering wallets on UTXO chains.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network, Bitcoin } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Generate mnemonic using the UTXO Wallet Provider submodule
+const mnemonic = tatumSdk.walletProvider.use(UtxoWalletProvider).generateMnemonic();
+
+console.log(mnemonic); // This will print the generated mnemonic
+
+await tatum.destroy();
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Generate mnemonic using the UTXO Wallet Provider submodule
+const mnemonic = tatumSdk.walletProvider.use(UtxoWalletProvider).generateMnemonic();
+
+console.log(mnemonic); // This will print the generated mnemonic
+
+await tatum.destroy();
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-private-key-3.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-private-key-3.md
new file mode 100644
index 00000000..d555705d
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-private-key-3.md
@@ -0,0 +1,48 @@
+---
+title: "Generate Private Key"
+slug: "generate-private-key-3"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:27:25 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:27:52 GMT+0000 (Coordinated Universal Time)"
+---
+Creating a private key is creating a unique and secret key that belongs to you. This key is crucial for accessing and controlling your funds.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network, Bitcoin } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Generate private key from mnemonic
+const privateKey = await tatumSdk.walletProvider.use(UtxoWalletProvider)
+.generatePrivateKeyFromMnemonic(mnemonic, 0);
+
+console.log(privateKey); // This will print the generated private key
+
+await tatum.destroy();
+
+
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Generate private key from mnemonic
+const privateKey = await tatumSdk.walletProvider.use(UtxoWalletProvider)
+.generatePrivateKeyFromMnemonic(mnemonic, 0);
+
+console.log(privateKey); // This will print the generated private key
+
+await tatum.destroy();
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-xpub-2.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-xpub-2.md
new file mode 100644
index 00000000..b08e5a74
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-xpub-2.md
@@ -0,0 +1,48 @@
+---
+title: "Generate Xpub"
+slug: "generate-xpub-2"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:27:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:27:14 GMT+0000 (Coordinated Universal Time)"
+---
+Generating an extended public key (xpub) is a way to allow the creation of public addresses without exposing the corresponding private keys. It's an important function for maintaining security while still being able to receive funds.
+
+You can generate Xpub with or without mnemonic.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network, Bitcoin } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Generate xpub using the generated mnemonic
+const xpubDetails = await tatumSdk.walletProvider.use(UtxoWalletProvider)
+.generateXpub(mnemonic);
+
+console.log(xpubDetails.xpub); // This will print the generated xpub
+
+await tatum.destroy();
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Generate xpub using the generated mnemonic
+const xpubDetails = await tatumSdk.walletProvider.use(UtxoWalletProvider)
+.generateXpub(mnemonic);
+
+console.log(xpubDetails.xpub); // This will print the generated xpub
+
+await tatum.destroy();
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/sign-and-broadcast-a-transaction-2.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/sign-and-broadcast-a-transaction-2.md
new file mode 100644
index 00000000..76d99772
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/sign-and-broadcast-a-transaction-2.md
@@ -0,0 +1,66 @@
+---
+title: "Sign and Broadcast a Transaction"
+slug: "sign-and-broadcast-a-transaction-2"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:29:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:29:10 GMT+0000 (Coordinated Universal Time)"
+---
+Signing and broadcasting a transaction is about authorising a transfer of funds or interaction with a smart contract and then sending that authorisation to the blockchain to be processed.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network, Bitcoin } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Define your transaction details
+const payloadUtxo = {
+ fromAddress: [{ address: 'YOUR_WALLET_ADDRESS', privateKey: 'YOUR_PRIVATE_KEY'}],
+ to: [{ address: 'TARGET_WALLET_ADDRESS', value: 0.0001 }], // BTC_AMOUNT
+ fee: '0.00001', // BTC_AMOUNT
+ changeAddress: 'CHANGE_WALLET_ADDRESS',
+}
+
+// Sign and broadcast the transaction using the UTXO Wallet Provider submodule
+const txHash = await tatumSdk.walletProvider.use(UtxoWalletProvider)
+.signAndBroadcast(payloadUtxo);
+
+// This will print the transaction hash of the broadcasted transaction
+console.log(txHash);
+
+await tatum.destroy();
+
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
+ configureWalletProviders: [
+ UtxoWalletProvider,
+ ]});
+
+// Define your transaction details
+const payloadUtxo = {
+ fromAddress: [{ address: 'YOUR_WALLET_ADDRESS', privateKey: 'YOUR_PRIVATE_KEY'}],
+ to: [{ address: 'TARGET_WALLET_ADDRESS', value: 0.0001 }], // BTC_AMOUNT
+ fee: '0.00001', // BTC_AMOUNT
+ changeAddress: 'CHANGE_WALLET_ADDRESS',
+}
+
+// Sign and broadcast the transaction using the UTXO Wallet Provider submodule
+const txHash = await tatumSdk.walletProvider.use(UtxoWalletProvider)
+.signAndBroadcast(payloadUtxo);
+
+// This will print the transaction hash of the broadcasted transaction
+console.log(txHash);
+
+await tatum.destroy();
+
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy.md
new file mode 100644
index 00000000..31436c14
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy.md
@@ -0,0 +1,30 @@
+---
+title: "💻 Wallet Provider Tezos"
+slug: "wallet-provider-tron-copy"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:19:42 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:18:39 GMT+0000 (Coordinated Universal Time)"
+---
+The Tezos Wallet Provider module seamlessly integrates with Tatum SDK, offering a plethora of tools and features designed to augment and simplify your experience with Tezos blockchain.
+
+# Get Started
+
+To commence your journey with Tezos Wallet Provider, ensure to have `@tatumio/tezos-wallet-provider` installed alongside Tatum SDK.
+
+```bash
+npm install @tatumio/tezos-wallet-provider
+```
+
+# Key Features
+
+1. **Mnemonic Generation**: Effortlessly create mnemonics for seed phrases, the initial step towards wallet creation and management.
+2. **Private Key and Address Derivation**: Derive private keys and addresses from mnemonics seamlessly.
+3. **Transaction Signing and Broadcasting**: Sign and broadcast transactions to the Tezos network with ease.
+
+# Supported Networks
+
+- Network.TEZOS
+- Network.TEZOS\_TESTNET
+
+Tezos Wallet Provider is your go-to module for advanced wallet management and blockchain interaction within the Tezos ecosystem.
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-address-2.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-address-2.md
new file mode 100644
index 00000000..0e90d09a
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-address-2.md
@@ -0,0 +1,51 @@
+---
+title: "Generate Address"
+slug: "generate-address-2"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:22:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:22:35 GMT+0000 (Coordinated Universal Time)"
+---
+Generating an address is about creating a public address where others can send you funds. It's like an account number in the blockchain world.
+
+You can generate an address with private key.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
+import { TatumSDK, Network, Tezos } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
+ configureWalletProviders: [TezosWalletProvider],
+});
+
+// Generate Address from Private Key
+const address = await tatumSdk.walletProvider
+ .use(TezosWalletProvider)
+ .generateAddressFromPrivateKey(privateKey);
+
+console.log(address); // This will print the generated address
+
+
+await tatum.destroy()
+
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
+ configureWalletProviders: [TezosWalletProvider],
+});
+
+// Generate Address from Private Key
+const address = await tatumSdk.walletProvider
+ .use(TezosWalletProvider)
+ .generateAddressFromPrivateKey(privateKey);
+
+console.log(address); // This will print the generated address
+
+await tatum.destroy();
+
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-mnemonic-2.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-mnemonic-2.md
new file mode 100644
index 00000000..8a22f658
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-mnemonic-2.md
@@ -0,0 +1,45 @@
+---
+title: "Generate Mnemonic"
+slug: "generate-mnemonic-2"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:19:38 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:19:38 GMT+0000 (Coordinated Universal Time)"
+---
+Generating a mnemonic means creating a special phrase that will be the foundation for your wallet. This phrase is like a master key from which all your wallet addresses and their private keys can be generated. It's a crucial step for ensuring the security and recoverability of your wallet.
+
+The Tezos Wallet Provider submodule helps in generating a mnemonic easily. This mnemonic phrase, also known as a seed phrase, is vital for creating and recovering wallets on Tezos.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
+import { TatumSDK, Network, Tezos } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
+ configureWalletProviders: [TezosWalletProvider]
+});
+
+// Generate mnemonic using the Tezos Wallet Provider submodule
+const mnemonic = tatumSdk.walletProvider.use(TezosWalletProvider).generateMnemonic();
+
+console.log(mnemonic); // This will print the generated mnemonic
+
+await tatum.destroy();
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({
+ network: Network.TEZOS,
+ configureWalletProviders: [TezosWalletProvider],
+});
+
+// Generate mnemonic using the Tezos Wallet Provider submodule
+const mnemonic = tatumSdk.walletProvider.use(TezosWalletProvider).generateMnemonic();
+
+console.log(mnemonic); // This will print the generated mnemonic
+
+await tatum.destroy();
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-private-key-2.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-private-key-2.md
new file mode 100644
index 00000000..f0d91048
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-private-key-2.md
@@ -0,0 +1,46 @@
+---
+title: "Generate Private Key"
+slug: "generate-private-key-2"
+excerpt: "Generate private key from Mnemonic"
+hidden: false
+createdAt: "Fri Mar 15 2024 14:21:41 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:21:41 GMT+0000 (Coordinated Universal Time)"
+---
+Creating a private key is creating a unique and secret key that belongs to you. This key is crucial for accessing and controlling your funds.
+
+```typescript
+// Import the necessary library and initialize the SDK
+import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
+import { TatumSDK, Network, Tezos } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
+ configureWalletProviders: [TezosWalletProvider],
+});
+
+// Generate Private Key from Mnemonic
+const privateKey = await tatumSdk.walletProvider
+ .use(TezosWalletProvider)
+ .generatePrivateKeyFromMnemonic(mnemonic, 0);
+
+console.log(privateKey); // This will print the generated private key
+
+await tatum.destroy();
+```
+```javascript
+// Import the necessary library and initialize the SDK
+import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
+ configureWalletProviders: [TezosWalletProvider],
+});
+
+// Generate Private Key from Mnemonic
+const privateKey = await tatumSdk.walletProvider
+ .use(TezosWalletProvider)
+ .generatePrivateKeyFromMnemonic(mnemonic, 0);
+
+console.log(privateKey); // This will print the generated private key
+
+await tatum.destroy();
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/get-private-key-address-and-mnemonic.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/get-private-key-address-and-mnemonic.md
new file mode 100644
index 00000000..4eb251e7
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/get-private-key-address-and-mnemonic.md
@@ -0,0 +1,52 @@
+---
+title: "Get Private Key, Address, and Mnemonic"
+slug: "get-private-key-address-and-mnemonic"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 14:23:27 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 14:23:38 GMT+0000 (Coordinated Universal Time)"
+---
+This function allows you to obtain the private key, address, and mnemonic using the `TezosWalletProvider` from the Tatum SDK.
+
+```typescript
+// Import necessary libraries
+import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
+import { TatumSDK, Network, Tezos } from '@tatumio/tatum';
+
+// Initialize the SDK for Tezos
+const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
+ configureWalletProviders: [TezosWalletProvider],
+});
+
+// Get private key, address and mnemonic
+const { privateKey, address, mnemonic } = await tatumSdk.walletProvider
+ .use(TezosWalletProvider)
+ .getWallet();
+
+// Output the retrieved data
+console.log(privateKey); // Prints the private key
+console.log(address); // Prints the address
+console.log(mnemonic); // Prints the mnemonic
+```
+```javascript
+// Import necessary libraries
+import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
+import { TatumSDK, Network } from '@tatumio/tatum';
+
+// Initialize the SDK for Tezos
+const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
+ configureWalletProviders: [
+ { type: TezosWalletProvider, config: { rpcUrl: 'https://ghostnet.ecadinfra.com' } },
+ ]
+});
+
+// Get private key, address and mnemonic
+const { privateKey, address, mnemonic } = await tatumSdk.walletProvider
+ .use(TezosWalletProvider)
+ .getWallet();
+
+// Output the retrieved data
+console.log(privateKey); // Prints the private key
+console.log(address); // Prints the address
+console.log(mnemonic); // Prints the mnemonic
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider.md
new file mode 100644
index 00000000..fc92ecb9
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider.md
@@ -0,0 +1,38 @@
+---
+title: "💻 Wallet Provider MetaMask"
+slug: "wallet-provider"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:51:46 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:55:24 GMT+0000 (Coordinated Universal Time)"
+---
+A browser wallet like MetaMask or Phantom is a service that allows users to interact with blockchain networks through their web browsers. These wallets enable users to manage their cryptocurrencies, tokens, and digital assets in a non-custodial manner, meaning users have complete control over their private keys and funds.
+
+Tatum SDK simplifies the process of connecting to browser-based non-custodial wallets like MetaMask without requiring developers to have in-depth knowledge of the specific wallet interfaces. By providing a streamlined and easy-to-use integration, Tatum SDK makes it more accessible for developers to build decentralised applications (dApps) that interact with various browser wallets.
+
+# Video guide on Wallet Provider Integration with Metamask
+
+Here's a short video on how you can use Wallet Provider Submodule to integrate wallets like metamask in your web3 app, In this video we will use it create a simple web3 app that connects with Metamask and shows the connected address.
+
+[block:embed]
+{
+ "html": "",
+ "url": "https://www.youtube.com/watch?v=hRoLik_kr0Y",
+ "title": "Add 'Connect With Metamask' Feature With Just One Line of Code in Less Than 2 Minutes",
+ "favicon": "https://www.google.com/favicon.ico",
+ "image": "https://i.ytimg.com/vi/hRoLik_kr0Y/hqdefault.jpg",
+ "provider": "youtube.com",
+ "href": "https://www.youtube.com/watch?v=hRoLik_kr0Y",
+ "typeOfEmbed": "youtube"
+}
+[/block]
+
+
+Using browser non-custodial wallets offers several benefits:
+
+1. **Ease of Use**: Browser wallets provide a user-friendly interface for managing digital assets, making it easier for users to send, receive, and store cryptocurrencies and tokens. Additionally, browser wallets can seamlessly integrate with dApps, enabling users to interact with various blockchain services without leaving their browsers.
+2. **Non-custodial Approach**: Browser wallets like MetaMask or Phantom allow users to maintain full control over their private keys and funds. This non-custodial approach offers increased security, as users are not required to trust a third party to safeguard their assets.
+3. **Cross-platform Compatibility**: Browser wallets are compatible with various devices and platforms, making them accessible to many users. This cross-platform compatibility ensures users can manage their digital assets on their preferred devices, such as desktop computers, laptops, or mobile devices.
+4. **Support for Multiple Networks**: Browser wallets often support multiple blockchain networks, allowing users to manage assets across different chains within a single wallet. This simplifies asset management and provides users with the flexibility to participate in various blockchain ecosystems.
+
+In summary, browser non-custodial wallets like MetaMask or Phantom provide a user-friendly, secure, and versatile solution for managing digital assets and interacting with dApps. Tatum SDK further simplifies the process for developers, making it easier to build applications that can connect to these wallets and offer users a seamless and efficient experience.
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/approve-the-transfer-of-a-fungible-token-like-usdt.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/approve-the-transfer-of-a-fungible-token-like-usdt.md
new file mode 100644
index 00000000..a5c8d2cb
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/approve-the-transfer-of-a-fungible-token-like-usdt.md
@@ -0,0 +1,70 @@
+---
+title: "Approve the transfer of a fungible token like USDT"
+slug: "approve-the-transfer-of-a-fungible-token-like-usdt"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:12:23 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:12:28 GMT+0000 (Coordinated Universal Time)"
+---
+In the context of ERC20 tokens, "approve" refers to a function in the ERC20 standard that allows a token holder to grant permission to another address (called the "spender") to transfer a specified amount of tokens on their behalf. This mechanism is useful for enabling smart contracts or other addresses to perform token transactions on behalf of the token owner without the need to transfer the tokens directly.
+
+> 📘 Hint
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+In summary, approving the transfer of an ERC20 token is a way to delegate the ability to spend tokens to another address while maintaining control over the tokens and their allowance.
+
+# How to approve a USDT transaction for someone else with MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumio/tatum`) to prepare, sign and broadcast the transaction using MetaMask.
+
+> 📘 You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+//This is the USDT token address
+const USDT = '0xdAC17F958D2ee523a2206206994597C13D831ec7'
+
+const txId: string = await tatum.walletProvider.use(MetaMask).approveErc20('0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263', '1.5', USDT)
+
+console.log(txId)
+
+// We have prepared an approval operation of 1.5 USDT from your default connected MetaMask account to the spender - 0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network, MetaMask } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ //This is the USDT token address
+ const USDT = '0xdAC17F958D2ee523a2206206994597C13D831ec7'
+
+ const txId = await tatum.walletProvider.use(MetaMask).approveErc20('0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263', '1.5', USDT);
+ console.log(txId);
+ } catch (error) {
+ console.error("Error signing a transaction using MetaMask:", error);
+ }
+})();
+
+// We have prepared an approval operation of 1.5 USDT from your default connected MetaMask account to the spender - 0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263
+```
+
+## Request parameters
+
+- **`spender`** - string, address, which will be able to transfer the tokens on behalf of the owner
+ - Example: `"0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263"`
+- **`amount`** - string, amount to be approved, always in a token currency like USDT
+ - Example: `"1.5"`
+- **`tokenAddress`** - string, token address of a token you want to approve
+ - Example: `"0xdAC17F958D2ee523a2206206994597C13D831ec7"`
+
+## Response
+
+- **txId** - string, transaction hash of signed and broadcasted transaction
+ - Example: `"0xdb1e03f4cea29265f031bfc0514b07c15a5fc5e5cc2fd47f7d9a54c74f5c5637"`
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/build-your-own-custom-transaction.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/build-your-own-custom-transaction.md
new file mode 100644
index 00000000..6de11d30
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/build-your-own-custom-transaction.md
@@ -0,0 +1,94 @@
+---
+title: "Build your own custom transaction"
+slug: "build-your-own-custom-transaction"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:12:52 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:13:47 GMT+0000 (Coordinated Universal Time)"
+---
+Preparing a transaction for signing via MetaMask means creating a transaction object containing essential details, such as the sender's address, recipient's address, amount to be sent, and gas fees. This transaction object is then presented to MetaMask, which securely signs the transaction using the user's private key, ensuring the transaction's authenticity and integrity before it's broadcasted to the Ethereum network.
+
+> 📘 Hint
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+In summary, you can prepare any transaction, like deploying a new smart contract or interacting with any existing one.
+
+# How to prepare a custom transaction with MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumio/tatum`) to prepare, sign and broadcast the transaction using MetaMask.
+
+> 📘 You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+// Prepare your payload for a signing
+const payload = {
+ to: '0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263',
+ amount: '0x012F',
+ data: '0x000......' // your custom data
+}
+
+const txId: string = await tatum.walletProvider.use(MetaMask).signAndBroadcast(payload)
+
+console.log(txId)
+
+// We have prepared a custom transaction from your default connected MetaMask account
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network, MetaMask } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ // Prepare your payload for a signing
+ const payload = {
+ to: '0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263',
+ amount: '0x012F',
+ data: '0x000......' // your custom data
+ };
+
+ const txId = await tatum.walletProvider.use(MetaMask).signAndBroadcast(payload);
+ console.log(txId);
+ } catch (error) {
+ console.error("Error signing a transaction using MetaMask:", error);
+ }
+})();
+
+
+// We have prepared a custom transaction from your default connected MetaMask account
+```
+
+## Request interface
+
+```typescript
+interface TxPayload {
+ // - The string of the address to the transaction is directed to
+ to?: string
+
+ // - (optional) The string of the address the transaction is sent from
+ from?: string
+
+ // - (optional) The integer of the gas provided for the transaction execution
+ gas?: string
+
+ // - (optional) The integer of the gasPrice used for each paid gas encoded as hexadecimal
+ gasPrice?: string
+
+ // - (optional) The integer of the value sent with this transaction encoded as hexadecimal
+ value?: string
+
+ // The string of the hash of the method signature and encoded parameters, see the Ethereum Contract ABI
+ data?: string
+}
+```
+
+## Response
+
+- **txId** - string, transaction hash of signed and broadcasted transaction
+ - Example: `"0xdb1e03f4cea29265f031bfc0514b07c15a5fc5e5cc2fd47f7d9a54c74f5c5637"`
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-collection-copy-1.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-collection-copy-1.md
new file mode 100644
index 00000000..429cbb5c
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-collection-copy-1.md
@@ -0,0 +1,133 @@
+---
+title: "Create your Fungible Token"
+slug: "create-your-nft-collection-copy-1"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:04:12 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:06:57 GMT+0000 (Coordinated Universal Time)"
+---
+MetaMask, a widely adopted Ethereum wallet, enables users to manage their Ether and ERC-20 tokens while providing a convenient interface for interacting with decentralized applications (dApps) and smart contracts. With the increasing significance of fungible tokens in the digital asset landscape, MetaMask offers a simple and accessible way to create your own ERC-20 token contract, opening the door to numerous possibilities and benefits.
+
+# Why create an ERC-20 token contract?
+
+Fungible tokens like ERC-20 tokens are digital assets that can be exchanged on a one-to-one basis, making them an ideal choice for various applications, such as:
+
+- Creating a digital currency for your project or platform
+- Launching an initial coin offering (ICO) or token sale event
+- Developing a reward or loyalty program for your business
+- Establishing a decentralized governance system for your community
+
+> 📘 Hint
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+# How to create your Fungible token with MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumio/tatum`) to prepare, sign and broadcast the transaction using MetaMask.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/rNQoQWN",
+ "provider": "codepen.io",
+ "href": "https://codepen.io/tatum-devrel/embed/rNQoQWN",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true
+}
+[/block]
+
+
+> 📘 You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network, MetaMask } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ // We have prepared a deploy transaction of ERC-20 contract from your default connected MetaMask account to the recipient
+ // Result is a transaction IF of a broadcasted transaction
+ const txId = await tatum.walletProvider.use(MetaMask).createFungibleToken({
+ name: 'Your Token Name',
+ symbol: 'Your Token Symbol',
+ decimals: 18,
+ initialSupply: 1_000_000})
+
+ console.log(txId);
+
+ // Once the transaction is included in a block, you can get the contract address of the newly created collection
+ const contractAddress: string | null = await tatum.rpc.getContractAddress(txId)
+ console.log(contractAddress)
+ } catch (error) {
+ console.error("Error signing a transaction using MetaMask:", error);
+ }
+})();
+```
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+// We have prepared a deploy transaction of ERC-20 contract from your default connected MetaMask account to the recipient
+// Result is a transaction IF of a broadcasted transaction
+const txId: string = await tatum.walletProvider.use(MetaMask).createFungibleToken({
+ name: 'Your Token Name',
+ symbol: 'Your Token Symbol',
+ decimals: 18,
+ initialSupply: 1_000_000})
+
+console.log(txId)
+
+// Once the transaction is included in a block, you can get the contract address of the newly created collection
+const contractAddress: string | null = await tatum.rpc.getContractAddress(txId)
+console.log(contractAddress)
+```
+
+## Request object parameters
+
+```typescript
+export interface CreateFungibleToken {
+ /**
+ * Name of the token.
+ */
+ name: string
+ /**
+ * Symbol of the token.
+ */
+ symbol: string
+ /**
+ * Number of decimals of the token. Defaults to 18.
+ */
+ decimals?: number
+ /**
+ * Total supply of the token.
+ */
+ initialSupply: string
+ /**
+ * (Optional) Address of the initial holder of the token. Defaults to the connected MetaMask account.
+ */
+ initialHolder?: string
+ /**
+ * (Optional) Address of the admin of the token. Defaults to the connected MetaMask account. Admin can add new minters and pausers.
+ */
+ admin?: string
+ /**
+ * (Optional) Address of the minter of the token. Defaults to the connected MetaMask account. Minters can mint new tokens.
+ */
+ minter?: string
+ /**
+ * (Optional) Address of the pauser of the token. Defaults to the connected MetaMask account. Pausers can pause and unpause the token transactions.
+ */
+ pauser?: string
+}
+
+```
+
+## Response
+
+- **txId** - string, transaction hash of signed and broadcasted transaction
+ - Example: `"0xdb1e03f4cea29265f031bfc0514b07c15a5fc5e5cc2fd47f7d9a54c74f5c5637"`
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-collection.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-collection.md
new file mode 100644
index 00000000..51edb3a9
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-collection.md
@@ -0,0 +1,131 @@
+---
+title: "Create your NFT Collection"
+slug: "create-your-nft-collection"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:03:48 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:03:49 GMT+0000 (Coordinated Universal Time)"
+---
+MetaMask is a widely used Ethereum wallet that allows users to manage their Ether and ERC-20 tokens. It also provides an interface for interacting with decentralized applications (dApps) and smart contracts. With the growing popularity of non-fungible tokens (NFTs), you can now leverage MetaMask to create your very own NFT collection contract, opening up a world of opportunities and benefits.
+
+# Why create an NFT collection contract?
+
+NFTs represent unique digital assets that can't be exchanged on a one-to-one basis, differentiating them from other cryptocurrencies. Creating an NFT collection contract allows you to mint, trade, and showcase a series of unique digital items, such as art, collectibles, virtual real estate, or game items. These contracts facilitate the management of your NFT collection, defining rules for minting, transferring, and managing the ownership of your tokens.
+
+> 📘 Info
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+# How to create your NFT collection with MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumio/tatum`) to prepare, sign and broadcast the transaction using MetaMask.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/VwVqVKp",
+ "href": "https://codepen.io/tatum-devrel/embed/VwVqVKp",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+> 📘 You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network, MetaMask } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ // We have prepared a deploy transaction of ERC-721 contract from your default connected MetaMask account to the recipient
+ // Result is a transaction IF of a broadcasted transaction
+ const txId = await tatum.walletProvider.use(MetaMask).createNftCollection({
+ name: 'Your Collection Name',
+ symbol: 'Your Collection Symbol'});
+
+ console.log(txId);
+
+ // Once the transaction is included in a block, you can get the contract address of the newly created collection
+ const contractAddress: string | null = await tatum.rpc.getContractAddress(txId)
+ console.log(contractAddress)
+ } catch (error) {
+ console.error("Error signing a transaction using MetaMask:", error);
+ }
+})();
+```
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+// We have prepared a deploy transaction of ERC-721 contract from your default connected MetaMask account to the recipient
+// Result is a transaction IF of a broadcasted transaction
+const txId: string = await tatum.walletProvider.use(MetaMask).createNftCollection({
+ name: 'Your Collection Name',
+ symbol: 'Your Collection Symbol'})
+
+console.log(txId)
+
+// Once the transaction is included in a block, you can get the contract address of the newly created collection
+const contractAddress: string | null = await tatum.rpc.getContractAddress(txId)
+console.log(contractAddress)
+```
+
+## Request object parameters
+
+```typescript
+export interface CreateNftCollection {
+ /**
+ * Name of the token.
+ */
+ name: string
+ /**
+ * Symbol of the token.
+ */
+ symbol: string
+ /**
+ * base URI of the collection, defaults to empty string. Base URI is prepended to the token ID in the token URI.
+ */
+ baseURI?: string
+ /**
+ * (Optional) Address of the admin of the token. Defaults to the connected MetaMask account. Admin can add new minters and pausers.
+ */
+ author?: string
+ /**
+ * (Optional) Address of the minter of the token. Defaults to the connected MetaMask account. Minters can mint new tokens.
+ */
+ minter?: string
+}
+
+```
+
+## Response
+
+- **txId** - string, transaction hash of signed and broadcasted transaction
+ - Example: `"0xdb1e03f4cea29265f031bfc0514b07c15a5fc5e5cc2fd47f7d9a54c74f5c5637"`
+
+# Supported blockchain networks
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Network",
+ "h-1": "Support",
+ "0-0": "Ethereum / Ethereum Sepolia / Ethereum Goerli \nBNB Smart Chain / BNB Smart Chain Testnet \nCelo / Celo Alfajores \nPolygon / Polygon Mumbai",
+ "0-1": "NFTs (BAYC,...) \nERC-1155 Tokens"
+ },
+ "cols": 2,
+ "rows": 1,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-erc-1155-multitoken-collection.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-erc-1155-multitoken-collection.md
new file mode 100644
index 00000000..1400da81
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-erc-1155-multitoken-collection.md
@@ -0,0 +1,100 @@
+---
+title: "Create your NFT (ERC-1155 MultiToken) Collection"
+slug: "create-your-nft-erc-1155-multitoken-collection"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:08:46 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:08:52 GMT+0000 (Coordinated Universal Time)"
+---
+MetaMask is a widely used Ethereum wallet that allows users to manage their Ether and ERC-20 tokens. It also provides an interface for interacting with decentralized applications (dApps) and smart contracts. With the growing popularity of non-fungible tokens (NFTs), you can now leverage MetaMask to create your very own NFT collection contract, opening up a world of opportunities and benefits.
+
+# Why create an NFT collection contract?
+
+NFTs represent unique digital assets that can't be exchanged on a one-to-one basis, differentiating them from other cryptocurrencies. Creating an NFT collection contract allows you to mint, trade, and showcase a series of unique digital items, such as art, collectibles, virtual real estate, or game items. These contracts facilitate the management of your NFT collection, defining rules for minting, transferring, and managing the ownership of your tokens.
+
+> 📘 Hint
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+# How to create your NFT (ERC-1155 MultiToken) collection with MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumio/tatum`) to prepare, sign and broadcast the transaction using MetaMask.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/dyQwQOv",
+ "href": "https://codepen.io/tatum-devrel/embed/dyQwQOv",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+> 📘 You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network, MetaMask } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ // We have prepared a deploy transaction of ERC-1155 contract from your default connected MetaMask account to the recipient
+ // Result is a transaction IF of a broadcasted transaction
+ const txId = await tatum.walletProvider.use(MetaMask).createErc1155NftCollection();
+
+ console.log(txId);
+
+ // Once the transaction is included in a block, you can get the contract address of the newly created collection
+ const contractAddress: string | null = await tatum.rpc.getContractAddress(txId)
+ console.log(contractAddress)
+ } catch (error) {
+ console.error("Error signing a transaction using MetaMask:", error);
+ }
+})();
+```
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+// We have prepared a deploy transaction of ERC-1155 contract from your default connected MetaMask account to the recipient
+// Result is a transaction IF of a broadcasted transaction
+const txId: string = await tatum.walletProvider.use(MetaMask).createErc1155NftCollection()
+
+console.log(txId)
+
+// Once the transaction is included in a block, you can get the contract address of the newly created collection
+const contractAddress: string | null = await tatum.rpc.getContractAddress(txId)
+console.log(contractAddress)
+```
+
+## Request parameters
+
+```typescript
+export interface CreateErc1155NftCollection {
+ /**
+ * base URI of the collection, defaults to empty string. Base URI is prepended to the token ID in the token URI.
+ */
+ baseURI?: string
+ /**
+ * (Optional) Address of the admin of the token. Defaults to the connected MetaMask account. Admin can add new minters and pausers.
+ */
+ author?: string
+ /**
+ * (Optional) Address of the minter of the token. Defaults to the connected MetaMask account. Minters can mint new tokens.
+ */
+ minter?: string
+}
+
+```
+
+## Response
+
+- **txId** - string, transaction hash of signed and broadcasted transaction
+ - Example: `"0xdb1e03f4cea29265f031bfc0514b07c15a5fc5e5cc2fd47f7d9a54c74f5c5637"`
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/test.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/test.md
new file mode 100644
index 00000000..aaa93b8e
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/test.md
@@ -0,0 +1,68 @@
+---
+title: "Connect a wallet"
+slug: "test"
+excerpt: ""
+hidden: false
+createdAt: "Thu Feb 22 2024 13:53:00 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:53:59 GMT+0000 (Coordinated Universal Time)"
+---
+Connecting to a MetaMask wallet means establishing a link between a decentralized application (dApp) or a web-based service and your MetaMask wallet. MetaMask is a browser extension that acts as a cryptocurrency wallet and a gateway to blockchain-based applications on the Ethereum network.
+
+When you connect to a MetaMask wallet, you're granting the dApp or web service permission to access your wallet's address and interact with the Ethereum blockchain on your behalf. This may include actions such as signing transactions, sending tokens, or participating in decentralised finance (DeFi) protocols. This connection enables seamless interaction between users and blockchain applications while keeping private keys secure within the wallet.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/xxQmQOZ",
+ "href": "https://codepen.io/tatum-devrel/embed/xxQmQOZ",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+> 📘 Hint
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+# How to get connect to MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumio/tatum`) to check if there is a MetaMask extension available and get the default address from it.
+
+> 📘 Hint
+>
+> You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const metamaskAccount: string = await tatum.walletProvider.use(MetaMask).getWallet();
+
+console.log(metamaskAccount)
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network, MetaMask } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const metamaskAccount = await tatum.walletProvider.use(MetaMask).getWallet();
+ console.log(metamaskAccount);
+ } catch (error) {
+ console.error("Error fetching default account from MetaMask:", error);
+ }
+})();
+```
+
+## Expected Response
+
+```json
+0xF64E82131BE01618487Da5142fc9d289cbb60E9d
+```
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-fungible-tokens-like-usdt.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-fungible-tokens-like-usdt.md
new file mode 100644
index 00000000..00f941db
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-fungible-tokens-like-usdt.md
@@ -0,0 +1,84 @@
+---
+title: "Transfer fungible tokens like USDT"
+slug: "transfer-fungible-tokens-like-usdt"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 13:10:47 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 13:11:02 GMT+0000 (Coordinated Universal Time)"
+---
+Preparing a transaction for signing via MetaMask means creating a transaction object containing essential details, such as the sender's address, recipient's address, amount to be sent, and gas fees. This transaction object is then presented to MetaMask, which securely signs the transaction using the user's private key, ensuring the transaction's authenticity and integrity before it's broadcasted to the Ethereum network.
+
+> 📘 Hint
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+# How to perform a USDT transaction with MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumcom/js`) to prepare, sign and broadcast the transaction using MetaMask.
+
+> 📘 Hint
+>
+> You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```typescript
+// yarn add @tatumcom/js
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumcom/js'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+//This is the USDT token address
+const USDT = '0xdAC17F958D2ee523a2206206994597C13D831ec7'
+
+const txId: string = await tatum.walletProvider.use(MetaMask).transferErc20('0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263', '1.5', USDT)
+
+console.log(txId)
+
+// We have prepared a transfer of 1.5 USDT from your default connected MetaMask account to the recipient of 0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263
+```
+```javascript
+// Install with: npm install @tatumcom/js
+const { TatumSDK, Network, MetaMask } = require("@tatumcom/js");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ //This is the USDT token address
+ const USDT = '0xdAC17F958D2ee523a2206206994597C13D831ec7'
+
+ const txId = await tatum.walletProvider.use(MetaMask).transferErc20('0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263', '1.5', USDT);
+ console.log(txId);
+ } catch (error) {
+ console.error("Error signing a transaction using MetaMask:", error);
+ }
+})();
+
+// We have prepared a transfer of 1.5 USDT from your default connected MetaMask account to the recipient of 0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/Martin-Zemanek/embed/bGQeQaZ",
+ "href": "https://codepen.io/Martin-Zemanek/embed/bGQeQaZ",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+## Request parameters
+
+- **`recipient`** - string, recipient of your transaction
+ - Example: `"0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263"`
+- **`amount`** - string, amount to be sent, always in a token currency like USDT
+ - Example: `"1.5"`
+- **`tokenAddress`** - string, token address of a token you want to transfer
+ - Example: `"0xdAC17F958D2ee523a2206206994597C13D831ec7"`
+
+## Response
+
+- **txId** - string, transaction hash of signed and broadcasted transaction
+ - Example: `"0xdb1e03f4cea29265f031bfc0514b07c15a5fc5e5cc2fd47f7d9a54c74f5c5637"`
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-native-assets.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-native-assets.md
new file mode 100644
index 00000000..d02a6790
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-native-assets.md
@@ -0,0 +1,77 @@
+---
+title: "Transfer native assets"
+slug: "transfer-native-assets"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 12:57:23 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:57:23 GMT+0000 (Coordinated Universal Time)"
+---
+Preparing a transaction for signing via MetaMask means creating a transaction object containing essential details, such as the sender's address, recipient's address, amount to be sent, and gas fees. This transaction object is then presented to MetaMask, which securely signs the transaction using the user's private key, ensuring the transaction's authenticity and integrity before it's broadcasted to the Ethereum network.
+
+> 📘 Hint
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/tatum-devrel/embed/bGQOQej",
+ "href": "https://codepen.io/tatum-devrel/embed/bGQOQej",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+# How to perform a transaction with MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumio/tatum`) to prepare, sign and broadcast the transaction using MetaMask.
+
+> 📘 Hint
+>
+> You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const txId: string = await tatum.walletProvider.use(MetaMask).transferNative('0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263', '1.5')
+
+console.log(txId)
+
+// We have prepared a native transfer of 1.5 ETH from your default connected MetaMask account to the recipient of 0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network, MetaMask } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ const txId = await tatum.walletProvider.use(MetaMask).transferNative('0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263', '1.5');
+ console.log(txId);
+ } catch (error) {
+ console.error("Error signing a transaction using MetaMask:", error);
+ }
+})();
+
+// We have prepared a native transfer of 1.5 ETH from your default connected MetaMask account to the recipient of 0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263
+// Result is a transaction IF of a broadcasted transaction
+```
+
+## Request parameters
+
+- **`recipient`** - string, recipient of your transaction
+ - Example: `"0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263"`
+- **`amount`** - string, amount to be sent, always in native currency like ETH for Ethereum or MATIC for Polygon
+ - Example: `"1.5"`
+
+## Response
+
+- **txId** - string, transaction hash of signed and broadcasted transaction
+ - Example: `"0xdb1e03f4cea29265f031bfc0514b07c15a5fc5e5cc2fd47f7d9a54c74f5c5637"`
diff --git a/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-your-nft.md b/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-your-nft.md
new file mode 100644
index 00000000..45aa8b4f
--- /dev/null
+++ b/v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-your-nft.md
@@ -0,0 +1,89 @@
+---
+title: "Transfer your NFT"
+slug: "transfer-your-nft"
+excerpt: ""
+hidden: false
+createdAt: "Fri Mar 15 2024 12:59:34 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Mar 15 2024 12:59:44 GMT+0000 (Coordinated Universal Time)"
+---
+An NFT, or Non-Fungible Token, is a unique digital asset that represents ownership or proof of authenticity for a specific item, like a piece of digital artwork, a collectible, or even a virtual property. Transferring an NFT means changing the ownership of that digital item from one person to another.
+
+Imagine you have a one-of-a-kind digital trading card that you'd like to give to a friend. To do this, you would initiate a transfer, which is similar to handing over a physical item to someone else. In the digital world, this transfer process is recorded on a blockchain, a secure and transparent digital ledger that keeps track of every transaction made.
+
+When you transfer an NFT, you're essentially updating the blockchain record to show that your friend is now the new owner of the digital trading card. Once the transfer is complete, your friend has full control over the NFT and can choose to keep it, sell it, or trade it with others. This process ensures that ownership is securely and transparently tracked, preventing counterfeiting or unauthorized duplication of the digital item.
+
+> 📘 Hint
+>
+> MetaMask is designed as a browser extension to provide a user-friendly interface and secure key management for interacting with dApps and web services. Connecting from Node.js is not supported because MetaMask focuses on end-user interactions within web browsers, while Node.js is a server-side JavaScript runtime typically used for backend development.
+
+# How to perform an NFT transfer with MetaMask from your browser-based application
+
+Use the TatumSDK (`@tatumcom/js`) to prepare, sign and broadcast the transaction using MetaMask.
+
+> 📘 Hint
+>
+> You will leverage the WalletProvider submodule, which includes multiple browser-based wallet extensions. MetaMask is just one of them.
+
+```typescript
+// yarn add @tatumio/tatum
+import {TatumSDK, Network, Ethereum, MetaMask} from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+//This is the BoredApeYachtClub NFT token address
+const BAYC = '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D'
+
+const txId: string = await tatum.walletProvider.use(MetaMask).transferNft('0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263', '123', BAYC)
+
+console.log(txId)
+
+// We have prepared a transfer of NFT BAYC#123 from your default connected MetaMask account to the recipient - 0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263
+```
+```javascript
+// Install with: npm install @tatumio/tatum
+const { TatumSDK, Network, MetaMask } = require("@tatumio/tatum");
+
+(async () => {
+ try {
+ const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+ //This is the BoredApeYachtClub NFT token address
+ const BAYC = '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D'
+
+ const txId = await tatum.walletProvider.use(MetaMask).transferNft('0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263', '123', BAYC);
+ console.log(txId);
+ } catch (error) {
+ console.error("Error signing a transaction using MetaMask:", error);
+ }
+})();
+
+// We have prepared a transfer of NFT BAYC#123 from your default connected MetaMask account to the recipient - 0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263
+// Result is a transaction IF of a broadcasted transaction
+```
+
+[block:embed]
+{
+ "html": false,
+ "url": "https://codepen.io/Martin-Zemanek/embed/QWJEBJW",
+ "href": "https://codepen.io/Martin-Zemanek/embed/QWJEBJW",
+ "typeOfEmbed": "iframe",
+ "height": "300px",
+ "width": "100%",
+ "iframe": true,
+ "provider": "codepen.io"
+}
+[/block]
+
+
+## Request parameters
+
+- **`recipient`** - string, recipient of your transaction
+ - Example: `"0x4675C7e5BaAFBFFbca748158bEcBA61ef3b0a263"`
+- **`tokenId`** - string, token ID to be sent, always in a token currency like USDT
+ - Example: `"1.5"`
+- **`tokenAddress`** - string, token address of a NFT collection you want to transfer
+ - Example: `"0xdAC17F958D2ee523a2206206994597C13D831ec7"`
+
+## Response
+
+- **txId** - string, transaction hash of signed and broadcasted transaction
+ - Example: `"0xdb1e03f4cea29265f031bfc0514b07c15a5fc5e5cc2fd47f7d9a54c74f5c5637"`
diff --git a/v1.0/RPC Nodes/rpc-evm.md b/v1.0/RPC Nodes/rpc-evm.md
new file mode 100644
index 00000000..e8185c5c
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm.md
@@ -0,0 +1,9 @@
+---
+title: "EVM"
+slug: "rpc-evm"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:34:11 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:01:49 GMT+0000 (Coordinated Universal Time)"
+---
+Overview of the EVM chains we support
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-arbitrum.md b/v1.0/RPC Nodes/rpc-evm/rpc-arbitrum.md
new file mode 100644
index 00000000..8f526f3c
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-arbitrum.md
@@ -0,0 +1,8 @@
+---
+title: "Arbitrum"
+slug: "rpc-arbitrum"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:39:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Mar 06 2024 13:10:15 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-arbitrum/debug_storagerangeat-arbitrum.md b/v1.0/RPC Nodes/rpc-evm/rpc-arbitrum/debug_storagerangeat-arbitrum.md
new file mode 100644
index 00000000..5e49eb50
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-arbitrum/debug_storagerangeat-arbitrum.md
@@ -0,0 +1,68 @@
+---
+title: "debug_storageRangeAt (Arbitrum)"
+slug: "debug_storagerangeat-arbitrum"
+excerpt: "Arbitrum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "arbitrum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 27 2024 15:06:06 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Mar 27 2024 15:12:11 GMT+0000 (Coordinated Universal Time)"
+---
+[block:html]{"html":"
\n
Archive Method
\n
Only on the full archive nodes. Complex queries might take longer and incur additional cost
\n
"}[/block]
+
+## Overview
+
+`debug_storageRangeAt` is an RPC method that allows you to retrieve the contract storage range for a given block and address. This can be useful for developers and auditors who want to inspect the storage state of a specific contract at a particular point in time. This method can also help in debugging and identifying potential issues with contract storage, as well as understanding how storage evolves as transactions are executed.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :-------------------- | :------------ | :------- | :---------------------------------------------------------------------------------- |
+| blockHash/blockNumber | string/object | yes | The block hash in string format or block number as hexadecimal in the object format |
+| txIndex | integer | yes | The transaction index for the point in which we want the list of accounts |
+| address | string | yes | The contract address |
+| startKey | string | yes | The offset (hash of storage key) |
+| limit | string | yes | The number of storage entries to return |
+
+## Returns
+
+- **Storage** - An object with hash values, and for each of them the key and value it represents.
+ - **hash** - The hash value.
+ - **key** - The key associated with the hash.
+ - **value** - The value associated with the hash.
+- **nextkey** - The hash of next key if further storage in range. Otherwise, not included.
+
+## Request Example
+
+```json cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc":"2.0",
+ "method":"debug_storageRangeAt",
+ "params":[
+ "0xe9793319714333112d41473d33bc06556b6d32d347517b782eb1cdaec296a20b",
+ 5,
+ "0xdAC17F958D2ee523a2206206994597C13D831ec7",
+ "0x00000000000000000000000000000000",
+ 2
+ ],
+ "id":1
+}'
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.debugStorageRangeAt(
+'0x48dfcf43404dffdb3b93a0b0d9982b642b221187bc3ed5c023bdab6c0e863e3d',
+1, '0xa41d19F4258a388c639B7CcD938FCE3fb7D05e86', "0x0000000000000000000000000000000000000000000000000000000000000000", 1)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum.md
new file mode 100644
index 00000000..39f9dde3
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum.md
@@ -0,0 +1,8 @@
+---
+title: "Ethereum"
+slug: "rpc-ethereum"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:35:18 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Mar 06 2024 13:09:53 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_storagerangeat.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_storagerangeat.md
new file mode 100644
index 00000000..93f1cac5
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_storagerangeat.md
@@ -0,0 +1,69 @@
+---
+title: "debug_storageRangeAt"
+slug: "rpc-ethereum-debug_storagerangeat"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ description: "Ethereum RPC"
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 06 2024 10:35:44 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Apr 02 2024 08:40:59 GMT+0000 (Coordinated Universal Time)"
+---
+[block:html]{"html":"
\n
Archive Method
\n
Only on the full archive nodes. Complex queries might take longer and incur additional cost
\n
"}[/block]
+
+## Overview
+
+`debug_storageRangeAt` is an RPC method that allows you to retrieve the contract storage range for a given block and address. This can be useful for developers and auditors who want to inspect the storage state of a specific contract at a particular point in time. This method can also help in debugging and identifying potential issues with contract storage, as well as understanding how storage evolves as transactions are executed.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :-------------------- | :------------ | :------- | :---------------------------------------------------------------------------------- |
+| blockHash/blockNumber | string/object | yes | The block hash in string format or block number as hexadecimal in the object format |
+| txIndex | integer | yes | The transaction index for the point in which we want the list of accounts |
+| address | string | yes | The contract address |
+| startKey | string | yes | The offset (hash of storage key) |
+| limit | string | yes | The number of storage entries to return |
+
+## Returns
+
+- **Storage** - An object with hash values, and for each of them the key and value it represents.
+ - **hash** - The hash value.
+ - **key** - The key associated with the hash.
+ - **value** - The value associated with the hash.
+- **nextkey** - The hash of next key if further storage in range. Otherwise, not included.
+
+## Request Example
+
+```json cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc":"2.0",
+ "method":"debug_storageRangeAt",
+ "params":[
+ "0xe9793319714333112d41473d33bc06556b6d32d347517b782eb1cdaec296a20b",
+ 5,
+ "0xdAC17F958D2ee523a2206206994597C13D831ec7",
+ "0x00000000000000000000000000000000",
+ 2
+ ],
+ "id":1
+}'
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.debugStorageRangeAt(
+'0x48dfcf43404dffdb3b93a0b0d9982b642b221187bc3ed5c023bdab6c0e863e3d',
+1, '0xa41d19F4258a388c639B7CcD938FCE3fb7D05e86', "0x0000000000000000000000000000000000000000000000000000000000000000", 1)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_traceblockbyhash.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_traceblockbyhash.md
new file mode 100644
index 00000000..5977d289
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_traceblockbyhash.md
@@ -0,0 +1,107 @@
+---
+title: "debug_traceBlockByHash"
+slug: "rpc-ethereum-debug_traceblockbyhash"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "Ethereum, rpc"
+ robots: "index"
+createdAt: "Mon Mar 18 2024 13:51:30 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Apr 02 2024 08:41:16 GMT+0000 (Coordinated Universal Time)"
+---
+[block:html]{"html":"
\n
Archive Method
\n
Only on the full archive nodes. Complex queries might take longer and incur additional cost
\n
"}[/block]
+
+## Overview
+
+`debug_traceBlockByHash`method allows developers to trace the execution of transactions within a block specified by its hash. This method is particularly useful for debugging purposes, as it provides detailed information about the execution of each transaction within the block, including the type of call, the addresses involved, the value transferred, the gas used, the input data, the output data, and any sub-calls made during the transaction.
+
+## Parameters
+
+### 1.blockHash (required)
+
+A string representing the hash of the block to be traced.
+
+### 2.tracer (required)
+
+An object that specifies the tracer to use for the transaction trace, one of the following:
+
+| Name | Type | Required | Description |
+| :------------- | :----- | :------- | :--------------------------------------------------------------------------------------------------- |
+| callTracer | string | Yes | Tracks all call frames generated during a transaction, including those at depth 0. |
+| prestateTracer | string | Yes | Replays the transaction and monitors every aspect of the state that occurred throughout the process. |
+
+### tracerConfig
+
+An object that allows specifying configurations for the tracer:
+
+| Name | Type | Required | Description |
+| :---------- | :------ | :------- | :------------------------------------------------------------------------------ |
+| onlyTopCall | boolean | Yes | A boolean indicating whether to trace only the top-level call or all sub-calls. |
+
+## Returns
+
+`callTracer` response
+
+| Name | Description |
+| :---------------- | :------------------------------------------------------------------------------------------------------------------------- |
+| type of the call | The type of the call. |
+| from | The address from which the transaction is sent. |
+| to | The address to which the transaction is directed. |
+| gas | The integer value of the gas used. |
+| transaction value | The specific amount deducted from the sender's account per unit of gas consumed. |
+| gasUsed | The total gas consumed during the call, represented in hexadecimal format. |
+| input | The input data accompanying the transaction, optionally provided, typically utilised for interacting with smart contracts. |
+| output | The data returned as output from the transaction. |
+| error | The type of error encountered during the transaction, if any. |
+| revertReason | The Solidity revert reason, if any. |
+| calls | A list of sub-calls made during the transaction's execution. |
+
+`prestateTracer` response
+
+| Name | Description |
+| :--------------------- | :------------------------------------------------------------------------------------------------------------------------ |
+| smart contract address | The smart contract address linked to the outcome. |
+| balance | The balance of the contract , shown in hexadecimal format, and measured in wei. |
+| code | The contract's bytecode encoded as a hexadecimal string |
+| nonce | The account's nonce connected to the contract, shown as a unsigned integer |
+| storage | A collection of pairs showing the storage slots of the contract, with both keys and values encoded in hexadecimal format. |
+
+## Request Example
+
+```curl
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "method": "debug_traceBlockByHash",
+ "params": [
+ "0x97b49e43632ac70c46b4003434058b18db0ad809617bd29f3448d46ca9085576",
+ {
+ "tracer": "callTracer"
+ }
+ ],
+ "id": 1,
+ "jsonrpc": "2.0"
+}'
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.debugTraceBlockByHash(
+'0x3c4523b7e8c21e3d68f1c3af3d18e8a87c0d43e35b2c1b7f8f4e87e4d4db9c82',
+{
+ tracer: 'callTracer',
+ tracerConfig: {
+ onlyTopCall: true,
+ timeout: '5s',
+ }
+}
+)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_tracecall.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_tracecall.md
new file mode 100644
index 00000000..f6b9438a
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_tracecall.md
@@ -0,0 +1,145 @@
+---
+title: "debug_traceCall"
+slug: "rpc-ethereum-debug_tracecall"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "Ethereum, rpc"
+ robots: "index"
+createdAt: "Thu Mar 07 2024 09:21:24 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Apr 02 2024 08:41:05 GMT+0000 (Coordinated Universal Time)"
+---
+[block:html]{"html":"
\n
Archive Method
\n
Only on the full archive nodes. Complex queries might take longer and incur additional cost
\n
"}[/block]
+
+## Overview
+
+`debug_traceCall` is an Ethereum RPC method that allows you to execute a given call (message), tracing the steps of its execution. This can be helpful for developers and auditors who want to inspect and analyze the internal operations and state changes of a contract call without modifying the blockchain state. This method can assist in debugging and identifying potential issues with contract execution, as well as understanding how gas is consumed during the execution of a call.
+
+## Parameters
+
+### 1. Transaction call object (required)
+
+`object` - The eth_call data
+
+| Name | Type | Required | Description |
+| :------- | :------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| from | string | no | The address the transaction is sent from |
+| to | string | yes | The address the transaction is directed to |
+| gas | integer | no | The integer of the gas provided for the transaction execution. Although eth_call consumes zero gas, this parameter may still be needed by some executions. |
+| gasPrice | integer | no | The integer of the gasPrice used for each paid gas |
+| value | integer | no | The integer of the value sent with this transaction |
+| data | string | no | The hash of the method signature and encoded parameters. Additional information is available at [Ethereum Contract ABI](https://docs.soliditylang.org/en/v0.7.0/abi-spec.html) |
+
+### 2. Block parameter (required)
+
+- hexadecimal block number
+- block hash
+- The `Tag` "latest", "earliest", "pending", "safe" or "finalized" "Safe" and "finalized" are only available on Ethereum and Arbitrum One chain. [Ethereum documentation](https://ethereum.org/en/developers/docs/apis/json-rpc/#default-block).
+
+### 3. Trace type (optional)
+
+- ` The type of tracer` - String - It might be `callTracer` or `prestateTracer`
+ - `callTracer` - The calltracer keeps track of all call frames, including depth 0 calls, that are made during a transaction.
+ - `prestateTracer` - The prestateTracer replays the transaction and tracks every part of state that occured during the transaction.
+- `tracerConfig` - The object to specify the configurations of the tracer
+ - `onlyTopCall` - When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame.
+
+#### Additional configuration parameters
+
+- `disableStorage` — when enabled, it prevents tracing of storage changes made by the transaction being analyzed, which can reduce the resource requirements of the analysis. By default, debug_traceTransaction traces both memory and storage changes, but storage tracing can be particularly resource-intensive, especially for large transactions.
+- `disableStack` — when enabled, it skips tracing of stack changes made by the transaction being analyzed.
+- `disableMemory` — when true, it stops tracing of memory changes made by the transaction being analyzed, reducing resource requirements.
+- `disableReturnData` — when true, it prevents the method from tracing the return data of a transaction. This return data tracing can be very demanding on resources, as it requires a lot of time and processing power.
+- `timeout` (default: 5s) — allows to customize the method's timeout period for JavaScript-based tracing calls.
+
+> 🚧 When using a tracer type , `disableMemory`, `disableStorage`, `disableStack`, or `disableReturnData` will not have any effect. When no tracer is selected, the response defaults to [Struct/opcode logger](https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers#structopcode-logger).
+
+## Returns
+
+`callTracer` response:
+
+| Name | Description |
+| :---------------- | :-------------------------------------------------------------------------------------------------------- |
+| type of the call | Type of the call |
+| from | The transaction sender. |
+| to | The address of the transaction recipient. |
+| gas | The gas included in the transaction by the sender. |
+| transaction value | The actual value per gas deducted from the sender's account. |
+| gasUsed | The total used gas by the call. Encoded as hexadecimal. |
+| input | The optional input data sent with the transaction, usually used to interact with smart contracts. |
+| output | The return value of the call, encoded as a hexadecimal string. |
+| error | An error message in case the execution failed. |
+| calls | A list of sub-calls made by the contract during the call, each represented as a nested call frame object. |
+| revertReason | The reason why the transaction was reverted, returned by the smart contract if any. |
+
+`prestateTracer` response
+
+- `smart contract address` — The address of the smart contract associated with the result.
+ - `balance` — The balance of the contract, expressed in wei and encoded as a hexadecimal string.
+ - `code` — The bytecode of the contract, encoded as a hexadecimal string.
+ - `nonce` — The nonce of the account associated with the contract, represented as an unsigned integer.
+ - `storage` — A map of key-value pairs representing the storage slots of the contract. The keys and values are both encoded as hexadecimal strings.
+
+`Struct/opcode` response
+
+- `The transaction trace object:`
+- `failed` - Successful or failed
+- `gas` - The total consumed gas in the transaction
+- `returnValue` - The return value of the executed contract call
+- `structLogs` - The trace result of each step:
+ - `pc` - The current index in bytecode.
+ - `op` - The name of current executing operation.
+ - `gas` - The available gas in the execution.
+ - `gasCost` - The gas cost of the operation.
+ - `depth` - The number of levels of calling functions.
+ - `stack` - An array of values in the current stack.
+ - `storage` - The mapping of the current storage.
+ - `refund` - The total of current refund value.
+ - `error` - The error of the execution.
+ - `memory` - An array of values in the current memory.
+
+## Request Example
+
+```json cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "method":"debug_traceCall",
+ "params":[{
+ "to":"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
+ },
+ "latest"
+ ],
+ "id":1,
+ "jsonrpc":"2.0"
+}'
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.debugTraceCall({
+ "from": "0xa7d9ddbe1f17865597fbd27ec712455208b6b76d",
+ "to": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "gas": "0x76c0",
+ "gasPrice": "0x9184e72a000",
+ "value": "0x9184e72a",
+ "data": "0x606060..."
+ },
+ "0x1b4",
+ {
+ tracer: 'callTracer',
+ tracerConfig: {
+ onlyTopCall: true,
+ timeout: '5s',
+ }
+}
+)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_tracetransaction.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_tracetransaction.md
new file mode 100644
index 00000000..ff8c3400
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_tracetransaction.md
@@ -0,0 +1,107 @@
+---
+title: "debug_traceTransaction"
+slug: "rpc-ethereum-debug_tracetransaction"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "Ethereum, rpc"
+ robots: "index"
+createdAt: "Mon Mar 18 2024 10:40:52 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Apr 02 2024 08:41:10 GMT+0000 (Coordinated Universal Time)"
+---
+[block:html]{"html":"
\n
Archive Method
\n
Only on the full archive nodes. Complex queries might take longer and incur additional cost
\n
"}[/block]
+
+## Overview
+
+`debug_traceTransaction` RPC method is utilized to trace the execution of a transaction on the Ethereum blockchain. This method is highly beneficial for debugging purposes, as it furnishes comprehensive details regarding the transaction's execution. These details include the type of call, the involved addresses, the transferred value, the gas consumption, the input and output data, any encountered errors, and reasons for reverts if applicable. Moreover, it can enumerate sub-calls made during the transaction's execution.
+
+## Parameters
+
+### 1.Transaction Hash (required)
+
+A string representing the hash of the transaction you want to trace.
+
+### 2.tracer (required)
+
+An object that specifies the tracer to use for the transaction trace, one of the following:
+
+| Name | Type | Required | Description |
+| :------------- | :----- | :------- | :--------------------------------------------------------------------------------------------------- |
+| callTracer | string | Yes | Tracks all call frames generated during a transaction, including those at depth 0. |
+| prestateTracer | string | Yes | Replays the transaction and monitors every aspect of the state that occurred throughout the process. |
+
+### tracerConfig:
+
+An object that allows specifying configurations for the tracer:
+
+| Name | Type | Required | Description |
+| :---------- | :------ | :------- | :------------------------------------------------------------------------------ |
+| onlyTopCall | boolean | Yes | A boolean indicating whether to trace only the top-level call or all sub-calls. |
+
+### 3.timeout
+
+A string specifying the timeout for the trace operation. It's optional.
+
+### Additional Configuration Parameters
+
+`disableStorage` — when activated, it blocks the tracking of storage alterations made by the transaction under review, thus diminishing the resources needed for analysis. By default, `debug_traceTransaction` tracks both memory and storage changes, yet storage tracing can be notably demanding on resources, especially with sizable transactions.
+
+`disableStack` — when enabled, it skips tracing of stack changes made by the transaction being analyzed.
+
+`disableMemory` — when set to true, it halts the tracing of memory alterations carried out by the transaction under examination, thereby diminishing the necessary resources.
+
+`disableReturnData` — when enabled, it disables the method from tracing the return data of a transaction. Tracing this return data can impose significant demands on resources, as it entails extensive time and processing power.
+
+## Returns
+
+`traceTransaction`response:
+
+| Name | Description |
+| :----------- | :------------------------------------------------------------ |
+| type | The type of the call. |
+| from | The address from which the transaction is sent. |
+| to | The address to which the transaction is directed. |
+| value | The integer value sent with the transaction. |
+| gas | The integer value of the gas used. |
+| input | The data given as input to the transaction. |
+| output | The data returned as output from the transaction. |
+| error | The type of error encountered during the transaction, if any. |
+| revertReason | The Solidity revert reason, if any. |
+| calls | A list of sub-calls made during the transaction's execution. |
+
+## Request Example
+
+```curl
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "method": "debug_traceTransaction",
+ "params": [
+ "0x9e63085271890a141297039b3b711913699f1ee4db1acb667ad7ce304772036b",
+ {
+ "tracer": "callTracer"
+ }
+ ],
+ "id": 1,
+ "jsonrpc": "2.0"
+}'
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.debugTraceTransaction('0x920d562e886a0c7c1f07ecee2ee5557f72d3056b205f8811c57e2615a3b6adb0', {
+ tracer: 'callTracer',
+ tracerConfig: {
+ onlyTopCall: true,
+ timeout: '5s',
+ }
+})
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_blocknumber.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_blocknumber.md
new file mode 100644
index 00000000..a31741fb
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_blocknumber.md
@@ -0,0 +1,58 @@
+---
+title: "eth_blockNumber"
+slug: "rpc-ethereum-eth_blocknumber"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 06:52:26 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:00:33 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+`eth_blockNumber` method is part of the Ethereum JSON-RPC API, which is used to interact with the Ethereum blockchain.
+
+This method is particularly useful for various use cases within the blockchain ecosystem, including but not limited to:
+
+- Monitoring Blockchain Health: By regularly checking the latest block number, developers can monitor the health and activity of the Ethereum blockchain. This can be crucial for applications that rely on the blockchain for their operations, as it helps in identifying any potential issues or delays in block production.
+- Synchronization Checks: For applications that interact with the Ethereum blockchain, knowing the latest block number can be essential for synchronization purposes. It helps in ensuring that the application's data is up-to-date with the blockchain's state.
+- Transaction Verification: When submitting transactions to the blockchain, knowing the current block number can be useful for setting appropriate gas prices and for verifying transaction confirmations.
+
+## Parameters
+
+ `eth_blockNumber` method does not accept any parameters, which simplifies its usage. This is because the method is designed to return the most recent block number without needing any additional input from the user.
+
+## Returns
+
+The response from the `eth_blockNumber` method is a JSON object containing the following fields:
+
+| Name | Description |
+| :---------- | :------------------------------------------------------------------------------------------------------------- |
+| blockNumber | The number of the most recent block on the Ethereum blockchain. The value is returned as a hexadecimal string. |
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_blockNumber",
+ "params": []
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const latestBlock = await tatum.rpc.blockNumber()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_call.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_call.md
new file mode 100644
index 00000000..7de0c2e9
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_call.md
@@ -0,0 +1,78 @@
+---
+title: "eth_call"
+slug: "rpc-ethereum-eth_call"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 06:56:46 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:01:00 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+`eth_call` method in Ethereum's JSON-RPC API is used to execute a new message call immediately without creating a transaction on the blockchain. This method is particularly useful for testing and debugging smart contracts, as it allows developers to simulate the execution of contract methods without actually sending transactions to the network. This can help in identifying issues or understanding the behavior of contracts without incurring any gas costs or affecting the blockchain state. Please check the common use cases:
+
+- Testing Smart Contracts: Before deploying a smart contract, developers can use `eth_call` to test its functionality and ensure it behaves as expected.
+- Debugging: It can be used to debug smart contracts by simulating transactions and observing the state changes or return values without affecting the live contract.
+- Estimating Gas Costs: Although `eth_call` does not actually send a transaction, it can be used to estimate the gas costs of a transaction by simulating its execution.
+
+## Parameters
+
+`Object`: The transaction call object
+
+- `from`: DATA, 20 Bytes - (optional) The address the transaction is sent from.
+- `to`: DATA, 20 Bytes - The address the transaction is directed to.
+- `gas`: QUANTITY - (optional) Integer of the gas provided for the transaction execution. eth_call consumes zero gas, but this parameter may be needed by some executions.
+- `gasPrice`: QUANTITY - (optional) Integer of the gasPrice used for each paid gas
+- `value`: QUANTITY - (optional) Integer of the value sent with this transaction
+- `data`: DATA - (optional) Hash of the method signature and encoded parameters. For details see Ethereum Contract ABI in the Solidity documentation ([opens in a new tab](https://docs.soliditylang.org/en/latest/abi-spec.html))
+
+`QUANTITY|TAG` : Integer block number, or the string "latest", "earliest" or "pending", see the default block parameter
+
+## Returns
+
+The response from the `eth_call` method is a JSON object containing the following fields:
+
+| Name | Description |
+| :--- | :------------------------------------- |
+| DATA | The return value of executed contract. |
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "eth_call",
+ "params": [
+ {
+ "from": "0x47ac0Fb4F2D84898e4D9E7b4DaB3C24507a6D503",
+ "to": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
+ "gas": "0x92c0",
+ "gasPrice": "0x7896e72a000",
+ "value": "0x0",
+ "data": "0x70a0823100000000000000000000000047ac0fb4f2d84898e4d9e7b4dab3c24507a6d503"
+ },
+ "latest"
+ ],
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.call({
+ "to": "0xD31a59c85aE9D8edEFeC411D448f90841571b89c", // Replace with the ERC-20 token contract address, in this case wrapped SOL on Ethereum
+ "data": "0x70a08231000000000000000000000000F22981C5bF0A717c98781Af04fdc8213fA789F1C" // The function signature for balanceOf(address), followed by the address (F22981C5bF0A717c98781Af04fdc8213fA789F1C) to query, in this case holder of wrapped SOL tokens
+}, "latest")
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_chainid.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_chainid.md
new file mode 100644
index 00000000..a5ae61d5
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_chainid.md
@@ -0,0 +1,48 @@
+---
+title: "eth_chainId"
+slug: "rpc-ethereum-eth_chainid"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 22:23:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:00:16 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+`eth_chainId` method is part of the Ethereum JSON-RPC API, specifically designed to return the current network or chain ID. This method is crucial for ensuring the uniqueness of transactions across different Ethereum networks, as it helps in preventing replay attacks by distinguishing between transactions intended for different networks. The chain ID was introduced as part of EIP-155 to address the issue of transaction replay attacks across different Ethereum networks.
+
+## Parameters
+
+`eth_chainId` method does not accept any parameters. This simplicity in its request format allows for a straightforward query to retrieve the current chain ID of the Ethereum network you are interacting with.
+
+## Returns
+
+The response to the `eth_chainId` method will be the current chain ID of the Ethereum network you are connected to. This ID is a hexadecimal number that uniquely identifies the network.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "method": "eth_chainId",
+ "params": [],
+ "id": 1,
+ "jsonrpc": "2.0"
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const id = await tatum.rpc.chainId()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_estimategas.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_estimategas.md
new file mode 100644
index 00000000..521c24cd
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_estimategas.md
@@ -0,0 +1,74 @@
+---
+title: "eth_estimateGas"
+slug: "rpc-ethereum-eth_estimategas"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 07:00:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:04:13 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+`eth_estimateGas` method in Ethereum's JSON-RPC API is used to estimate the amount of gas that would be required to execute a transaction without actually sending it. This method is particularly useful for determining the appropriate gas limit for a transaction before it is submitted to the network, helping to avoid out-of-gas errors and ensuring that transactions are processed efficiently.
+
+## Parameters
+
+`eth_estimateGas` method accepts a single parameter, which is an object containing the details of the transaction you wish to estimate. The object can include the following fields:
+
+| Name | Type | Required | Description |
+| :-------- | :----- | :------- | :------------------------------------------------------------------------------------------------------ |
+| from | String | Yes | The address that the transaction is sent from. |
+| to | String | Yes | The address the transaction is sent to. |
+| gas | String | No | The maximum amount of gas provided for the transaction. |
+| gasPrice | String | No | The price of gas in wei. |
+| value | String | No | The amount of ether to send in the transaction, in wei. |
+| data | String | No | The data payload of the transaction, typically used for contract function calls or contract deployment. |
+| nonce | String | No | A fake nonce to set for the account before executing the call. |
+| code | String | No | The code to be executed. |
+| state | String | No | The state to be used for the execution. |
+| stateDiff | String | No | The state diff to be used for the execution |
+
+## Returns
+
+The response from the `eth_estimateGas` method is a single value representing the estimated amount of gas that would be used by the transaction. This value is returned as a hexadecimal string.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/API_KEY/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "eth_estimateGas",
+ "params": [
+ {
+ "from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "to": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "value": "0xde0b6b3a7640000",
+ "data": "0x606060"
+ }
+ ]
+}'
+
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const estimate = await tatum.rpc.estimateGas({
+ "from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "to": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "value": "0xde0b6b3a7640000",
+ "data": "0x606060"
+ })
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gasprice.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gasprice.md
new file mode 100644
index 00000000..97846f11
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gasprice.md
@@ -0,0 +1,49 @@
+---
+title: "eth_gasPrice"
+slug: "rpc-ethereum-eth_gasprice"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 07:29:43 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:04:20 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+`eth_gasPrice` method is part of the Ethereum JSON-RPC API, which is used to interact with the Ethereum blockchain. This method specifically returns the current gas price on the Ethereum network in wei. Wei is the smallest denomination of ether, the cryptocurrency used on the Ethereum network. The gas price is a critical parameter for transactions on the Ethereum network, as it determines how much a transaction is willing to pay per unit of gas, which is a measure of computational effort.
+
+## Parameters
+
+The` eth_gasPrice` method does not accept any parameters. This means that when you call this method, you do not need to provide any additional information besides the method name itself.
+
+## Returns
+
+The response from the` eth_gasPrice` method will be a JSON object containing the result, which is the hexadecimal value of the current gas price in wei. This value is crucial for setting the gas price for transactions, as it directly influences how quickly a transaction is processed by the network.
+
+## Request & Response Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/API_KEY/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_gasPrice",
+ "params": []
+}'
+
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const gasPrice = await tatum.rpc.gasPrice()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockbyhash.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockbyhash.md
new file mode 100644
index 00000000..93685d5e
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockbyhash.md
@@ -0,0 +1,92 @@
+---
+title: "eth_getBlockByHash"
+slug: "rpc-ethereum-eth_getblockbyhash"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 07:05:48 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:01:20 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getBlockByHash` is an Ethereum JSON-RPC method that allows developers to query a specific block in the Ethereum blockchain by its block hash. This method can be used in various scenarios, such as analysing historical transactions, validating the state of the blockchain, or monitoring the progress of mining activities.
+
+## Parameters
+
+The `eth_getBlockByHash` method accepts two parameters:
+
+1. **blockHash**: The hash of the block you want to retrieve information about.
+ - Type: String
+ - Example: "0x75e58e08a9f3a23bac9788d5077a9365abb5c29ec1aab70891264051624720af"
+2. **fullTransactionDetails**: A boolean value indicating whether to return full transaction details or just transaction hashes.
+ - Type: Boolean
+ - Example: True
+
+## Returns
+
+The response from the `eth_getBlockByHash` method is a JSON object containing the following fields:
+
+| Name | Description |
+| :--------------- | :---------------------------------------------------------------------------------------------------------------- |
+| number | The block number (hexadecimal string). |
+| hash | The block hash (32-byte string). |
+| parentHash | The hash of the parent block (32-byte string). |
+| nonce | The nonce used to generate the block (8-byte string). |
+| sha3Uncles | The SHA3 hash of the uncles in the block (32-byte string). |
+| logsBloom | The logs bloom filter of the block (256-byte string). |
+| transactionsRoot | The root of the transaction trie (32-byte string). |
+| stateRoot | The root of the state trie (32-byte string). |
+| miner | The address of the miner who mined the block (20-byte string). |
+| difficulty | The difficulty of the block (hexadecimal string). |
+| totalDifficulty | The total difficulty of the chain up to this block (hexadecimal string). |
+| extraData | Extra data included by the miner in the block (byte string). |
+| size | The block size in bytes (hexadecimal string). |
+| gasLimit | The gas limit for the block (hexadecimal string). |
+| gasUsed | The total gas used by all transactions in the block (hexadecimal string). |
+| timestamp | The block timestamp (hexadecimal string). |
+| transactions | An array of transaction objects or transaction hashes, depending on the `returnFullTransactionObjects` parameter. |
+| uncles | An array of uncle block hashes (32-byte strings). |
+
+If `returnFullTransactionObjects `is true, the transactions field contains transaction objects with the following fields:
+
+| Name | Description |
+| :--------------- | :---------------------------------------------------------------------------------- |
+| hash | The block hash (32-byte string). |
+| nonce | The nonce used to generate the block (8-byte string). |
+| blockHash | The block hash where the transaction is included (32-byte string). |
+| blockNumber | The block number where the transaction is included (hexadecimal string). |
+| transactionIndex | The index of the transaction in the block (hexadecimal string). |
+| from | The sender address (20-byte string). |
+| to | The recipient address, or null for contract creation transactions (20-byte string). |
+| value | The value being transferred (hexadecimal string). |
+| gasPrice | The gas price in wei (hexadecimal string). |
+| gas | The gas provided for the transaction (hexadecimal string).. |
+| input | The input data for the transaction (byte string). |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "eth_getBlockByHash",
+ "params": ["0x75e58e08a9f3a23bac9788d5077a9365abb5c29ec1aab70891264051624720af", true],
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const block = await tatum.rpc.getBlockByHash('0x75e58e08a9f3a23bac9788d5077a9365abb5c29ec1aab70891264051624720af', true)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockbynumber.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockbynumber.md
new file mode 100644
index 00000000..69e2549d
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockbynumber.md
@@ -0,0 +1,90 @@
+---
+title: "eth_getBlockByNumber"
+slug: "rpc-ethereum-eth_getblockbynumber"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 07:18:55 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:01:37 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getBlockByNumber` is an Ethereum JSON-RPC method that allows developers to query a specific block in the Ethereum blockchain by its block number. This method can be used in various scenarios, such as analyzing historical transactions, validating the state of the blockchain, or monitoring the progress of mining activities.
+
+## Parameters
+
+There are two required parameters for this method:
+
+1. **blockNumber**: The block number of the block to be retrieved. This can be a hexadecimal string or one of the predefined aliases: `"earliest"`, `"latest"`, or `"pending"`.
+ - Example: "0x1b4"
+2. **returnFullTransactionObjects**: A boolean value that determines whether the returned block contains complete transaction objects `(true)` or only transaction hashes `(false)`.
+ - Example: True
+
+## Returns
+
+The response from the `eth_getBlockByNumber` method is a JSON object containing the following fields:
+
+| Name | Description |
+| :--------------- | :---------------------------------------------------------------------------------------------------------------- |
+| number | The block number (hexadecimal string). |
+| hash | The block hash (32-byte string). |
+| parentHash | The hash of the parent block (32-byte string). |
+| nonce | The nonce used to generate the block (8-byte string). |
+| sha3Uncles | The SHA3 hash of the uncles in the block (32-byte string). |
+| logsBloom | The logs bloom filter of the block (256-byte string). |
+| transactionsRoot | The root of the transaction trie (32-byte string). |
+| stateRoot | The root of the state trie (32-byte string). |
+| miner | The address of the miner who mined the block (20-byte string). |
+| difficulty | The difficulty of the block (hexadecimal string). |
+| totalDifficulty | The total difficulty of the chain up to this block (hexadecimal string). |
+| extraData | Extra data included by the miner in the block (byte string). |
+| size | The block size in bytes (hexadecimal string). |
+| gasLimit | The gas limit for the block (hexadecimal string). |
+| gasUsed | The total gas used by all transactions in the block (hexadecimal string). |
+| timestamp | The block timestamp (hexadecimal string). |
+| transactions | An array of transaction objects or transaction hashes, depending on the `returnFullTransactionObjects` parameter. |
+| uncles | An array of uncle block hashes (32-byte strings). |
+
+If `returnFullTransactionObjects `is true, the transactions field contains transaction objects with the following fields:
+
+| Name | Description |
+| :--------------- | :---------------------------------------------------------------------------------- |
+| hash | The block hash (32-byte string). |
+| nonce | The nonce used to generate the block (8-byte string). |
+| blockHash | The block hash where the transaction is included (32-byte string). |
+| blockNumber | The block number where the transaction is included (hexadecimal string). |
+| transactionIndex | The index of the transaction in the block (hexadecimal string). |
+| from | The sender address (20-byte string). |
+| to | The recipient address, or null for contract creation transactions (20-byte string). |
+| value | The value being transferred (hexadecimal string). |
+| gasPrice | The gas price in wei (hexadecimal string). |
+| gas | The gas provided for the transaction (hexadecimal string).. |
+| input | The input data for the transaction (byte string). |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_getBlockByNumber",
+ "params": ["latest", true]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const block = await tatum.rpc.getBlockByNumber('latest', true)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockreceipts.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockreceipts.md
new file mode 100644
index 00000000..4b73c743
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockreceipts.md
@@ -0,0 +1,67 @@
+---
+title: "eth_getBlockReceipts"
+slug: "rpc-ethereum-eth_getblockreceipts"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "Ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 10:46:43 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Apr 02 2024 08:41:22 GMT+0000 (Coordinated Universal Time)"
+---
+[block:html]{"html":"
\n
Archive Method
\n
Only on the full archive nodes. Complex queries might take longer and incur additional cost
\n
"}[/block]
+
+## Overview
+
+`eth_getBlockReceipts` RPC method is a powerful tool for retrieving the receipts of all transactions included in a block, along with the block header. This method is particularly useful for applications that require detailed information about transactions, such as event logs, gas usage, and the status of transactions. It is supported on nodes running the Erigon client.
+
+## Parameters
+
+ `eth_getBlockReceipts` method takes a single parameter: the block identifier. This can be a block number (in hex format), a block hash, or one of the special strings "latest" or "earliest". The block identifier specifies which block's transaction receipts you want to retrieve. For example, to get the receipts for the latest block, you would use "latest" as the parameter.
+
+## Returns
+
+The response from `eth_getBlockReceipts` includes an array of transaction receipt objects, each containing detailed information about a transaction. Key fields in the response include:
+
+| Name | Description |
+| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------- |
+| blockHash | The hash of the block containing the transaction. |
+| blockNumber | The number of the block containing the transaction. |
+| contractAddress | The address of the contract created by the transaction, if applicable. |
+| cumulativeGasUsed | The total amount of gas used in the block up to this transaction. |
+| effectiveGasPrice | The actual gas price paid for the transaction. |
+| from | The address of the sender of the transaction. |
+| gasUsed | The amount of gas used by the transaction. |
+| logs | An array of log objects generated by the transaction, including the address, topics, and data of each log. |
+| logsBloom | A bloom filter used by light clients to quickly retrieve logs related to the transaction. |
+| status | The success status of the transaction, represented as 1 for success or 0 for failure. |
+| to | The address of the recipient of the transaction, if applicable. |
+| transactionHash | The hash of the transaction. |
+| transactionIndex | The index of the transaction within the block. |
+| type | The type of the transaction, with 0 indicating a regular transfer and 2 indicating a contract creation or smart contract function call |
+
+## Request Example
+
+```curl
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc":"2.0",
+ "method":"eth_getBlockReceipts",
+ "params":["0x10f5d58"],
+ "id":1
+}'
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.getBlockReceipts(10123321)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblocktransactioncountbyhash.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblocktransactioncountbyhash.md
new file mode 100644
index 00000000..7c1e7438
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblocktransactioncountbyhash.md
@@ -0,0 +1,58 @@
+---
+title: "eth_getBlockTransactionCountByHash"
+slug: "rpc-ethereum-eth_getblocktransactioncountbyhash"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 07:23:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:01:56 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getBlockTransactionCountByHash` is an Ethereum RPC method used to fetch the number of transactions in a block by the block's hash. It is useful when you want to know the total number of transactions included in a specific block and don't want to retrieve the entire block data. This method can be used in various scenarios, such as monitoring the network activity or estimating transaction confirmation times.
+
+## Parameters
+
+This method requires a single parameter:
+
+**blockHash**: The hash of the target block for which the transaction count will be retrieved. It should be a valid 32-byte hex string.
+
+- Example: `blockHash` :"0x2907402477167193008a0cbbaa8073278c48e8b97bf9ed1a2101f6ad2130dbaf"
+
+## Returns
+
+The method returns a single value:
+
+| Name | Description |
+| :--------------- | :------------------------------------------------------------------------------------------------------- |
+| transactionCount | The total number of transactions included in the specified block. It is returned as a hexadecimal value. |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_getBlockTransactionCountByHash",
+ "params": [
+ "0x2907402477167193008a0cbbaa8073278c48e8b97bf9ed1a2101f6ad2130dbaf"
+ ]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const response = await tatum.rpc.getBlockTransactionCountByHash('0x2907402477167193008a0cbbaa8073278c48e8b97bf9ed1a2101f6ad2130dbaf')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblocktransactioncountbynumber.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblocktransactioncountbynumber.md
new file mode 100644
index 00000000..ea6ef4bd
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblocktransactioncountbynumber.md
@@ -0,0 +1,54 @@
+---
+title: "eth_getBlockTransactionCountByNumber"
+slug: "rpc-ethereum-eth_getblocktransactioncountbynumber"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 07:26:28 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:02:07 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getBlockTransactionCountByNumber` Ethereum JSON-RPC method allows you to retrieve the number of transactions in a specified block. This method is particularly useful when you need to analyze the transaction activity of a specific block. You can use it to gain insights into network usage, analyze the impact of specific events on the Ethereum network, or monitor transaction congestion in certain blocks.
+
+## Parameters
+
+This method requires a single parameter:
+
+**blockNumber**: The block number for which the transaction count should be retrieved. It should be a hex-encoded value representing the block number.
+
+- Example: block number 0x110E3F0 (17884144)
+
+## Returns
+
+The return object is a hex-encoded value representing the number of transactions in the specified block.
+
+- Example: 0x86 (134 transactions)
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "eth_getBlockTransactionCountByNumber",
+ "params": ["0x110E3F0"]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const response = await tatum.rpc.getBlockTransactionCountByNumber(17884144)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getcode.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getcode.md
new file mode 100644
index 00000000..1d5a45e6
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getcode.md
@@ -0,0 +1,62 @@
+---
+title: "eth_getCode"
+slug: "rpc-ethereum-eth_getcode"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 07:29:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:02:16 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getCode` method is part of the Ethereum JSON-RPC API and is used to retrieve the contract code (bytecode) of an account at a specific block number. This method is particularly useful for developers who need to examine the bytecode of a deployed contract, verify the integrity of a deployed contract, analyze contract bytecode for security vulnerabilities, or debug a smart contract.
+
+## Parameters
+
+The `eth_getCode` method accepts two parameters:
+
+1. **address**(string): The address of the contract whose bytecode you want to retrieve. This should be a 20-byte Ethereum address, formatted as a hex string with a 0x prefix.
+ - Example: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
+2. **block**(string): The block number at which you want to retrieve the contract code. This can be specified as a hex string or one of the following special keywords:
+ - `"earliest"`: The first block in the blockchain
+ - `"latest"`: The most recent block in the blockchain
+ - `"pending"`: The upcoming block that is being mined
+ - Example: `"0x1"` or `"latest"`
+
+## Returns
+
+The `eth_getCode` method returns a string representing the contract bytecode. The returned value is a hex string with a 0x prefix.
+
+- If the account has contract code, the returned string will contain the bytecode.
+- If the account is not a contract or does not exist, the returned string will be `0x`.
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_getCode",
+ "params": [
+ "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "latest"
+ ]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const code = await tatum.rpc.getCode('0x742d35Cc6634C0532925a3b844Bc454e4438f44e')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getlogs.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getlogs.md
new file mode 100644
index 00000000..c5722b9f
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getlogs.md
@@ -0,0 +1,82 @@
+---
+title: "eth_getLogs"
+slug: "rpc-ethereum-eth_getlogs"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 07:36:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:02:26 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getLogs` method is an Ethereum JSON-RPC method that allows developers to query logs generated by the Ethereum network, specifically event logs emitted by smart contracts. These logs are an essential part of the Ethereum ecosystem as they provide a way for developers to monitor contract events and track contract state changes.
+
+This method is particularly useful when building decentralized applications (dApps) that rely on events emitted by smart contracts, as it enables developers to retrieve logs based on specific filter criteria. By using `eth_getLogs`, developers can efficiently track and react to events happening on the Ethereum blockchain.
+
+## Parameters
+
+The` eth_getLogs` method takes a single input parameter: an object containing the filter criteria. The filter object can have the following fields:
+
+- `fromBlock`: (optional) The starting block number for the search. Can be a block number or one of the following strings: `"earliest"`, `"latest"`, or "`pending"`.
+ - Example: "fromBlock": "0x1"
+- `toBlock`: (optional) The ending block number for the search. Can be a block number or one of the following strings: `"earliest"`, `"latest"`, or "`pending"`.
+ - Example: "toBlock": "0x1"
+- `address`: (optional) The address or list of addresses of the contracts to filter logs from. Can be a single address or an array of addresses.
+ - Example: "address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
+- `topics`: (optional) An array of up to four 32-byte topics. Topics are order-dependent, and each topic can be an array of topic hashes or null.
+ - Example: "topics": ["0x123..."]
+- `blockhash`: (optional) The block hash to filter logs from. If provided, fromBlock and toBlock are ignored.
+ - Example: "blockhash": "0xc6ef9..."
+
+In addition to the above fields, the transactions field in the filter object can be specified to include full transaction details instead of just transaction hashes. This is useful when you need more information about the transactions in which the events were emitted.
+
+## Returns
+
+TThe eth_getLogs method returns an array of log objects. Each log object contains the following fields:
+
+| Name | Description | Example |
+| :--------------- | :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------- |
+| removed | A boolean indicating whether the log was removed due to a chain reorganization. | "removed": false |
+| logIndex | The log index position in the block. | "logIndex": "0x1" |
+| transactionIndex | The transaction index position in the block. | "transactionIndex": "0x0" |
+| transactionHash | The hash of the transaction that emitted the log. | "transactionHash": "0x88eef..." |
+| blockHash | The hash of the block containing the log. | "blockHash": "0xc6ef9..." |
+| blockNumber | The block number containing the log. | "blockNumber": "0x1" |
+| address | The address of the contract that emitted the log. | "address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"v |
+| data | The data associated with the log. | "data":"0x0000000000000000000000000000000000000000000000000000000000000020" |
+| topics | An array of topics (order-dependent) associated with the log. | "topics": ["0x123..."] |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_getLogs",
+ "params": [
+ {
+ "fromBlock": "0x1",
+ "toBlock": "0x2",
+ "address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "topics": ["0x123..."]
+ }
+ ]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const logs = await tatum.rpc.getLogs({ address : '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'})
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getproof.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getproof.md
new file mode 100644
index 00000000..046477ea
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getproof.md
@@ -0,0 +1,99 @@
+---
+title: "eth_getProof"
+slug: "rpc-ethereum-eth_getproof"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 08:01:07 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:02:38 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getProof` is an Ethereum JSON-RPC method that retrieves the Merkle-Patricia proof for an account, storage key-value pairs, and account transaction count. It allows developers to verify the state of an account or storage value at a specific block without needing the entire Ethereum state trie. This method is particularly useful for light clients or off-chain applications that require proof of an account's state or specific storage values.
+
+## Parameters
+
+The` eth_getProof` requieres following parameters: :
+
+- `address`: Data, 20 Bytes
+ - The address of the account.
+ - Example: "fromBlock": "0x1"
+- `keys`: Array of Data
+ - An array of storage keys for which the proof should be generated.
+ - Example: ["0x0000000000000000000000000000000000000000000000000000000000000000"]
+- `blockNumber`: Quantity or String
+ - The block number for which the proof should be generated.
+ - Example: "0x1" or "latest"
+
+## Returns
+
+TThe eth_getProof method returns an object, that contains the following fields:
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Name",
+ "h-1": "Description",
+ "h-2": "Type",
+ "0-0": "accountProof",
+ "0-1": "The serialized Merkle-Patricia proof for the account.",
+ "0-2": "Array of Data",
+ "1-0": "balance",
+ "1-1": "The balance of the account at the specified block.",
+ "1-2": "Quantity",
+ "2-0": "codeHash",
+ "2-1": "The hash of the code for the account at the specified block.",
+ "2-2": "Data, 32 Bytes",
+ "3-0": "nonce",
+ "3-1": "The transaction count of the account at the specified block.",
+ "3-2": "Quantity",
+ "4-0": "storageProof",
+ "4-1": "An array of storage proof objects, one for each requested key, containing the following fields: \n`key` - Data, 32 Bytes: The storage key. \n`value` - Quantity: The storage value. \n`proof `- Array of Data: The serialized Merkle-Patricia proof for the key-value pair.",
+ "4-2": "Array of Object"
+ },
+ "cols": 3,
+ "rows": 5,
+ "align": [
+ "left",
+ "left",
+ "left"
+ ]
+}
+[/block]
+
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_getProof",
+ "params": [
+ "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ [
+ "0x0000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "latest"
+ ]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.getProof("0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ ["0x0000000000000000000000000000000000000000000000000000000000000000"],
+ "latest")
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getstorageat.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getstorageat.md
new file mode 100644
index 00000000..b44d1c4f
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getstorageat.md
@@ -0,0 +1,63 @@
+---
+title: "eth_getStorageAt"
+slug: "rpc-ethereum-eth_getstorageat"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 08:28:04 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:02:47 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getStorageAt` is an Ethereum JSON-RPC method that allows you to query the storage value of a contract at a given position. It can be used to inspect the internal state of a smart contract. This method is particularly useful for developers, auditors, and analysts who want to examine contract storage values for various purposes, such as debugging, verifying contract behavior, or analyzing data.
+
+## Parameters
+
+The` eth_getStorageAt` accepts following parameters: :
+
+- `address`: The address of the contract you want to query.
+ - Example: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
+- `position`: The storage position (slot) you want to query.
+ - Example: "0x0"
+- `blockParameter`: The block number, block hash, or one of the string literals (`"earliest"`,`"latest"`or `"pending"`), representing the point in the blockchain to query the storage value.
+ - Example: `"latest"`
+
+## Returns
+
+The return object is a single string value, representing the storage value at the given position in the contract.
+
+| Name | Description |
+| :----- | :---------------------------------------------------------------- |
+| result | The storage value in a 32-byte (64 character) hexadecimal format. |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_getStorageAt",
+ "params": [
+ "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "0x0",
+ "latest"
+ ]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const response = await tatum.rpc.getStorageAt('0x742d35Cc6634C0532925a3b844Bc454e4438f44e', '0x0')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyblockhashandindex.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyblockhashandindex.md
new file mode 100644
index 00000000..6439d5e5
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyblockhashandindex.md
@@ -0,0 +1,79 @@
+---
+title: "eth_getTransactionByBlockHashAndIndex"
+slug: "rpc-ethereum-eth_gettransactionbyblockhashandindex"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 08:35:20 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:03:01 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getTransactionByBlockHashAndIndex` is an Ethereum JSON-RPC method that allows you to fetch the transaction details based on the block hash and the index of the transaction within that block. This method can be useful when you want to retrieve transaction details for a specific transaction without knowing its transaction hash.
+
+## Usecase
+
+Use cases for this method may include:
+
+- Inspecting transaction details for debugging purposes
+- Gathering data for transaction analysis
+- Fetching transaction information for specific blocks in a block explorer application
+
+## Parameters
+
+The `eth_getTransactionByBlockHashAndIndex` method accepts two parameters:
+
+- `blockHash` (required): The hash of the block containing the transaction.
+ - Example: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
+- `transactionIndex`: (required): The index of the transaction within the specified block. The index is a hexadecimal value.
+ - Example: "0x1"
+
+## Returns
+
+The method returns a JSON object containing the following fields:
+
+| Name | Description |
+| :--------------- | :------------------------------------------------------------------------------------------- |
+| hash | The transaction hash as a 32-byte hex string. |
+| nonce | The number of transactions made by the sender prior to this one. |
+| blockHash | The hash of the block in which this transaction is included. |
+| blockNumber | The block number in which this transaction is included. |
+| transactionIndex | The index of the transaction within the block. |
+| from | The address of the sender. |
+| to | The address of the recipient. `null ` if the transaction is a contract creation transaction. |
+| value | The value transferred in wei. |
+| gasPrice | The gas price provided by the sender in wei. |
+| gas | The gas limit provided by the sender. |
+| input | The data sent along with the transaction. |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "eth_getTransactionByBlockHashAndIndex",
+ "params": [
+ "0x2907402477167193008a0cbbaa8073278c48e8b97bf9ed1a2101f6ad2130dbaf",
+ "0x1"
+ ]
+ }'
+
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const tx = await tatum.rpc.getTransactionByBlockHashAndIndex('0x2907402477167193008a0cbbaa8073278c48e8b97bf9ed1a2101f6ad2130dbaf', 1)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyblocknumberandindex.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyblocknumberandindex.md
new file mode 100644
index 00000000..b4a473b5
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyblocknumberandindex.md
@@ -0,0 +1,79 @@
+---
+title: "eth_getTransactionByBlockNumberAndIndex"
+slug: "rpc-ethereum-eth_gettransactionbyblocknumberandindex"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 08:43:21 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:03:12 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getTransactionByBlockHashAndIndex` is an Ethereum JSON-RPC method that allows you to fetch the transaction details based on the block hash and the index of the transaction within that block. This method can be useful when you want to retrieve transaction details for a specific transaction without knowing its transaction hash.
+
+## Usecase
+
+Use cases for this method may include:
+
+- Inspecting transaction details for debugging purposes
+- Gathering data for transaction analysis
+- Fetching transaction information for specific blocks in a block explorer application
+
+## Parameters
+
+The `eth_getTransactionByBlockHashAndIndex` method accepts two parameters:
+
+- `blockHash` (required): The hash of the block containing the transaction.
+ - Example: 10123321
+- `transactionIndex`: (required): The index of the transaction within the specified block. The index is a hexadecimal value.
+ - Example: 0
+
+## Returns
+
+The method returns a JSON object containing the following fields:
+
+| Name | Description |
+| :--------------- | :------------------------------------------------------------------------------------------- |
+| hash | The transaction hash as a 32-byte hex string. |
+| nonce | The number of transactions made by the sender prior to this one. |
+| blockHash | The hash of the block in which this transaction is included. |
+| blockNumber | The block number in which this transaction is included. |
+| transactionIndex | The index of the transaction within the block. |
+| from | The address of the sender. |
+| to | The address of the recipient. `null ` if the transaction is a contract creation transaction. |
+| value | The value transferred in wei. |
+| gasPrice | The gas price provided by the sender in wei. |
+| gas | The gas limit provided by the sender. |
+| input | The data sent along with the transaction. |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "eth_getTransactionByBlockNumberAndIndex",
+ "params": [
+ 10123321,
+ 0
+ ]
+}'
+
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const tx = await tatum.rpc.getTransactionByBlockNumberAndIndex(10123321, 0)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyhash.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyhash.md
new file mode 100644
index 00000000..7550a7a3
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyhash.md
@@ -0,0 +1,66 @@
+---
+title: "eth_getTransactionByHash"
+slug: "rpc-ethereum-eth_gettransactionbyhash"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 08:47:29 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:03:29 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getTransactionByHash` is an Ethereum JSON-RPC method that allows you to query transaction details based on its hash. This method is useful when you want to retrieve information about a specific transaction, such as its sender, receiver, value, and more. Common use cases include tracking transaction status, monitoring incoming transactions, or analyzing historical transaction data.
+
+## Parameters
+
+The `eth_getTransactionByHash` method takes one parameter:
+
+- `transactionHash`: The hash of the transaction you want to retrieve. This should be a 32-byte hash string with a 0x prefix.
+ - Example: 0x97696c2014695e851d85a344cbbc6ae8ab9d386de05cb0230fe50b91c044639b
+
+## Returns
+
+The method returns a JSON object containing the following fields:
+
+| Name | Description |
+| :--------------- | :------------------------------------------------------------------------------------------- |
+| hash | The transaction hash as a 32-byte hex string. |
+| nonce | The number of transactions made by the sender prior to this one. |
+| blockHash | The hash of the block in which this transaction is included. |
+| blockNumber | The block number in which this transaction is included. |
+| transactionIndex | The index of the transaction within the block. |
+| from | The address of the sender. |
+| to | The address of the recipient. `null ` if the transaction is a contract creation transaction. |
+| value | The value transferred in wei. |
+| gasPrice | The gas price provided by the sender in wei. |
+| gas | The gas limit provided by the sender. |
+| input | The data sent along with the transaction. |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "eth_getTransactionByHash",
+ "params": ["0x97696c2014695e851d85a344cbbc6ae8ab9d386de05cb0230fe50b91c044639b"],
+ "id": 1
+}'
+
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const tx = await tatum.rpc.getTransactionByHash('0x97696c2014695e851d85a344cbbc6ae8ab9d386de05cb0230fe50b91c044639b')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactioncount.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactioncount.md
new file mode 100644
index 00000000..350da8a1
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactioncount.md
@@ -0,0 +1,70 @@
+---
+title: "eth_getTransactionCount"
+slug: "rpc-ethereum-eth_gettransactioncount"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 08:50:00 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:03:35 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getTransactionCount` method is an Ethereum JSON-RPC method that retrieves the number of transactions sent from a given address. It is a useful method for developers who need to keep track of an account's nonce value to avoid transaction collisions or incorrect order of execution. The nonce value is essential for ensuring transaction uniqueness and preventing replay attacks.
+
+## Usecase
+
+Use cases for this method include:
+
+- Determining the nonce value for a new transaction to be sent from a specific address
+- Monitoring the number of transactions sent by an address to observe its activity
+- Troubleshooting transaction issues and verifying if a transaction was submitted successfully
+
+## Parameters
+
+The `eth_getTransactionCount` method accepts two parameters:
+
+- `address`: The address whose transaction count will be retrieved.
+ - Example: 0x742d35Cc6634C0532925a3b844Bc454e4438f44e
+- `blockParameter `: A string indicating the block number or block state to consider when retrieving the transaction count.
+ - Possible values: `"earliest"`, `"latest"`, `"pending"`, or a specific block number in hexadecimal format
+ - Example: "latest"
+
+## Returns
+
+The method returns a single value:
+
+| Name | Description |
+| :--------------- | :------------------------------------------------------------------------------------------ |
+| transactionCount | A hexadecimal representation of the number of transactions sent from the specified address. |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "eth_getTransactionCount",
+ "params": [
+ "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
+ "latest"
+ ]
+}'
+
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.getTransactionCount('0x742d35Cc6634C0532925a3b844Bc454e4438f44e', 'latest')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionreceipt.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionreceipt.md
new file mode 100644
index 00000000..3cc8c6c6
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionreceipt.md
@@ -0,0 +1,69 @@
+---
+title: "eth_getTransactionReceipt"
+slug: "rpc-ethereum-eth_gettransactionreceipt"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 10:52:31 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:03:46 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getTransactionReceipt` is an Ethereum JSON-RPC method that retrieves the transaction receipt of a given transaction hash. This method is particularly useful when you need to obtain detailed information about a transaction's execution, such as its status (success or failure), gas usage, and logs (events). Common use cases include checking the status of a transaction after it has been mined or inspecting the events emitted by a smart contract during a specific transaction.
+
+## Parameters
+
+This method requires a single parameter:
+
+- `transactionHash`: The hash of the transaction for which you want to obtain the receipt.
+ - Example: "0x2a4811309750a84058d2fd1bd8dd534bf3a34039ff1b34e29f23a92dfb06449d"
+
+## Returns
+
+The method returns an object containing the following fields:
+
+| Name | Description |
+| :---------------- | :-------------------------------------------------------------------------------------------------------- |
+| transactionHash | The hash of the transaction. |
+| transactionIndex | The transaction's index position in the block. |
+| blockHash | The hash of the block where this transaction was mined. |
+| blockNumber | The block number where this transaction was mined. |
+| from | The address of the sender. |
+| to | The address of the receiver. `null `when it's a contract creation transaction. |
+| cumulativeGasUsed | The total amount of gas used when this transaction was executed in the block. |
+| gasUsed | The amount of gas used by this specific transaction alone. |
+| contractAddress | The address of the contract created, if the transaction was a contract creation. Otherwise, `null`. |
+| logs | An array of log objects, which were emitted during the transaction. |
+| logsBloom | A 256-byte bloom filter, which is a compressed representation of the logs emitted during the transaction. |
+| status | The status of the transaction's execution. `"0x1"` indicates success, while `"0x0" `indicates failure. |
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "eth_getTransactionReceipt",
+ "params": [
+ "0x2a4811309750a84058d2fd1bd8dd534bf3a34039ff1b34e29f23a92dfb06449d"
+ ]
+}'
+
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const tx = await tatum.rpc.getTransactionReceipt('0x2a4811309750a84058d2fd1bd8dd534bf3a34039ff1b34e29f23a92dfb06449d')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getunclecountbyblockhash.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getunclecountbyblockhash.md
new file mode 100644
index 00000000..cb1b411f
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getunclecountbyblockhash.md
@@ -0,0 +1,58 @@
+---
+title: "eth_getUncleCountByBlockHash"
+slug: "rpc-ethereum-eth_getunclecountbyblockhash"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 10:58:52 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:03:55 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getUncleCountByBlockHash` method is an Ethereum JSON-RPC method that returns the number of uncles in a specified block by its hash. This method can be useful for gathering information about the performance of the Ethereum network and to analyse the security of the blockchain.
+
+Uncles are blocks that are not included in the main blockchain but are still valid, and they contribute to the overall security and decentralisation of the Ethereum network. The inclusion of uncles helps prevent centralisation and ensures the mining process remains competitive.
+
+## Parameters
+
+The `eth_getUncleCountByBlockHash` method takes one parameter:
+
+- `blockHash`: The hash of the block for which you want to get the uncle count.
+ - Example: "0x827d30e914a3adeefabb9d53f70da87e6e0ed3d02a72e7d9ae9bfd1bf123c7a3"
+
+## Returns
+
+The return object for this method is a hex-encoded integer representing the number of uncles in the specified block.
+
+- Example value: "0x1" (1 uncle)
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_getUncleCountByBlockHash",
+ "params": [
+ "0x827d30e914a3adeefabb9d53f70da87e6e0ed3d02a72e7d9ae9bfd1bf123c7a3"
+ ]
+}'
+
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.getUncleCountByBlockHash('0x827d30e914a3adeefabb9d53f70da87e6e0ed3d02a72e7d9ae9bfd1bf123c7a3')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getunclecountbyblocknumber.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getunclecountbyblocknumber.md
new file mode 100644
index 00000000..1a60a886
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getunclecountbyblocknumber.md
@@ -0,0 +1,58 @@
+---
+title: "eth_getUncleCountByBlockNumber"
+slug: "rpc-ethereum-eth_getunclecountbyblocknumber"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 11:01:27 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:04:05 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `eth_getUncleCountByBlockHash` method is an Ethereum JSON-RPC method that returns the number of uncles in a specified block by its hash. This method can be useful for gathering information about the performance of the Ethereum network and to analyse the security of the blockchain.
+
+Uncles are blocks that are not included in the main blockchain but are still valid, and they contribute to the overall security and decentralisation of the Ethereum network. The inclusion of uncles helps prevent centralisation and ensures the mining process remains competitive.
+
+## Parameters
+
+The ` eth_getUncleCountByBlockHash` method takes one parameter:
+
+- `blockNumber`: The number of the block for which you want to get the uncle count.
+ - Example value: 15537345
+
+## Returns
+
+The return object for this method is a hex-encoded integer representing the number of uncles in the specified block.
+
+- Example value: "0x1" (1 uncle)
+
+## Request
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_getUncleCountByBlockNumber",
+ "params": [
+ "0xED14C1"
+ ]
+}'
+
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const result = await tatum.rpc.getUncleCountByBlockNumber(15537345)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_maxpriorityfeepergas.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_maxpriorityfeepergas.md
new file mode 100644
index 00000000..bf7e976c
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_maxpriorityfeepergas.md
@@ -0,0 +1,49 @@
+---
+title: "eth_maxPriorityFeePerGas"
+slug: "rpc-ethereum-eth_maxpriorityfeepergas"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 07:57:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:04:30 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The`eth_maxPriorityFeePerGas` RPC method is specifically designed to return the maximum priority fee per gas that is needed to be included in a block. This method is crucial for developers and users interacting with the Ethereum network, as it provides insights into the current gas fees required for transactions to be processed efficiently.
+
+## Parameters:
+
+This method does not accept any parameters. This simplicity allows for a straightforward query to obtain the current maximum priority fee per gas.
+
+## Returns
+
+The response from the `eth_maxPriorityFeePerGas` method is a string representing the maximum priority fee per gas in wei. Wei is the smallest denomination of ether, where 1 ether = 1e18 wei.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/API_KEY/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key:{API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "eth_maxPriorityFeePerGas",
+ "params": [],
+ "id": 1
+}'
+
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const gasPrice = await tatum.rpc.maxPriorityFeePerGas()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_sendrawtransaction.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_sendrawtransaction.md
new file mode 100644
index 00000000..48f732ed
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_sendrawtransaction.md
@@ -0,0 +1,56 @@
+---
+title: "eth_sendRawTransaction"
+slug: "rpc-ethereum-eth_sendrawtransaction"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 08:12:25 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:04:39 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The`eth_sendRawTransaction` RPC method is used to facilitate the transmission of a signed and serialized Ethereum transaction onto the network. This approach proves invaluable when seeking complete oversight of the signing procedure, especially when employing hardware wallets, cold storage solutions, or custom signing libraries. Its versatility shines through in multiple scenarios, including Ether transfers, smart contract interactions, and contract deployments.
+
+## Parameters
+
+`Transaction data`: This is a required parameter. It is a hex string that represents the signed transaction data. This data must be prepared and signed offline or through a wallet before being sent to the network.
+
+## Returns
+
+The response from the `eth_sendRawTransaction` method is a JSON object containing the following fields:
+
+| Name | Description |
+| :------ | :----------------------------------------------------------------------------------------------------------------- |
+| jsonrpc | A string indicating the version of the JSON-RPC protocol. It should be "2.0". |
+| id | A number that identifies the request. This should match the id value in the request. |
+| result | The transaction hash of the sent transaction. If the transaction is not yet available, this will be the zero hash. |
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "eth_sendRawTransaction",
+ "params": [
+ "0xf86d8201...94a7bc"
+ ]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const gasPrice = await tatum.rpc.sendRawTransaction('0x0000.......')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockattestations.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockattestations.md
new file mode 100644
index 00000000..9f5bc107
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockattestations.md
@@ -0,0 +1,66 @@
+---
+title: "getBlockAttestations"
+slug: "rpc-ethereum-getblockattestations"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Mon Mar 18 2024 15:39:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Apr 02 2024 08:41:39 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getBlockAttestations`** endpoint allows you to retrieve attestations associated with a specific Ethereum 2.0 Beacon Chain block.
+
+## Example use cases:
+
+1. **Attestation Analysis:** Researchers and validators can use this endpoint to analyze attestations made for a specific block.
+2. **Validator Operations:** Validators may need to retrieve attestations to check if their attestations have been included in a block.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :------- | :------- | :------------------------------------------------------------------------------------------------------ |
+| **`blockId`** | `string` | Yes | The unique block ID of the Ethereum 2.0 Beacon Chain block for which you want to retrieve attestations. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object array): The **`data`** array contains information about attestations.
+ - **aggregation_bits** (string): The attester aggregation bits
+ - **data** (object array): The AttestationData object from the CL spec
+ - **slot**: The corresponding slot
+ - **index**: The index
+ - **beacon_block_root**: The LMD GHOST vote
+ - **source** (object array): The Checkpoint
+ - **epoch** (string): The corresponding epoch
+ - **root** (string): The corresponding root
+ - **target** (object array): The Checkpoint
+ - **epoch** (string): The corresponding epoch
+ - **root** (string): The corresponding root
+ - **signature** (string): The signature
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum';
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+
+// Specify the block ID in camel case
+const blockId = '0xabcdef1234567890';
+
+// Retrieve attestations for the specified block using the tatum.rpc.beacon.v1.getBlockAttestations method
+const attestations = await tatum.rpc.beacon.v1.getBlockAttestations(blockId);
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy();
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockheader.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockheader.md
new file mode 100644
index 00000000..43e28acf
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockheader.md
@@ -0,0 +1,64 @@
+---
+title: "getBlockHeader"
+slug: "rpc-ethereum-getblockheader"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Mon Mar 18 2024 17:25:56 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:57:40 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getBlockHeader`** endpoint allows you to retrieve a specific beacon block header from the Ethereum 2.0 Beacon Chain based on its unique block ID.
+
+## Example use cases:
+
+1. **Header Retrieval:** Developers and network administrators can use this endpoint to fetch the header of a specific beacon block for analysis or verification purposes.
+2. **Validator Operations:** Validators may need to retrieve specific beacon block headers for proposing and attesting to blocks.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :------- | :------- | :------------------------------------------------------------------------------------------------------ |
+| **`blockId`** | `string` | Yes | The unique block ID of the Ethereum 2.0 Beacon Chain block for which you want to retrieve attestations. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object array): The `data` object with the following fields:
+ - **root** (string, hex): The root is a hexadecimal string representing the root hash of the beacon block header. It follows the pattern: ^0x[a-fA-F0-9]{64}$.
+ - **canonical** (boolean): `true` if the block header is considered canonical, indicating it's part of the main chain.
+ - **header** (object): The header object contains detailed information about the beacon block header.
+ - **message** (array): The BeaconBlockHeader object
+ - **slot** (string): The slot to which this block corresponds
+ - **proposer_index** (string): The index of validator in validator registry
+ - **parent_root** (string): The signing merkle root of the parent BeaconBlock
+ - **state_root** (string): The tree hash merkle root of the BeaconState for the BeaconBlock
+ - **body_root** (string): The tree hash merkle root of the BeaconBlockBody for the BeaconBlock
+ - **signature** (string): The signature
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum';
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+
+// Specify the block ID
+const BlockId = '0xabcdef1234567890';
+
+// Retrieve the beacon block header using the getBlockHeader method
+const beaconHeader = await tatum.rpc.beacon.v1.getBlockHeader({blockId: BlockId});
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy();
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockheaders.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockheaders.md
new file mode 100644
index 00000000..09d9fbcb
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockheaders.md
@@ -0,0 +1,62 @@
+---
+title: "getBlockHeaders"
+slug: "rpc-ethereum-getblockheaders"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Mon Mar 18 2024 17:00:22 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:57:50 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getBlockHeaders`** endpoint allows you to retrieve beacon block headers from the Ethereum 2.0 Beacon Chain. These headers contain important information about the chain's progress and state.
+
+## Example use cases:
+
+1. **Chain Monitoring:** Developers and network administrators can use this endpoint to monitor the progress and health of the Ethereum 2.0 Beacon Chain.
+2. **Validator Operations:** Validators can retrieve beacon block headers to perform various operations, such as proposing and attesting to blocks.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :---------------- | :------- | :------- | :------------------------------------------------------------------------------------------------------- |
+| **`slot`** | `string` | No | The slot number to fetch beacon block headers for. |
+| **`parent_root`** | string | No | The root hash of the parent beacon block header. Fetches beacon block headers for the given parent root. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object array): The **`data`** array contains a list of beacon block headers, where each header has the following structure:
+ - **root** (string, hex): The root is a hexadecimal string representing the root hash of the beacon block header. It follows the pattern: ^0x[a-fA-F0-9]{64}$.
+ - **canonical** (boolean): `true` if the block header is considered canonical, indicating it's part of the main chain.
+ - **header** (object): The header object contains detailed information about the beacon block header.
+ - **message** (array): The BeaconBlockHeader object
+ - **slot** (string): The slot to which this block corresponds
+ - **proposer_index** (string): The index of validator in validator registry
+ - **parent_root** (string): The signing merkle root of the parent BeaconBlock
+ - **state_root** (string): The tree hash merkle root of the BeaconState for the BeaconBlock
+ - **body_root** (string): The tree hash merkle root of the BeaconBlockBody for the BeaconBlock
+ - **signature** (string): The signature
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum';
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+
+// Retrieve beacon block headers using the getBlockHeaders method
+const beaconHeaders = await tatum.rpc.beacon.v1.getBlockHeaders();
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy();
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockroot.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockroot.md
new file mode 100644
index 00000000..af91f312
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockroot.md
@@ -0,0 +1,50 @@
+---
+title: "getBlockRoot"
+slug: "rpc-ethereum-getblockroot"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Mon Mar 18 2024 17:01:44 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:58:03 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getBlockRoot`** endpoint allows you to retrieve the root of a specific Ethereum Beacon Chain block or block header.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :------- | :------- | :------------------------------------------------------------------------------------------------------ |
+| **`blockId`** | `string` | Yes | The unique block ID of the Ethereum 2.0 Beacon Chain block for which you want to retrieve attestations. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object array): The `data` object with the following fields:
+ - **root** (string, hex): The root of the Beacon Block or Block Header is a hexadecimal string representing the root hash of the beacon block header. It follows the pattern: ^0x[a-fA-F0-9]{64}$.
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum';
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+
+// Specify the block ID
+const blockId = {blockId: 'your-block-id'}; // Replace with the desired block ID
+
+// Retrieve the root of the specified Ethereum Beacon Chain block or block header
+const blockRoot = await tatum.rpc.beacon.v1.getBlockRoot(blockId);
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy();
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getgenesis.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getgenesis.md
new file mode 100644
index 00000000..3d0744e8
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getgenesis.md
@@ -0,0 +1,50 @@
+---
+title: "getGenesis"
+slug: "rpc-ethereum-getgenesis"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Mon Mar 18 2024 17:43:29 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:58:06 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getGenesis`** endpoint allows you to retrieve critical information about the genesis state of the Ethereum Beacon Chain.
+
+## Example use cases:
+
+1. **Network Monitoring:** Network administrators and developers use this data to monitor and analyze the Ethereum 2.0 network's health and progress.
+2. **Validator Setup:** Validators joining the Ethereum Beacon Chain network need the genesis information to initialize their nodes correctly.
+
+## Parameters
+
+The **`getGenesis`** endpoint does not require any additional parameters. You can simply make a GET request to the endpoint to retrieve the genesis information.
+
+## Returns
+
+- **data** (object): The object with the following values:
+ - **genesis_time** (string): The genesis_time configured for the beacon node, which is the unix time in seconds at which the Eth2.0 chain began
+ - **genesis_validators_root** (string): The genesis validator root
+ - **genesis_fork_version** (string): A fork version number
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM })
+
+// Retrieve the Ethereum Beacon Chain genesis information
+const response = await tatum.rpc.beacon.v1.getGenesis()
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy()
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatecommittees.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatecommittees.md
new file mode 100644
index 00000000..804bcdcb
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatecommittees.md
@@ -0,0 +1,65 @@
+---
+title: "getStateCommittees"
+slug: "rpc-ethereum-getstatecommittees"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Mon Mar 18 2024 17:32:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:58:16 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getStateCommittees`** endpoint allows you to retrieve information about committees associated with a specific Ethereum 2.0 Beacon Chain state.
+
+## Example use cases:
+
+1. **Committee Analysis: **Researchers and validators can use this endpoint to analyze committees for a specific state, including validator indices and shard assignments.
+2. **Validator Operations:** Validators may need to retrieve committee information to participate in shard or crosslink proposals.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------- | :------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **`state_id`** | `string` | Yes | The state identifier. It can be one of: head (canonical head in node's view), genesis, finalized, justified, slot and stateRoot (hex encoded stateRoot with 0x prefix) |
+| **`epoch`** | `string` | No | Fetch committees for the given epoch. If not present, the committees for the epoch of the state will be obtained. |
+| **`index`** | `string` | No | Restrict returned values to those matching the supplied committee index. |
+| **`slot`** | string | No | Restrict returned values to those matching the supplied slot. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object array): The `data` array contains information about committees. Each committee object in the array includes details related to the committee index, slot, and an array of validators assigned to attest at a specific slot with the same committee index.
+ - **index** (string): The committee index at a slot
+ - **`slot`** (string): The slot
+ - **`validators`** (object array): The list of validator indices assigned to this committee
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM })
+
+// Define the parameters object
+const params = {
+ stateId: 'your-state-id', // Replace with the actual state ID you want to use
+ epoch: '1', // Optional: Fetch committees for a specific epoch
+ index: '1', // Optional: Restrict returned values to a specific committee index
+ slot: '1', // Optional: Restrict returned values to a specific slot
+};
+
+// Retrieve committees information using the getStateCommittees method
+const committees = await tatum.rpc.beacon.v1.getStateCommittees(params);
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy()
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatefinalitycheckpoints.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatefinalitycheckpoints.md
new file mode 100644
index 00000000..beba75e4
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatefinalitycheckpoints.md
@@ -0,0 +1,64 @@
+---
+title: "getStateFinalityCheckpoints"
+slug: "rpc-ethereum-getstatefinalitycheckpoints"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 17:43:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:58:25 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getStateFinalityCheckpoints`** endpoint allows you to retrieve the finality checkpoints associated with a specific `stateId`.
+
+## Example use cases:
+
+1. **Finality Assessment:** Developers can use finality checkpoints to assess the level of finality reached by the Ethereum Beacon Chain. By examining the `previous_justified`, `current_justified`, and `finalized` checkpoints, they can determine the state of consensus and the security of the network.
+2. **Validator Monitoring: **Validators in the Ethereum 2.0 network can use finality checkpoints to monitor the progress and stability of the network. They can track changes in the `previous_justified` and `current_justified` checkpoints to ensure they are participating in a secure and finalized chain.
+3. **Network Stability Analysis:** Network administrators and developers can monitor the network's finality checkpoints to assess its stability. Sudden changes or deviations in the `previous_justified`, `current_justified`, and `finalized` checkpoints may indicate issues or attacks on the network, prompting immediate action.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :------- | :------- | :------------------------------------------------------------------------------------------------------------- |
+| **`stateId`** | `string` | Yes | The unique identifier for the Ethereum Beacon Chain state for which you want to retrieve finality checkpoints. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object): The `data` object contains the finality checkpoints with the following structure:
+ - **`previous_justified`** (object): Provides information about the previous justified beacon block.
+ - **`epoch`** (string): The corresponding epoch
+ - **`root`** (string): The corresponding root
+ - **`current_justified`** (object): Provides information about the current justified beacon block.
+ - **`epoch`** (string): The corresponding epoch
+ - **`root`** (string): The corresponding root
+ - **`finalized`** (object): Provides information about the finalized beacon block.
+ - **`epoch`** (string): The corresponding epoch
+ - **`root`** (string): The corresponding root
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum';
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+
+// Specify the state ID
+const StateId = 'your-state-id';
+
+// Retrieve the finality checkpoints using the getStateFinalityCheckpoints method
+const finalityCheckpoints = await tatum.rpc.beacon.v1.getStateFinalityCheckpoints({stateId: StateId});
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy();
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatefork.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatefork.md
new file mode 100644
index 00000000..10befaff
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatefork.md
@@ -0,0 +1,57 @@
+---
+title: "getStateFork"
+slug: "rpc-ethereum-getstatefork"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 17:59:10 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:58:34 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getStateFork`** endpoint allows you to retrieve information about the fork associated with a specific Ethereum Beacon Chain state.
+
+## Example use cases:
+
+1. **Fork Analysis:** Developers can analyze and track forks in the Ethereum Beacon Chain to make informed decisions.
+2. **Network Monitoring:** Network administrators and developers use this data to monitor the Ethereum 2.0 network and its forks.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :------- | :------- | :--------------------------------------------------------------------------------------------------------- |
+| **`stateId`** | `string` | Yes | The unique identifier for the Ethereum Beacon Chain state for which you want to retrieve fork information. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object ): The `data` object contains the following properties:
+ - **`previous_version`** (string, hex): Previous fork version number
+ - **`current_version`** (string, hex): Current fork version number
+ - **`epoch`** (string): The epoch number
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM })
+
+// Specify the state ID
+const StateId = 'your-state-id';
+
+// Retrieve the state fork using the getStateFork method
+const stateFork = await tatum.rpc.beacon.v1.getStateFork({stateId: StateId});
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy()
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstateroot.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstateroot.md
new file mode 100644
index 00000000..b3fe1db0
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstateroot.md
@@ -0,0 +1,55 @@
+---
+title: "getStateRoot"
+slug: "rpc-ethereum-getstateroot"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 16:14:11 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:58:43 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getStateRoot`** endpoint allows you to retrieve the state root of a specific Ethereum Beacon Chain state.
+
+## Example use cases:
+
+1. **State Verification:** Developers can verify the state of the Ethereum Beacon Chain at a specific state ID.
+2. **Custom Queries:** Network administrators and developers can use this data for custom queries and analysis of the Ethereum 2.0 network.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :------- | :------- | :------------------------------------------------------------------------------------------- |
+| **`stateId`** | `string` | Yes | The unique identifier for the Ethereum Beacon Chain state you want to retrieve the root for. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object ): The `data` object contains the following properties:
+ - **root** (string, hex): The `root` is a hexadecimal string representing the HashTreeRoot of the BeaconState object. It follows the pattern:` ^0x[a-fA-F0-9]{64}$`.
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM })
+
+// Specify the state ID
+const StateId = 'your-state-id';
+
+// Retrieve the state root using the getStateRoot method
+const stateRoot = await tatum.rpc.beacon.v1.getStateRoot({stateId: StateId});
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy()
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatesynccommittees.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatesynccommittees.md
new file mode 100644
index 00000000..438eea55
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatesynccommittees.md
@@ -0,0 +1,55 @@
+---
+title: "getStateSyncCommittees"
+slug: "rpc-ethereum-getstatesynccommittees"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 16:49:25 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:58:52 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getStateSyncCommittees`** endpoint allows you to retrieve information about the sync committees of the Ethereum Beacon Chain for a specific state.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **`stateId`** | `string` | Yes | The state identifier. It can be one of: head (canonical head in node's view), genesis, finalized, justified, slot and stateRoot (hex encoded stateRoot with 0x prefix) |
+| **`epoch`** | `string` | No | To fetch sync committees for a specific epoch. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object ): The `data` object ccontains the following properties:
+ - **validators** (object array): An object array of validators participating in sync committees.
+ - **validator_aggregates** (object array): An object array of aggregated data from validators in sync committees.
+
+## Request Example
+
+```Text cURL
+
+```
+```Text JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum';
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+
+// Specify request parameters as one object
+const params = {
+ stateId: 'your-state-id',
+ epoch: 'your-epoch', // Optional: Replace with the desired epoch
+};
+
+// Retrieve sync committees for the specified state
+const syncCommittees = await tatum.rpc.beacon.v1.getStateSyncCommittees(params);
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy();
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidator.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidator.md
new file mode 100644
index 00000000..0b120b3d
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidator.md
@@ -0,0 +1,74 @@
+---
+title: "getStateValidator"
+slug: "rpc-ethereum-getstatevalidator"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 17:15:23 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:59:03 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getStateValidator`** endpoint allows you to retrieve detailed information about a specific validator in the Ethereum Beacon Chain. This information is valuable for anyone interested in understanding the status and details of a particular validator.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :---------------- | :------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **`stateId`** | `string` | Yes | The state identifier. It can be one of: head (canonical head in node's view), genesis, finalized, justified, slot and stateRoot (hex encoded stateRoot with 0x prefix) |
+| **`validatorId`** | `string` | No | Either a hex-encoded public key (any bytes48 with a 0x prefix) or a validator index. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object ): The `data` object contain the following structure:
+ - **index** (string): The index of validator in validator registry
+ - **balance** (string): The current validator balance in gwei
+ - **status** (string): The Validator status which could have possible values of:
+ - **pending_initialized**: When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue
+ - **pending_queued**: When validator is waiting to get activated, and has enough funds, etc. while in the queue, validator activation epoch keeps changing until it gets to the front and makes it through (finalization is a requirement here too)
+ - **active_ongoing**: When validator must be attesting and has not initiated any exit
+ - **active_exiting**: When validator is still active, but filed a voluntary request to exit
+ - **active_slashed**: When validator is still active, but has a slashed status and is scheduled to exit
+ - **exited_unslashed**: When validator has reached the regular exit epoch, is not being slashed, and doesn't have to attest any more, but cannot withdraw yet
+ - **exited_slashed**: When validator has reached the regular exit epoch, but was slashed, have to wait for a longer withdrawal period
+ - **withdrawal_possible**: After validator has exited, a while later is permitted to move funds and is truly out of the system
+ - **withdrawal_done**: (not possible in phase0, except slashing full balance) having moved funds away
+ - **validator** (object): Validator details containing the following fields:
+ - **pubkey** (string): The validator's BLS public key, uniquely identifying them. \_48-bytes, hex encoded with 0x prefix, case insensitive
+ - **withdrawal_crendetials** (string): The root of withdrawal credentials
+ - **effective_balance** (string): The balance at stake in Gwei
+ - **slashed** (string): The validator is slashed (no longer active) or not
+ - **activation_elgibility_epoch** (string): When criteria for activation were met
+ - **activation_epoch** (string): Epoch when validator activated. FAR_FUTURE_EPOCH if not activated
+ - **exit_epoch** (string): Epoch when validator exited
+ - **withdrawable_epoch** (string): When validator can withdraw or transfer funds. FAR_FUTURE_EPOCH if not defined
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum';
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM });
+
+// Specify the state ID and validator ID
+const params = {
+ stateId: 'your-state-id',
+ validatorId: 'validator-1',
+};
+
+// Retrieve information about a specific validator using the getStateValidator method
+const validator = await tatum.rpc.beacon.v1.getStateValidator(params);
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy();
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidatorbalances.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidatorbalances.md
new file mode 100644
index 00000000..dbae3356
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidatorbalances.md
@@ -0,0 +1,55 @@
+---
+title: "getStateValidatorBalances"
+slug: "rpc-ethereum-getstatevalidatorbalances"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 17:56:47 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:59:15 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getStateValidatorBalances`** endpoint allows you to retrieve the balances of specific validators within the Ethereum Beacon Chain state.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :----------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| **`stateId`** | `string` | Yes | The state identifier. It can be one of: head (canonical head in node's view), genesis, finalized, justified, slot and stateRoot (hex encoded stateRoot with 0x prefix) |
+| **`id`** | `array of strings` | No | specify the IDs of validators for which you want to retrieve balances. You can provide an array of hex-encoded public keys (any bytes48 with a 0x prefix) or validator indices. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object array): The `data` object array contains the following properties:
+ - **index** (string): The index of validator in validator registry
+ - **balance** (string): The current validator balance in gwei
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM })
+
+// Specify the state ID and optional array of validator IDs
+const params = {
+ state_id: 'your-state-id',
+ id: ['validator-1', 'validator-2'], // Optional
+}
+
+// Retrieve validator balances using the getStateValidatorBalances method
+const validatorBalances = await tatum.rpc.beacon.v1.getStateValidatorBalances(params);
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy()
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidators.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidators.md
new file mode 100644
index 00000000..673adf4a
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidators.md
@@ -0,0 +1,78 @@
+---
+title: "getStateValidators"
+slug: "rpc-ethereum-getstatevalidators"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Wed Mar 20 2024 18:09:48 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:59:38 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The **`getStateValidator`** endpoint allows you to retrieve detailed information about a specific validator in the Ethereum Beacon Chain. This information is valuable for anyone interested in understanding the status and details of a particular validator.
+
+## Parameters
+
+| Name | Type | Required | Description |
+| :------------ | :------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **`stateId`** | `string` | Yes | The state identifier. It can be one of: head (canonical head in node's view), genesis, finalized, justified, slot and stateRoot (hex encoded stateRoot with 0x prefix) |
+| **`id`** | `string array` | No | An array of either hex-encoded public keys (any bytes48 with a 0x prefix) or validator indices. |
+| **`status`** | `string array` | No | Validator status specification. Available values: pending_initialized, pending_queued, active_ongoing, active_exiting, active_slashed, exited_unslashed, exited_slashed, withdrawal_possible, withdrawal_done, active, pending, exited, withdrawal. |
+
+## Returns
+
+- **execution_optimistic** (boolean): `true` if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the `false` value.
+- **finalized** (boolean): If the response mentions the chain's final history picked by forks, it's `true`. Without the field, more calls are needed to compare the requested epoch with the final checkpoint.
+- **data** (object array ): The `data` object arrays contain the following structure:
+ - **index** (string): The index of validator in validator registry
+ - **balance** (string): The current validator balance in gwei
+ - **status** (string): The Validator status which could have possible values of:
+ - **pending_initialized**: When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue
+ - **pending_queued**: When validator is waiting to get activated, and has enough funds, etc. while in the queue, validator activation epoch keeps changing until it gets to the front and makes it through (finalization is a requirement here too)
+ - **active_ongoing**: When validator must be attesting and has not initiated any exit
+ - **active_exiting**: When validator is still active, but filed a voluntary request to exit
+ - **active_slashed**: When validator is still active, but has a slashed status and is scheduled to exit
+ - **exited_unslashed**: When validator has reached the regular exit epoch, is not being slashed, and doesn't have to attest any more, but cannot withdraw yet
+ - **exited_slashed**: When validator has reached the regular exit epoch, but was slashed, have to wait for a longer withdrawal period
+ - **withdrawal_possible**: After validator has exited, a while later is permitted to move funds and is truly out of the system
+ - **withdrawal_done**: (not possible in phase0, except slashing full balance) having moved funds away
+ - **validator** (object): Validator details containing the following fields:
+ - **pubkey** (string): The validator's BLS public key, uniquely identifying them. \_48-bytes, hex encoded with 0x prefix, case insensitive
+ - **withdrawal_crendetials** (string): The root of withdrawal credentials
+ - **effective_balance** (string): The balance at stake in Gwei
+ - **slashed** (string): The validator is slashed (no longer active) or not
+ - **activation_elgibility_epoch** (string): When criteria for activation were met
+ - **activation_epoch** (string): Epoch when validator activated. FAR_FUTURE_EPOCH if not activated
+ - **exit_epoch** (string): Epoch when validator exited
+ - **withdrawable_epoch** (string): When validator can withdraw or transfer funds. FAR_FUTURE_EPOCH if not defined
+
+## Request Example
+
+```Text cURL
+
+```
+```javascript JS SDK
+// Import necessary libraries and modules
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+// Initialize the Tatum SDK with Ethereum-specific parameters
+const tatum = await TatumSDK.init({ network: Network.ETHEREUM })
+
+// Specify the state ID, optional ID array, and optional status array
+const params = {
+ stateId: 'your-state-id',
+ id: ['validator-1', 'validator-2']; // Optional,
+ status: ['active', 'exited']; // Optional,
+}
+const idArray =
+const statusArray =
+
+// Retrieve information about validators using the getStateValidators method
+const validators = await tatum.rpc.beacon.v1.getStateValidators(params);
+
+// Destroy Tatum SDK - needed for stopping background jobs
+await tatum.destroy()
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_content.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_content.md
new file mode 100644
index 00000000..589d919e
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_content.md
@@ -0,0 +1,72 @@
+---
+title: "txpool_content"
+slug: "rpc-ethereum-txpool_content"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 16:51:12 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:59:48 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+`txpool+content` is specifically designed to return all pending and queued transactions currently in the transaction pool. It's important to note that this method is supported only on Geth, which is a popular Ethereum client.
+
+## Parameters
+
+`txpool_content `method does not accept any parameters. This means you can call it without needing to provide any additional information to get the current state of the transaction pool.
+
+## Returns
+
+The response from the `txpool_content` method is an array of transaction objects. Each transaction object contains several fields that provide detailed information about the `pending` transaction:
+
+| Name | Description |
+| :------------------- | :----------------------------------------------------------------------- |
+| address | The address initiating the transaction. |
+| nonce | The nonce of the sending address. |
+| blockHash | The hash of the block where the transaction was included. |
+| blockNumber | The number of the block where the transaction was included. |
+| from | The address of the sender. |
+| gas | The total amount of gas units used in the transaction. |
+| gasPrice | The price of gas for the transaction. |
+| maxFeePerGas | The maximum fee per gas unit that the sender is willing to pay. |
+| maxPriorityFeePerGas | The maximum priority fee per gas unit that the sender is willing to pay. |
+| hash | The hash of the transaction. |
+| input | The encoded transaction input data. |
+| to | The address of the recipient. |
+| transactionIndex | The index of the transaction within the block. |
+| value | The amount of Ether sent with the transaction. |
+| type | The type of the transaction. |
+| accesslist | The access list for the transaction. |
+| chainId | The ID of the chain where the transaction is valid. |
+| v | The ECDSA recovery id encoded as a hexadecimal format. |
+| r | The ECDSA signature r. |
+| s | The ECDSA signature s. |
+| yParity | Another value used for transaction signing |
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "method": "txpool_content",
+ "params": [],
+ "id": 1,
+ "jsonrpc": "2.0"
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const content = await tatum.rpc.txPoolContent()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_inspect.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_inspect.md
new file mode 100644
index 00000000..02c470ae
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_inspect.md
@@ -0,0 +1,54 @@
+---
+title: "txpool_inspect"
+slug: "rpc-ethereum-txpool_inspect"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 18:15:33 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:59:57 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+ `txpool_inspect `method is part of the txpool namespace in Ethereum's JSON-RPC API, which provides access to several non-standard RPC methods to inspect the contents of the transaction pool. This method is specifically tailored for developers to quickly see the transactions in the pool and identify any potential issues. It is used to list a textual summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
+
+## Parameters
+
+The `txpool_inspect` method does not require any parameters.
+
+## Returns
+
+The response from `txpool_inspect` is an object with two fields: pending and queued. Each of these fields is an associative array, where each entry maps an origin-address to a batch of scheduled transactions. These batches themselves are maps associating nonces with transactions summary strings:
+
+| Name | Description |
+| :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| pending | This field contains transactions that are currently pending for inclusion in the next block(s). Each entry in this field maps an origin-address to a batch of transactions. Each transaction batch is a map associating nonces with transactions summary strings. |
+| queued | This field contains transactions that are being scheduled for future execution. Similar to the pending field, each entry in this field maps an origin-address to a batch of transactions, with each transaction batch being a map associating nonces with transactions summary strings. |
+
+The transactions summary strings provide details about each transaction, including the recipient address, the amount of ether being sent (in wei), and the gas price and gas limit (in gwei and gas units, respectively).
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "txpool_inspect",
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const inspect = await tatum.rpc.txPoolInspect()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_status.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_status.md
new file mode 100644
index 00000000..4ab19fed
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_status.md
@@ -0,0 +1,55 @@
+---
+title: "txpool_status"
+slug: "rpc-ethereum-txpool_status"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, RPC"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 18:34:31 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:00:07 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+ `txpool_status` method is part of the Ethereum JSON-RPC API, which is used to query the status of the transaction pool (mempool) on an Ethereum node. This method is particularly useful for developers and analysts who need to monitor the current state of pending and queued transactions in the Ethereum network.
+
+## Parameters
+
+`txpool_status` method does not require any parameters.
+
+## Returns
+
+`txpool_status` method returns an object containing two fields; pending and queued:
+
+| Name | Description |
+| :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| pending | This field indicates the number of transactions that are currently pending in the transaction pool. Pending transactions are those that have been broadcast to the network but have not yet been included in a block. |
+| queued | This field shows the number of transactions that are queued for future execution. These transactions are not yet ready to be included in a block but are waiting for their turn based on their gas price and nonce. |
+
+The method would return a JSON object with the current status of the transaction pool, including the number of pending and queued transactions.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "method": "txpool_status",
+ "params": [],
+ "id": 1,
+ "jsonrpc": "2.0"
+}'
+```
+```javascript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const status = await tatum.rpc.txPoolStatus()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-web3_clientversion.md b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-web3_clientversion.md
new file mode 100644
index 00000000..949a1ed7
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-web3_clientversion.md
@@ -0,0 +1,48 @@
+---
+title: "web3_clientVersion"
+slug: "rpc-ethereum-web3_clientversion"
+excerpt: "Ethereum RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "ethereum, rpc"
+ robots: "index"
+createdAt: "Tue Mar 19 2024 22:33:09 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:00:25 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+`web3_clientVersion` method is part of the Ethereum JSON-RPC API, specifically designed to return the current version of the Ethereum client being used. This method is particularly useful for debugging or when you need to ensure compatibility with specific client versions.
+
+## Parameters
+
+This method does not accept any parameters. It is a simple request that does not require any input data to function.
+
+## Returns
+
+The response from the `web3_clientVersion `method will be a JSON object containing the result field, which holds the current client version in string format.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/ethereum-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "web3_clientVersion",
+ "params": [],
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Ethereum, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.ETHEREUM})
+
+const version = await tatum.rpc.clientVersion()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-others.md b/v1.0/RPC Nodes/rpc-others.md
new file mode 100644
index 00000000..cc3b95ce
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-others.md
@@ -0,0 +1,8 @@
+---
+title: "Others"
+slug: "rpc-others"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:35:03 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:02:08 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/RPC Nodes/rpc-others/ripple.md b/v1.0/RPC Nodes/rpc-others/ripple.md
new file mode 100644
index 00000000..62ad0714
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-others/ripple.md
@@ -0,0 +1,8 @@
+---
+title: "XRP"
+slug: "ripple"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:40:13 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Mar 06 2024 10:43:14 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/RPC Nodes/rpc-others/ripple/account_channels.md b/v1.0/RPC Nodes/rpc-others/ripple/account_channels.md
new file mode 100644
index 00000000..80ceac35
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-others/ripple/account_channels.md
@@ -0,0 +1,88 @@
+---
+title: "account_channels"
+slug: "account_channels"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:42:56 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Mar 06 2024 10:43:01 GMT+0000 (Coordinated Universal Time)"
+---
+How to use it
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Xrp, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.XRP})
+
+const res = await tatum.rpc.accountChannels('rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn', {
+ destinationAccount: 'ra5nK24KXen9AHvsdFTKHSANinZseWnPcX',
+ ledgerIndex: 'validated',
+})
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+Overview
+The account_channels RPC method allows you to retrieve information about an account's Payment Channels on the XRP Ledger. This includes only channels where the specified account is the source (or owner) of the channel, not the destination. The information returned is relative to a particular version of the ledger.
+Use cases for account_channels include:
+Tracking the status of open Payment Channels
+Auditing total outbound XRP from an account via Payment Channels
+Monitoring Payment Channel balances to determine if they need to be topped up
+Parameters
+The account_channels RPC method includes the following parameters:
+account: The unique identifier of an account, typically the account's Address. The request returns channels where this account is the channel's owner/source.
+destination_account (Optional): The unique identifier of an account, typically the account's Address. If provided, filter results to payment channels whose destination is this account.
+ledger_hash (Optional): A 20-byte hex string for the ledger version to use.
+ledger_index (Optional): The ledger index of the ledger to use, or a shortcut string to choose a ledger automatically.
+limit (Optional): Limit the number of transactions to retrieve. Cannot be less than 10 or more than 400. The default is 200.
+marker (Optional): Value from a previous paginated response. Resume retrieving data where that response left off.
+Return Object
+The response to the account_channels RPC call includes an array of Channel Objects, each containing the following fields:
+account (String): The address of the source/owner of the payment channels. This corresponds to the account field of the request.
+channels (Array of Channel Objects): Payment channels owned by this account. Each Channel Object includes:
+account (String): The owner of the channel, as an Address.
+amount (String): The total amount of XRP, in drops allocated to this channel.
+balance (String): The total amount of XRP, in drops, paid out from this channel, as of the ledger version used.
+channel_id (String): A unique ID for this channel, as a 64-character hexadecimal string. This is also the ID of the channel object in the ledger's state data.
+destination_account (String): The destination account of the channel, as an Address. Only this account can receive the XRP in the channel while it is open.
+settle_delay (Unsigned Integer): The number of seconds the payment channel must stay open after the owner of the channel requests to close it.
+public_key (String): May be omitted. The public key for the payment channel in the XRP Ledger's base58 format.
+public_key_hex (String): May be omitted. The public key for the payment channel in hexadecimal format.
+expiration (Unsigned Integer): May be omitted. Time, in seconds since the Ripple Epoch, when this channel is set to expire.
+cancel_after (Unsigned Integer): May be omitted. Time, in seconds since the Ripple Epoch, of this channel's immutable expiration.
+source_tag (Unsigned Integer): May be omitted. A 32-bit unsigned integer to use as a source tag for payments through this payment channel.
+destination_tag (Unsigned Integer): May be omitted. A 32-bit unsigned integer to use as a destination tag for payments through this channel.
+ledger_hash (String): May be omitted. The identifying hash of the ledger version used to generate this response.
+ledger_index (Number): The ledger index of the ledger version used to generate this response.
+validated (Boolean): May be omitted. If true, this data comes from a validated ledger version.
+limit (Number): May be omitted. The limit to how many channel objects were actually returned by this request.
+marker (Marker): May be omitted. Server-defined value for pagination. Pass this to the next call to resume getting results where this call left off.
+JSON-RPC Request Example
+{
+ "method": "account_channels",
+ "params": [{
+ "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
+ "destination_account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
+ "ledger_index": "validated"
+ }]
+}
+JSON-RPC Response Example
+{
+ "result": {
+ "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
+ "channels": [
+ {
+ "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
+ "amount": "1000",
+ "balance": "0",
+ "channel_id": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7",
+ "destination_account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
+ "public_key": "aBR7mdD75Ycs8DRhMgQ4EMUEmBArF8SEh1hfjrT2V9DQTLNbJVqw",
+ "public_key_hex": "03CFD18E689434F032A4E84C63E2A3A6472D684EAF4FD52CA67742F3E24BAE81B2",
+ "settle_delay": 60
+ }
+ ],
+ "ledger_hash": "27F530E5C93ED5C13994812787C1ED073C822BAEC7597964608F2C049C2ACD2D",
+ "ledger_index": 71766343,
+ "status": "success",
+ "validated": true
+ }
+}
+Please note, the response may contain an array of channel objects if there are multiple channels associated with the provided account.
diff --git a/v1.0/RPC Nodes/rpc-others/solana-3.md b/v1.0/RPC Nodes/rpc-others/solana-3.md
new file mode 100644
index 00000000..9cae3a99
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-others/solana-3.md
@@ -0,0 +1,8 @@
+---
+title: "Solana"
+slug: "solana-3"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:39:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Mar 06 2024 10:39:59 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/RPC Nodes/rpc-others/solana-3/getaccountinfo.md b/v1.0/RPC Nodes/rpc-others/solana-3/getaccountinfo.md
new file mode 100644
index 00000000..ba292575
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-others/solana-3/getaccountinfo.md
@@ -0,0 +1,72 @@
+---
+title: "getAccountInfo"
+slug: "getaccountinfo"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:42:06 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Mar 06 2024 10:42:11 GMT+0000 (Coordinated Universal Time)"
+---
+How to use it
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Solana, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({ network: Network.SOLANA })
+
+const res = await tatum.rpc.getAccountInfo('ChkH4bTk7c5NSGbxvXx89yY2oU7rFJsr3Cq1gPNCCPVe')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+Overview
+The getAccountInfo RPC method is used to fetch and retrieve specific and detailed information about a particular account on the Solana blockchain. This information includes the current state of the account, its associated data, and the account's current balance.
+This method could be used in scenarios where detailed account data is required, for example, to verify transactions, check account balances, or to review the account's history.
+Parameters
+The getAccountInfo method accepts two parameters:
+accountPubkey(string, required): The public key of the account for which information is to be fetched.
+Example: "ChkH4bTk7c5NSGbxvXx89yY2oU7rFJsr3Cq1gPNCCPVe"
+options (object, optional): Configuration object containing the following fields:
+commitment (string, optional): Specifies the confirmation level of data to be fetched.
+Values: finalized confirmed processed
+encoding (string, optional): Encoding format for Account data
+Values: base58 base64 base64+zstd jsonParsed
+Return object
+The getAccountInfo method returns an object containing the following fields:
+context: An object containing details about the context in which the account information was fetched.
+slot: The slot at which the data was fetched.
+value: An object containing the account's information.
+owner: The public key of the account's owner.
+lamports: The account's current balance.
+data: data associated with the account, either as encoded binary data or JSON format {: } - depending on encoding parameter
+executable: Whether the account is marked as executable.
+rentEpoch: The rent epoch value of the account.
+size: The data size of the account
+JSON-RPC Request Example
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "getAccountInfo",
+ "params": [
+ "ChkH4bTk7c5NSGbxvXx89yY2oU7rFJsr3Cq1gPNCCPVe",
+ {
+ "commitment": "finalized",
+ "encoding": "base64"
+ }
+ ]
+}
+JSON-RPC Response Example
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "context": {
+ "slot": 123456
+ },
+ "value": {
+ "owner": "Base58('11111111111111111111111111111111')",
+ "lamports": 1000000,
+ "data": "Base64('...')",
+ "executable": false,
+ "rentEpoch": 20,
+ "size": 120
+ }
+ }
+}
diff --git a/v1.0/RPC Nodes/rpc-overview.md b/v1.0/RPC Nodes/rpc-overview.md
new file mode 100644
index 00000000..d76ca79f
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-overview.md
@@ -0,0 +1,8 @@
+---
+title: "Overview"
+slug: "rpc-overview"
+excerpt: ""
+hidden: false
+createdAt: "Tue Mar 19 2024 13:25:36 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Mar 19 2024 13:25:52 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/RPC Nodes/rpc-utxo.md b/v1.0/RPC Nodes/rpc-utxo.md
new file mode 100644
index 00000000..f64abb4f
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo.md
@@ -0,0 +1,8 @@
+---
+title: "UTXO"
+slug: "rpc-utxo"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:34:40 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Mar 07 2024 13:02:03 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1.md
new file mode 100644
index 00000000..66265a4d
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1.md
@@ -0,0 +1,8 @@
+---
+title: "Bitcoin"
+slug: "bitcoin-1"
+excerpt: ""
+hidden: false
+createdAt: "Wed Mar 06 2024 10:39:28 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Mar 06 2024 10:39:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getbestblockhash.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getbestblockhash.md
new file mode 100644
index 00000000..0f7b1085
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getbestblockhash.md
@@ -0,0 +1,47 @@
+---
+title: "getbestblockhash"
+slug: "rpc-btc-getbestblockhash"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Wed Mar 06 2024 10:41:06 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:06:23 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getbestblockhash `method is part of the Bitcoin JSON-RPC API, which is used to interact with a Bitcoin node. This method specifically returns the hash of the tip block in the most-work fully-validated chain. The tip block is the most recent block in the longest chain that the node has fully validated. This method is useful for applications that need to know the current state of the blockchain, such as wallets or block explorers.
+
+## Parameters
+
+The method does not accept any parameters, which means it is straightforward to use. It simply returns the hash of the best block, represented as a hexadecimal string. This hash can then be used with other methods to retrieve more information about the block, such as its height, transactions, or confirmations.
+
+## Returns
+
+This method outputs a string representing serialized data for a block hash, encoded in hexadecimal format.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "getbestblockhash"
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const result = await tatum.rpc.getBestBlockHash()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblock.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblock.md
new file mode 100644
index 00000000..8f9335a6
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblock.md
@@ -0,0 +1,82 @@
+---
+title: "getblock"
+slug: "rpc-btc-getblock"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Tue Mar 26 2024 11:48:41 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:06:56 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getblock` is a Bitcoin RPC method that returns information about a specified block. This method is useful for obtaining block details such as the hash, height, transactions, and other metadata. It can be used for various purposes, including validating transactions, monitoring the blockchain, and analyzing the network.
+
+## Parameters
+
+- `blockhash`: The hash of the block to be retrieved.
+ - Example: "0000000000000000000ef0e1f703b56f2b0d6724e4eeccf00e4f8d55b9c3c3f6e"
+- `verbosity`: Specifies the level of detail returned for the block.
+ - `0`: Returns a serialized block as a hex-encoded string (default).
+ - `1`: Returns a JSON object with block information.
+ - `2`: Returns a JSON object with block information and detailed transaction data.
+
+## Returns
+
+The returned object varies depending on the `verbosity` parameter:
+
+- If `verbosity` is `0`, the return object is a hex-encoded string of the serialized block.
+- If `verbosity` is `1` or `2`, the return object is a JSON object containing the following fields:
+
+| Name | Description |
+| :---------------- | :------------------------------------------------------------------------------------------------------------------- |
+| hash | The block hash. |
+| confirmations | The number of confirmations for the block. |
+| strippedsize | The block size without witness data. |
+| size | The block size. |
+| transactionIndex | The index of the transaction within the block. |
+| weight | The block weight. |
+| height | The block height. |
+| version | he block version. |
+| versionHex | The block version as a hex string. |
+| merkleroot | The Merkle root of the transactions in the block. |
+| tx | An array of transaction identifiers (if `verbosity` is `1`) or detailed transaction objects (if `verbosity` is `2`). |
+| time | The block time in UNIX timestamp format. |
+| mediantime | The median block time of the previous 11 blocks. |
+| nonce | The block nonce. |
+| bits | The block difficulty target as a hex string. |
+| difficulty | The block difficulty. |
+| chainwork | he total work in the blockchain up to this block. |
+| nTx | The number of transactions in the block. |
+| previousblockhash | The hash of the previous block. |
+| nextblockhash | The hash of the next block (if available). |
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "getblock",
+ "params": [
+ "000000000000000000013d0a85b72c591500abe074a7f9175c596a194f67b82d",
+ 1
+ ]
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const result = await tatum.rpc.getBlock('000000000000000000013d0a85b72c591500abe074a7f9175c596a194f67b82d')
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockchaininfo.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockchaininfo.md
new file mode 100644
index 00000000..eb9456fa
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockchaininfo.md
@@ -0,0 +1,61 @@
+---
+title: "getblockchaininfo"
+slug: "rpc-btc-getblockchaininfo"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Tue Mar 26 2024 12:36:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:07:23 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getblockchaininfo` is a Bitcoin RPC method that provides general information about the current state of the blockchain. This method is useful for obtaining an overview of the blockchain, including the best block hash, chain height, difficulty, and network protocol version. It can be used for various purposes, such as monitoring the blockchain, tracking network upgrades, and assessing the current mining difficulty.
+
+## Returns
+
+The return object is a JSON object containing the following fields:
+
+| Name | Description |
+| :------------------- | :------------------------------------------------------------------------------------------------ |
+| chain | The current network name (e.g., "main", "test", or "regtest"). |
+| blocks | The number of blocks in the local best block chain. |
+| headers | The number of headers the local node has validated. |
+| bestblockhash | The hash of the best (tip) block. |
+| difficulty | The current mining difficulty. |
+| mediantime | The median block time of the last 11 blocks in UNIX timestamp format. |
+| verificationprogress | The estimate of the verification progress of the local node as a percentage. |
+| initialblockdownload | A boolean indicating whether the node is in the initial block download mode. |
+| chainwork | The total work in the blockchain up to the best block. |
+| size_on_disk | The estimated size of the block and undo files on disk. |
+| pruned | A boolean indicating whether the block chain is pruned. |
+| pruneheight | The lowest-height complete block stored if the node is pruned (only present if `pruned` is true). |
+| softforks | An array of objects, each containing information about a softfork. |
+| bip9_softforks | An object containing the status of BIP9 softforks in the blockchain. |
+| warnings | Any network and blockchain warnings. |
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "getblockchaininfo"
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const result = await tatum.rpc.getBlockChainInfo()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockcount.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockcount.md
new file mode 100644
index 00000000..8748bae5
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockcount.md
@@ -0,0 +1,44 @@
+---
+title: "getblockcount"
+slug: "rpc-btc-getblockcount"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ description: "Bitcoin RPC"
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Tue Mar 26 2024 12:10:23 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:07:09 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getblockcount` is a Bitcoin RPC method that returns the number of blocks in the local best blockchain. This method is useful for obtaining the current height of the blockchain, which can be used for various purposes, such as monitoring the blockchain, determining the number of confirmations for a transaction, or assessing the progress of the blockchain's growth.
+
+## Returns
+
+The returned object is an integer representing the number of blocks in the local best blockchain.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "id": 1,
+ "jsonrpc": "2.0",
+ "method": "getblockcount"
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const result = await tatum.rpc.getBlockCount()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockhash.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockhash.md
new file mode 100644
index 00000000..11bc5d1d
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockhash.md
@@ -0,0 +1,49 @@
+---
+title: "getblockhash"
+slug: "rpc-btc-getblockhash"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Mon Mar 25 2024 13:04:54 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 09:06:42 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getblockhash` method is part of the Bitcoin JSON-RPC API, which is used to interact with the Bitcoin blockchain. This method is specifically designed to return the hash of a block given its height in the blockchain. The height is a numeric value that represents the position of the block in the blockchain, starting from 0 for the genesis block.
+
+## Parameters
+
+- `height`: This is a required parameter. It is a numeric value that specifies the height index of the block in the blockchain. The height index is used to identify a block uniquely within the blockchain.
+
+## Returns
+
+- `result`: The method returns the hash of the block corresponding to the provided height. This hash is a unique identifier for the block in the Bitcoin blockchain.
+- `error`: If there is an error in processing the request, the method will return an error message detailing the issue.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "getblockhash",
+ "params": [587123],
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const result = await tatum.rpc.getBlockHash(587123)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockheader.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockheader.md
new file mode 100644
index 00000000..eaa629b7
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockheader.md
@@ -0,0 +1,71 @@
+---
+title: "getblockheader"
+slug: "rpc-btc-getblockheader"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Tue Mar 26 2024 12:49:15 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:55:10 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getblockheader` is a Bitcoin RPC method that returns information about a specified block header. This method is useful for obtaining a high-level view of a specific block, including its hash, previous block hash, merkle root, timestamp, difficulty target, and nonce, without having to fetch the entire block's contents.
+
+## Parameters
+
+- `blockhash`: The hash of the block for which the header information is requested. This is a string parameter.
+ - Example: "0000000000000000000ef0e1f703b56f2b0d6724e4eeccf00e4f8d55b9c3c3f6e"
+- `verbose`: A boolean parameter that specifies whether to return the header information in a JSON object (true) or as a serialized hex-encoded string (false). Default is true.
+ - Example: `True`
+
+## Returns
+
+If `verbose` is set to true (default), the return object is a JSON object containing the following fields:
+
+| Name | Description |
+| :---------------- | :-------------------------------------------------------------------- |
+| hash | The hash of the block. |
+| confirmations | The number of confirmations for the block. |
+| height | The height of the block in the block chain. |
+| version | The block version. |
+| versionHex | The block version formatted as a hex string. |
+| merkleroot | The merkle root of the block. |
+| time | The block timestamp in UNIX format. |
+| mediantime | The median block time of the last 11 blocks in UNIX timestamp format. |
+| nonce | The nonce value for the block. |
+| bits | The encoded difficulty target for the block. |
+| difficulty | The actual difficulty target for the block as a decimal number. |
+| chainwork | The total work in the block chain up to this block. |
+| nTx | The number of transactions in the block. |
+| previousblockhash | The hash of the previous block. |
+| nextblockhash | The hash of the next block (only present if there is a next block). |
+
+If `verbose` is set to false, the return object is a serialized hex-encoded string of the block header.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "getblockheader",
+ "params": ["0000000000000000001b4fedbfb3672963c37f965686c2bf6350e32e77f9941f", true],
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const result = await tatum.rpc.getBlockHeader("0000000000000000001b4fedbfb3672963c37f965686c2bf6350e32e77f9941f", true)
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockstats.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockstats.md
new file mode 100644
index 00000000..2d746a3d
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockstats.md
@@ -0,0 +1,88 @@
+---
+title: "getblockstats"
+slug: "rpc-btc-getblockstats"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Tue Mar 26 2024 12:59:59 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:55:19 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getblockstats` is a Bitcoin RPC method that returns various statistics about a specified block. This method is useful for obtaining detailed information about a block, including the number of transactions, transaction volume, fees, and other related data. The results can be used for data analysis, monitoring, and understanding the state of the Bitcoin network at a specific block height.
+
+## Parameters
+
+- `blockhash`: The hash of the block for which the header information is requested. This is a string parameter.
+ - Example: "0000000000000000000ef0e1f703b56f2b0d6724e4eeccf00e4f8d55b9c3c3f6e"
+- `verbose`: A boolean parameter that specifies whether to return the header information in a JSON object (true) or as a serialized hex-encoded string (false). Default is true.
+ - Example: `True`
+ - `hash_or_height`: The block hash or block height for which the statistics are requested. This parameter can be either a string (block hash) or an integer (block height).
+ - Example (block hash): "`0000000000000000000f92fb968a8d1a2a9c2039e6e99f8c7a0ee3421a44a7d6`"
+ - Example (block height): `685230`
+ - `stats` (optional): An array of strings indicating the statistics to be included in the response. If not specified, all available statistics will be returned.
+ - Example: ["txs", "avgfee"]
+
+## Returns
+
+The return object is a JSON object containing the requested statistics as key-value pairs. The available statistics are:
+
+| Name | Description |
+| :------------- | :--------------------------------------------------------- |
+| avgfee | The average transaction fee in satoshis. |
+| avgfeerate | The average fee rate in satoshis per virtual byte. |
+| avgtxsize | The average transaction size in bytes. |
+| blockhash | The hash of the block. |
+| height | The height of the block in the block chain. |
+| ins | The total number of inputs in all transactions. |
+| maxfee | The maximum transaction fee in satoshis. |
+| maxfeerate | The maximum fee rate in satoshis per virtual byte. |
+| maxtxsize | The maximum transaction size in bytes. |
+| medianfee | The median transaction fee in satoshis. |
+| mediantime | The median time for the block in UNIX timestamp format. |
+| mediantxsize | The median transaction size in bytes. |
+| minfee | The minimum transaction fee in satoshis. |
+| minfeerate | The minimum fee rate in satoshis per virtual byte. |
+| mintxsize | The minimum transaction size in bytes. |
+| outs | The total number of outputs in all transactions. |
+| subsidy | The block reward in satoshis. |
+| swtotal_size | The total size of all SegWit transactions in bytes. |
+| swtotal_weight | The total weight of all SegWit transactions. |
+| swtxs | The total number of SegWit transactions. |
+| time | The block timestamp in UNIX format. |
+| total_size | The total size of all transactions in bytes. |
+| total_weight | The total weight of all transactions. |
+| totalfee | The total transaction fees in satoshis. |
+| txs | The total number of transactions in the block. |
+| utxo_increase | The increase in the number of unspent transaction outputs. |
+| utxo_size_inc | The increase in the size of the UTXO set. |
+
+If `verbose` is set to false, the return object is a serialized hex-encoded string of the block header.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{{
+ "jsonrpc": "2.0",
+ "method": "getblockstats",
+ "params": ["0000000000000000001b4fedbfb3672963c37f965686c2bf6350e32e77f9941f"],
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const result = await tatum.rpc.getBlockStats("0000000000000000001b4fedbfb3672963c37f965686c2bf6350e32e77f9941f")
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getchaintips.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getchaintips.md
new file mode 100644
index 00000000..6bbc1645
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getchaintips.md
@@ -0,0 +1,67 @@
+---
+title: "getchaintips"
+slug: "rpc-btc-getchaintips"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Tue Mar 26 2024 13:12:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:55:24 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getchaintips` is a Bitcoin RPC method that returns information about all known tips in the block tree. This method is useful for identifying and analyzing potential forks or alternative chains in the Bitcoin network. It can be used to monitor the health and status of the network or to investigate discrepancies in blockchain data.
+
+## Returns
+
+The return object is an array of JSON objects, with each object representing a chain tip. The fields in each object are:
+
+[block:parameters]
+{
+ "data": {
+ "h-0": "Name",
+ "h-1": "Description",
+ "0-0": "height",
+ "0-1": "The height of the chain tip in the block chain.",
+ "1-0": "hash",
+ "1-1": "The hash of the block corresponding to the chain tip.",
+ "2-0": "branchlen",
+ "2-1": "The length of the branch connected to the main chain.",
+ "3-0": "status",
+ "3-1": "The status of the chain tip, which can be one of the following values: \n`active`: The tip is part of the main chain. \n`valid-fork`: The tip is part of a valid but inactive fork \n`valid-headers`: The tip is part of a valid fork but with incomplete block data. \n`headers-only`: The tip is a fork with valid headers but incomplete block data and an invalid parent block. \n`invalid`: The tip is part of an invalid fork. \n`unknown`: The tip has an unknown validation state."
+ },
+ "cols": 2,
+ "rows": 4,
+ "align": [
+ "left",
+ "left"
+ ]
+}
+[/block]
+
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "getchaintips",
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init({network: Network.BITCOIN})
+
+const result = await tatum.rpc.getChainTips()
+
+await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
+```
diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getdifficulty.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getdifficulty.md
new file mode 100644
index 00000000..4e4c9f7a
--- /dev/null
+++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getdifficulty.md
@@ -0,0 +1,43 @@
+---
+title: "getdifficulty"
+slug: "rpc-btc-getdifficulty"
+excerpt: "Bitcoin RPC"
+hidden: false
+metadata:
+ image: []
+ keywords: "bitcoin, rpc"
+ robots: "index"
+createdAt: "Wed Mar 27 2024 06:03:46 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed Apr 03 2024 08:55:29 GMT+0000 (Coordinated Universal Time)"
+---
+## Overview
+
+The `getdifficulty` is a Bitcoin RPC method that returns the current mining difficulty. The mining difficulty is a measure of how difficult it is to find a new block compared to the easiest it can ever be. This method can be used to monitor the mining difficulty, which adjusts every 2016 blocks to maintain a consistent block creation rate of approximately 10 minutes per block.
+
+## Returns
+
+A return object is a floating-point number that represents the current mining difficulty.
+
+## Request Example
+
+```curl cURL
+curl --location 'https://api.tatum.io/v3/blockchain/node/bitcoin-mainnet/' \
+--header 'Content-Type: application/json' \
+--header 'x-api-key: {API_KEY}' \
+--data '{
+ "jsonrpc": "2.0",
+ "method": "getdifficulty",
+ "id": 1
+}'
+```
+```typescript JS SDK
+// yarn add @tatumio/tatum
+
+import { TatumSDK, Bitcoin, Network } from '@tatumio/tatum'
+
+const tatum = await TatumSDK.init