From b2a189aab568572d8095aecec6fee43486f80a83 Mon Sep 17 00:00:00 2001 From: Lukas Kotol Date: Wed, 3 Apr 2024 14:55:53 +0200 Subject: [PATCH] Added all current docs --- .idea/.gitignore | 8 + .idea/docs-guides.iml | 9 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + ...is-now-a-required-parameter-for-faucets.md | 19 ++ Changelog Posts/base-new-rpc-offering.md | 27 ++ ...ch-operations-for-btc-related-endpoints.md | 11 + ...y-faucet-now-available-in-our-dashboard.md | 30 ++ Changelog Posts/cronos-new-rpc-offering.md | 26 ++ ...-extended-notifications-builder-support.md | 23 ++ .../enhanced-notifications-in-dashboard.md | 24 ++ ...lling-options-with-yearly-subscriptions.md | 20 ++ Changelog Posts/fantom-new-rpc-offering.md | 8 + .../faucets-now-available-in-tatum-sdk.md | 9 + .../flare-network-new-rpc-offering.md | 8 + ...ol-over-api-keys-createdeleteregenerate.md | 16 + .../haqq-network-new-rpc-offering.md | 8 + Changelog Posts/holesky-new-rpc-offering.md | 9 + .../horizen-eon-new-rpc-offering.md | 8 + ...fee-estimations-for-transaction-success.md | 13 + .../ipfs-features-supported-in-tatum-sdk.md | 8 + Changelog Posts/sunset-of-goerli-network.md | 8 + ...simulator-available-as-extension-in-sdk.md | 9 + Changelog Posts/welcome-to-tatumdocs.md | 8 + v0/Blockchain Data/defi-api.md | 8 + v0/Blockchain Data/defi-api/getblocks.md | 8 + v0/Blockchain Data/defi-api/getevents.md | 8 + v0/Blockchain Data/defi-api/getlatestblock.md | 8 + v0/Blockchain Data/introduction.md | 41 +++ v0/Blockchain Data/nft-api.md | 20 ++ v0/Blockchain Data/nft-api/checkowner.md | 8 + v0/Blockchain Data/nft-api/getcollections.md | 8 + v0/Blockchain Data/nft-api/getmetadata.md | 8 + v0/Blockchain Data/nft-api/getowners.md | 8 + v0/Blockchain Data/token-api.md | 17 ++ v0/Blockchain Data/token-api/gettokens.md | 8 + v0/Blockchain Data/transactions-api.md | 8 + .../transactions-api/estimatefeeblockchain.md | 8 + .../transactions-api/getblockchainfee.md | 8 + .../transactions-api/gettransactions.md | 8 + .../transactions-api/gettransactionsbyhash.md | 8 + v0/Blockchain Data/wallet-api.md | 8 + v0/Blockchain Data/wallet-api/getbalances.md | 8 + .../wallet-api/getutxosbyaddress.md | 8 + v0/Blockchain Utility InP/account.md | 8 + .../account/activateaccount.md | 8 + .../account/blockamount.md | 8 + .../account/createaccount.md | 8 + .../account/createaccountbatch.md | 8 + .../account/deactivateaccount.md | 8 + .../account/deleteallblockamount.md | 8 + .../account/deleteblockamount.md | 8 + .../account/freezeaccount.md | 8 + .../account/getaccountbalance.md | 8 + .../account/getaccountbyaccountid.md | 8 + .../account/getaccounts.md | 8 + .../account/getaccountsbycustomerid.md | 8 + .../account/getaccountscount.md | 8 + .../account/getblockamount.md | 8 + .../account/getblockamountbyid.md | 8 + .../account/unblockamountwithtransaction.md | 8 + .../account/unfreezeaccount.md | 8 + .../account/updateaccountbyaccountid.md | 8 + v0/Blockchain Utility InP/customer.md | 8 + .../customer/activatecustomer.md | 8 + .../customer/deactivatecustomer.md | 8 + .../customer/disablecustomer.md | 8 + .../customer/enablecustomer.md | 8 + .../customer/findallcustomers.md | 8 + .../getcustomerbyexternalorinternalid.md | 8 + .../customer/updatecustomer.md | 8 + v0/Blockchain Utility InP/deposit.md | 8 + .../deposit/getdeposits.md | 8 + .../deposit/getdepositscount.md | 8 + v0/Blockchain Utility InP/transaction.md | 8 + .../transaction/gettransactions-1.md | 8 + .../transaction/gettransactionsbyaccountid.md | 8 + .../gettransactionsbycustomerid.md | 8 + .../transaction/gettransactionsbyreference.md | 8 + .../transaction/sendtransaction.md | 8 + .../transaction/sendtransactionbatch.md | 8 + v0/Blockchain Utility InP/virtual-currency.md | 8 + .../virtual-currency/createcurrency.md | 8 + .../virtual-currency/getcurrency.md | 8 + .../virtual-currency/mintcurrency.md | 8 + .../virtual-currency/revokecurrency.md | 8 + .../virtual-currency/updatecurrency.md | 8 + .../contracts-deployments.md | 8 + v0/Blockchain operations/exchange-rate.md | 8 + .../execute-contract-functions.md | 8 + v0/Blockchain operations/fee-estimation.md | 8 + v0/Blockchain operations/storage-logs.md | 8 + v0/Blockchain operations/strorage-ipfs.md | 8 + v0/Blockchain operations/transact.md | 8 + v0/Blockchain operations/wallet-operations.md | 8 + v0/Blockhain Abstraction/auction.md | 8 + v0/Blockhain Abstraction/custodial.md | 8 + v0/Blockhain Abstraction/gas-pump.md | 8 + v0/Blockhain Abstraction/kms.md | 8 + v0/Blockhain Abstraction/marketplace.md | 8 + .../virtual-accounts-1.md | 8 + .../virtual-accounts-1/accounts.md | 8 + v0/Documentation/getting-started.md | 30 ++ .../getting-started/testing-this.md | 13 + v0/Guides/auth-api-keys-mainnet-vs-testnet.md | 14 + v0/Guides/blockchain-operations.md | 8 + ...cel-or-replace-a-blockchain-transaction.md | 39 +++ .../evm-like-ethereum.md | 8 + .../mnemonic-derivation-path.md | 47 +++ .../blockchain-operations/testnet-faucets.md | 50 ++++ v0/Guides/blockchain-operations/utxo.md | 8 + v0/Guides/virtual-accounts.md | 8 + .../adding-unsupported-tokens.md | 183 ++++++++++++ .../supported-tokens-out-of-the-box.md | 57 ++++ .../virtual-accounts-use-case-introduction.md | 95 ++++++ .../virtual-accounts/withdrawing-assets.md | 32 ++ v0/Learn blockchain/what-are-transactions.md | 20 ++ .../what-are-internal-transactions.md | 19 ++ ...hat-are-the-reasons-a-transaction-fails.md | 21 ++ v0/Learn blockchain/what-is-a-blockchain.md | 19 ++ .../what-is-a-token-on-blockchain.md | 35 +++ .../what-are-fungible-tokens.md | 17 ++ .../what-are-multitokens.md | 25 ++ .../what-are-native-tokens.md | 24 ++ .../what-are-non-fungible-tokens.md | 18 ++ v0/Notifications/general-transactions.md | 8 + v0/Notifications/incoming-wallet-transfers.md | 8 + .../incoming-wallet-transfers/sub_create.md | 8 + v0/Notifications/introduction-copy.md | 33 ++ v0/Notifications/outgoing-transactions.md | 8 + v0/RPC/avalanche.md | 8 + v0/RPC/bsc-copy.md | 8 + v0/RPC/ethereum.md | 8 + v0/RPC/ethereum/eth_accounts.md | 8 + v0/RPC/ethereum/eth_blocknumber.md | 8 + v0/RPC/ethereum/eth_call.md | 8 + v0/RPC/ethereum/eth_chainid.md | 8 + v0/RPC/ethereum/eth_createaccesslist.md | 8 + v0/RPC/ethereum/eth_estimategas.md | 8 + v0/RPC/ethereum/eth_feehistory.md | 8 + v0/RPC/ethereum/eth_gasprice.md | 8 + v0/RPC/ethereum/eth_getbalance.md | 8 + v0/RPC/ethereum/eth_getblockbyhash.md | 8 + v0/RPC/ethereum/eth_getblockbynumber.md | 8 + v0/RPC/ethereum/eth_getblockreceipts.md | 8 + .../eth_getblocktransactioncountbyhash.md | 8 + .../eth_getblocktransactioncountbynumber.md | 8 + v0/RPC/ethereum/eth_getcode.md | 8 + v0/RPC/ethereum/eth_getfilterchanges.md | 8 + v0/RPC/ethereum/eth_getfilterlogs.md | 8 + v0/RPC/ethereum/eth_getlogs.md | 8 + v0/RPC/ethereum/eth_getproof.md | 8 + v0/RPC/ethereum/eth_getstorageat.md | 8 + .../eth_gettransactionbyblockhashandindex.md | 8 + ...eth_gettransactionbyblocknumberandindex.md | 8 + v0/RPC/ethereum/eth_gettransactionbyhash.md | 8 + v0/RPC/ethereum/eth_gettransactioncount.md | 8 + v0/RPC/ethereum/eth_gettransactionreceipt.md | 8 + .../eth_getunclebyblockhashandindex.md | 8 + .../eth_getunclebyblocknumberandindex.md | 8 + .../ethereum/eth_getunclecountbyblockhash.md | 8 + .../eth_getunclecountbyblocknumber.md | 8 + v0/RPC/ethereum/eth_maxpriorityfeepergas.md | 8 + v0/RPC/ethereum/eth_newblockfilter.md | 8 + v0/RPC/ethereum/eth_newfilter.md | 8 + .../eth_newpendingtransactionfilter.md | 8 + v0/RPC/ethereum/eth_protocolversion.md | 8 + v0/RPC/ethereum/eth_sendprivatetransaction.md | 8 + v0/RPC/ethereum/eth_sendrawtransaction.md | 8 + v0/RPC/ethereum/eth_uninstallfilter.md | 8 + v0/RPC/ethereum/net_listening.md | 8 + v0/RPC/ethereum/net_version.md | 8 + v0/RPC/ethereum/web3_clientversion.md | 8 + v0/RPC/ethereum/web3_sha.md | 8 + v0/RPC/polygon-copy.md | 8 + v0/RPC/polygon.md | 8 + v0/TROUBLESHOOTING/blockchain-operations-1.md | 8 + .../blockchain-operations-1/tron.md | 8 + v0/TROUBLESHOOTING/contacting-support.md | 34 +++ v0/TROUBLESHOOTING/nfts.md | 8 + .../nft-polygon-matic-transaction-pending.md | 28 ++ .../blockchain-abstraction.md | 17 ++ v1.0/Blockchain Abstraction/custodial.md | 11 + v1.0/Blockchain Abstraction/gas-pump-1.md | 25 ++ v1.0/Blockchain Abstraction/nft-express.md | 23 ++ .../tatum-key-management-system-kms.md | 16 + .../kms-download-and-install-steps.md | 81 +++++ .../kms-use-case-and-functionalities.md | 57 ++++ .../transaction-simulator.md | 12 + .../virtual-accounts.md | 11 + .../virtual-accounts/adding-more-tokens.md | 183 ++++++++++++ ...hain-balance-management-and-withdrawals.md | 51 ++++ .../supported-tokens-by-default.md | 57 ++++ .../use-case-and-functionalities.md | 95 ++++++ .../virtual-accounts/va-notifications.md | 14 + ...va-order-book-future-trade-and-sealdate.md | 11 + ...g-assets-from-a-master-exchange-address.md | 44 +++ ...ithdrawing-assets-from-virtual-accounts.md | 32 ++ v1.0/Blockchain Data/blockchain-data.md | 13 + v1.0/Blockchain Data/data-api-old.md | 8 + .../data-api-old/checkownerold.md | 8 + .../data-api-old/getbalancesold.md | 8 + .../data-api-old/getblocksold.md | 8 + .../data-api-old/getcollectionsold.md | 8 + .../data-api-old/geteventsold.md | 8 + .../data-api-old/getlatestblockold.md | 8 + .../data-api-old/getmetadataold.md | 8 + .../data-api-old/getownersold.md | 8 + .../data-api-old/gettokensold.md | 8 + .../data-api-old/gettransactionsbyhashold.md | 8 + .../data-api-old/gettransactionsold.md | 8 + .../data-api-old/getutxosbyaddressold.md | 8 + v1.0/Blockchain Data/data-insights.md | 15 + v1.0/Blockchain Data/defi-api.md | 8 + v1.0/Blockchain Data/defi-api/getblocks.md | 8 + v1.0/Blockchain Data/defi-api/getevents.md | 8 + .../defi-api/getlatestblock.md | 8 + v1.0/Blockchain Data/insights.md | 8 + .../insights/fungible-tokens-data.md | 8 + v1.0/Blockchain Data/insights/nfts-2.md | 8 + ...nft-mint-and-transfer-to-recipient-copy.md | 125 ++++++++ ...rand-nft-mint-and-transfer-to-recipient.md | 94 ++++++ .../nft-creating-your-own-collection.md | 90 ++++++ .../insights/nfts-2/nft-minting-nfts.md | 98 ++++++ v1.0/Blockchain Data/insights/wallet-data.md | 8 + v1.0/Blockchain Data/nft-api.md | 22 ++ v1.0/Blockchain Data/nft-api/checkowner.md | 8 + .../Blockchain Data/nft-api/getcollections.md | 8 + v1.0/Blockchain Data/nft-api/getmetadata.md | 8 + v1.0/Blockchain Data/nft-api/getowners.md | 8 + v1.0/Blockchain Data/notifications.md | 23 ++ .../notifications/notification-types.md | 9 + .../notification-types/address-event-1.md | 182 +++++++++++ .../contract-address-log-event-1.md | 81 +++++ .../failed-transactions-in-a-block-1.md | 81 +++++ .../incoming-internal-transactions-1.md | 72 +++++ .../incoming-multitokens-1.md | 74 +++++ .../incoming-native-transactions-1.md | 77 +++++ .../notification-types/incoming-nfts-1.md | 85 ++++++ .../notification-types/incoming-tokens-1.md | 81 +++++ .../outgoing-failed-transactions-1.md | 83 ++++++ .../outgoing-internal-transactions-1.md | 72 +++++ .../outgoing-multitokens-1.md | 76 +++++ .../outgoing-native-transactions-1.md | 76 +++++ .../notification-types/outgoing-nfts-1.md | 85 ++++++ .../notification-types/outgoing-tokens-1.md | 81 +++++ .../notification-types/paid-fee-1.md | 88 ++++++ .../notifications/notification-workflow.md | 147 +++++++++ ...t-all-existing-monitoring-subscriptions.md | 88 ++++++ .../get-all-sent-notifications.md | 143 +++++++++ .../notification-workflow/handling-re-orgs.md | 30 ++ .../start-monitoring-of-the-address.md | 106 +++++++ .../stop-monitoring-of-the-address.md | 47 +++ ...supported-types-and-blockchain-networks.md | 63 ++++ v1.0/Blockchain Data/token-api.md | 8 + v1.0/Blockchain Data/token-api/gettokens.md | 8 + v1.0/Blockchain Data/transactions-api.md | 8 + .../transactions-api/estimatefeeblockchain.md | 8 + .../transactions-api/getblockchainfee.md | 8 + .../transactions-api/gettransactions.md | 8 + .../transactions-api/gettransactionsbyhash.md | 8 + v1.0/Blockchain Data/wallet-api.md | 8 + .../Blockchain Data/wallet-api/getbalances.md | 8 + .../wallet-api/getutxosbyaddress.md | 8 + v1.0/Blockchain Node RPC/node-rpc.md | 8 + .../node-rpc/nodejsonpostrpcdriver.md | 8 + .../node-rpc/nodejsonrpcgetdriver.md | 8 + .../node-rpc/nodejsonrpcputdriver.md | 8 + .../blockchain-operations.md | 18 ++ .../contract-deployment.md | 18 ++ .../contract-deployment/auction-1.md | 29 ++ .../contract-deployment/marketplace-1.md | 17 ++ v1.0/Blockchain Operations/exchange-rates.md | 12 + v1.0/Blockchain Operations/fee-estimation.md | 12 + v1.0/Blockchain Operations/storage.md | 11 + v1.0/Blockchain Operations/transact.md | 8 + .../transact/building-a-utxo-transaction.md | 82 +++++ .../wallet-operations.md | 12 + v1.0/Blockchain/algorand.md | 8 + v1.0/Blockchain/algorand/algonodegetdriver.md | 8 + .../algorand/algonodeindexergetdriver.md | 8 + .../Blockchain/algorand/algonodepostdriver.md | 8 + .../algorandblockchainreceiveasset.md | 8 + .../algorand/algorandblockchaintransfer.md | 8 + v1.0/Blockchain/algorand/algorandbroadcast.md | 8 + .../algorand/algorandgenerateaddress.md | 8 + .../algorand/algorandgeneratewallet.md | 8 + .../Blockchain/algorand/algorandgetbalance.md | 8 + v1.0/Blockchain/algorand/algorandgetblock.md | 8 + .../algorand/algorandgetcurrentblock.md | 8 + .../algorandgetpaytransactionsbyfromto.md | 8 + .../algorand/algorandgettransaction.md | 8 + v1.0/Blockchain/bitcoin-cash.md | 8 + v1.0/Blockchain/bitcoin-cash/bchbroadcast.md | 8 + .../bitcoin-cash/bchgenerateaddress.md | 8 + .../bchgenerateaddressprivatekey.md | 8 + .../bitcoin-cash/bchgeneratewallet.md | 8 + v1.0/Blockchain/bitcoin-cash/bchgetblock.md | 8 + .../bitcoin-cash/bchgetblockchaininfo.md | 8 + .../bitcoin-cash/bchgetblockhash.md | 8 + .../bitcoin-cash/bchgetrawtransaction.md | 8 + .../bitcoin-cash/bchgettxbyaddress.md | 8 + v1.0/Blockchain/bitcoin-cash/bchrpcdriver.md | 8 + .../bitcoin-cash/bchtransferblockchain.md | 8 + v1.0/Blockchain/bitcoin.md | 8 + v1.0/Blockchain/bitcoin/btcbroadcast.md | 8 + v1.0/Blockchain/bitcoin/btcgenerateaddress.md | 8 + .../bitcoin/btcgenerateaddressprivatekey.md | 8 + v1.0/Blockchain/bitcoin/btcgeneratewallet.md | 8 + .../bitcoin/btcgetbalanceofaddress.md | 8 + .../bitcoin/btcgetbalanceofaddressbatch.md | 8 + v1.0/Blockchain/bitcoin/btcgetblock.md | 8 + .../bitcoin/btcgetblockchaininfo.md | 8 + v1.0/Blockchain/bitcoin/btcgetblockhash.md | 8 + v1.0/Blockchain/bitcoin/btcgetmempool.md | 8 + .../bitcoin/btcgetrawtransaction.md | 8 + v1.0/Blockchain/bitcoin/btcgettxbyaddress.md | 8 + v1.0/Blockchain/bitcoin/btcgetutxo.md | 8 + v1.0/Blockchain/bitcoin/btcrpcdriver.md | 8 + .../bitcoin/btctransferblockchain.md | 8 + v1.0/Blockchain/bnb-beacon-chain.md | 8 + .../bnb-beacon-chain/bnbblockchaintransfer.md | 8 + .../bnb-beacon-chain/bnbbroadcast.md | 8 + .../bnb-beacon-chain/bnbgeneratewallet.md | 8 + .../bnb-beacon-chain/bnbgetaccount.md | 8 + .../bnb-beacon-chain/bnbgetblock.md | 8 + .../bnb-beacon-chain/bnbgetcurrentblock.md | 8 + .../bnb-beacon-chain/bnbgettransaction.md | 8 + .../bnb-beacon-chain/bnbgettxbyaccount.md | 8 + v1.0/Blockchain/bnb-smart-chain.md | 8 + .../bscblockchainsmartcontractinvocation.md | 8 + .../bnb-smart-chain/bscblockchaintransfer.md | 8 + .../bnb-smart-chain/bscbroadcast.md | 8 + .../bnb-smart-chain/bscgenerateaddress.md | 8 + .../bscgenerateaddressprivatekey.md | 8 + .../bnb-smart-chain/bscgeneratewallet.md | 8 + .../bnb-smart-chain/bscgetbalance.md | 8 + .../Blockchain/bnb-smart-chain/bscgetblock.md | 8 + .../bnb-smart-chain/bscgetcurrentblock.md | 8 + .../bnb-smart-chain/bscgettransaction.md | 8 + .../bnb-smart-chain/bscgettransactioncount.md | 8 + .../bnb-smart-chain/bscweb3driver.md | 8 + v1.0/Blockchain/cardano.md | 8 + v1.0/Blockchain/cardano/adabroadcast.md | 8 + v1.0/Blockchain/cardano/adagenerateaddress.md | 8 + .../cardano/adagenerateaddressprivatekey.md | 8 + v1.0/Blockchain/cardano/adageneratewallet.md | 8 + v1.0/Blockchain/cardano/adagetaccount.md | 8 + v1.0/Blockchain/cardano/adagetblock.md | 8 + .../cardano/adagetblockchaininfo.md | 8 + .../cardano/adagetrawtransaction.md | 8 + v1.0/Blockchain/cardano/adagettxbyaddress.md | 8 + .../Blockchain/cardano/adagetutxobyaddress.md | 8 + .../cardano/adatransferblockchain.md | 8 + v1.0/Blockchain/celo.md | 8 + .../celoblockchainsmartcontractinvocation.md | 8 + .../Blockchain/celo/celoblockchaintransfer.md | 8 + v1.0/Blockchain/celo/celobroadcast.md | 8 + v1.0/Blockchain/celo/celogenerateaddress.md | 8 + .../celo/celogenerateaddressprivatekey.md | 8 + v1.0/Blockchain/celo/celogeneratewallet.md | 8 + v1.0/Blockchain/celo/celogetbalance.md | 8 + v1.0/Blockchain/celo/celogetblock.md | 8 + v1.0/Blockchain/celo/celogetcurrentblock.md | 8 + v1.0/Blockchain/celo/celogettransaction.md | 8 + .../celo/celogettransactionbyaddress.md | 8 + .../celo/celogettransactioncount.md | 8 + v1.0/Blockchain/celo/celoweb3driver.md | 8 + v1.0/Blockchain/dogecoin.md | 8 + v1.0/Blockchain/dogecoin/dogebroadcast.md | 8 + .../dogecoin/dogegenerateaddress.md | 8 + .../dogecoin/dogegenerateaddressprivatekey.md | 8 + .../Blockchain/dogecoin/dogegeneratewallet.md | 8 + .../dogecoin/dogegetbalanceofaddress.md | 8 + .../dogecoin/dogegetbalanceofaddressbatch.md | 8 + v1.0/Blockchain/dogecoin/dogegetblock.md | 8 + .../dogecoin/dogegetblockchaininfo.md | 8 + v1.0/Blockchain/dogecoin/dogegetblockhash.md | 8 + v1.0/Blockchain/dogecoin/dogegetmempool.md | 8 + .../dogecoin/dogegetrawtransaction.md | 8 + .../Blockchain/dogecoin/dogegettxbyaddress.md | 8 + v1.0/Blockchain/dogecoin/dogegetutxo.md | 8 + v1.0/Blockchain/dogecoin/dogerpcdriver.md | 8 + .../dogecoin/dogetransferblockchain.md | 8 + v1.0/Blockchain/elrond.md | 8 + .../elrond/egldblockchaintransfer.md | 8 + v1.0/Blockchain/elrond/egldbroadcast.md | 8 + v1.0/Blockchain/elrond/egldgenerateaddress.md | 8 + .../elrond/egldgenerateaddressprivatekey.md | 8 + v1.0/Blockchain/elrond/egldgeneratewallet.md | 8 + v1.0/Blockchain/elrond/egldgetbalance.md | 8 + v1.0/Blockchain/elrond/egldgetblock.md | 8 + v1.0/Blockchain/elrond/egldgetcurrentblock.md | 8 + v1.0/Blockchain/elrond/egldgettransaction.md | 8 + .../elrond/egldgettransactionaddress.md | 8 + .../elrond/egldgettransactioncount.md | 8 + v1.0/Blockchain/elrond/egldnodeget.md | 8 + v1.0/Blockchain/elrond/egldnodepost.md | 8 + v1.0/Blockchain/ethereum-1.md | 8 + .../ethblockchainsmartcontractinvocation.md | 8 + .../ethereum-1/ethblockchaintransfer.md | 8 + v1.0/Blockchain/ethereum-1/ethbroadcast.md | 8 + .../ethereum-1/ethgenerateaddress.md | 8 + .../ethgenerateaddressprivatekey.md | 8 + .../ethereum-1/ethgeneratewallet.md | 8 + v1.0/Blockchain/ethereum-1/ethgetbalance.md | 8 + v1.0/Blockchain/ethereum-1/ethgetblock.md | 8 + .../ethereum-1/ethgetcurrentblock.md | 8 + .../ethgetinternaltransactionbyaddress.md | 8 + .../ethereum-1/ethgettransaction.md | 8 + .../ethereum-1/ethgettransactionbyaddress.md | 8 + .../ethereum-1/ethgettransactioncount.md | 8 + v1.0/Blockchain/ethereum-1/ethweb3driver.md | 8 + v1.0/Blockchain/flow.md | 8 + .../Blockchain/flow/flowaddpubkeytoaddress.md | 8 + .../flow/flowcreateaddressfrompubkey.md | 8 + v1.0/Blockchain/flow/flowgenerateaddress.md | 8 + v1.0/Blockchain/flow/flowgeneratepubkey.md | 8 + .../flow/flowgeneratepubkeyprivatekey.md | 8 + v1.0/Blockchain/flow/flowgeneratewallet.md | 8 + v1.0/Blockchain/flow/flowgetaccount.md | 8 + v1.0/Blockchain/flow/flowgetblock.md | 8 + v1.0/Blockchain/flow/flowgetblockchaininfo.md | 8 + v1.0/Blockchain/flow/flowgetblockevents.md | 8 + v1.0/Blockchain/flow/flowgetrawtransaction.md | 8 + .../Blockchain/flow/flowtransferblockchain.md | 8 + .../flow/flowtransfercustomblockchain.md | 8 + v1.0/Blockchain/harmony.md | 8 + .../oneblockchainsmartcontractinvocation.md | 8 + .../harmony/oneblockchaintransfer.md | 8 + v1.0/Blockchain/harmony/onebroadcast.md | 8 + v1.0/Blockchain/harmony/oneformataddress.md | 8 + v1.0/Blockchain/harmony/onegenerateaddress.md | 8 + .../harmony/onegenerateaddressprivatekey.md | 8 + v1.0/Blockchain/harmony/onegeneratewallet.md | 8 + v1.0/Blockchain/harmony/onegetbalance.md | 8 + v1.0/Blockchain/harmony/onegetblock.md | 8 + v1.0/Blockchain/harmony/onegetcurrentblock.md | 8 + v1.0/Blockchain/harmony/onegettransaction.md | 8 + .../harmony/onegettransactioncount.md | 8 + v1.0/Blockchain/harmony/oneweb3driver.md | 8 + v1.0/Blockchain/klaytn.md | 8 + ...klaytnblockchainsmartcontractinvocation.md | 8 + .../klaytn/klaytnblockchaintransfer.md | 8 + v1.0/Blockchain/klaytn/klaytnbroadcast.md | 8 + .../klaytn/klaytngenerateaddress.md | 8 + .../klaytn/klaytngenerateaddressprivatekey.md | 8 + .../Blockchain/klaytn/klaytngeneratewallet.md | 8 + v1.0/Blockchain/klaytn/klaytngetbalance.md | 8 + v1.0/Blockchain/klaytn/klaytngetblock.md | 8 + .../klaytn/klaytngetcurrentblock.md | 8 + .../Blockchain/klaytn/klaytngettransaction.md | 8 + .../klaytn/klaytngettransactioncount.md | 8 + v1.0/Blockchain/klaytn/klaytnweb3driver.md | 8 + v1.0/Blockchain/kucoin.md | 8 + .../kcsblockchainsmartcontractinvocation.md | 8 + .../kucoin/kcsblockchaintransfer.md | 8 + v1.0/Blockchain/kucoin/kcsbroadcast.md | 8 + v1.0/Blockchain/kucoin/kcsgenerateaddress.md | 8 + .../kucoin/kcsgenerateaddressprivatekey.md | 8 + v1.0/Blockchain/kucoin/kcsgeneratewallet.md | 8 + v1.0/Blockchain/kucoin/kcsgetbalance.md | 8 + v1.0/Blockchain/kucoin/kcsgetblock.md | 8 + v1.0/Blockchain/kucoin/kcsgetcurrentblock.md | 8 + v1.0/Blockchain/kucoin/kcsgettransaction.md | 8 + .../kucoin/kcsgettransactioncount.md | 8 + v1.0/Blockchain/kucoin/kcsweb3driver.md | 8 + v1.0/Blockchain/litecoin.md | 8 + v1.0/Blockchain/litecoin/ltcbroadcast.md | 8 + .../Blockchain/litecoin/ltcgenerateaddress.md | 8 + .../litecoin/ltcgenerateaddressprivatekey.md | 8 + v1.0/Blockchain/litecoin/ltcgeneratewallet.md | 8 + .../litecoin/ltcgetbalanceofaddress.md | 8 + .../litecoin/ltcgetbalanceofaddressbatch.md | 8 + v1.0/Blockchain/litecoin/ltcgetblock.md | 8 + .../litecoin/ltcgetblockchaininfo.md | 8 + v1.0/Blockchain/litecoin/ltcgetblockhash.md | 8 + v1.0/Blockchain/litecoin/ltcgetmempool.md | 8 + .../litecoin/ltcgetrawtransaction.md | 8 + v1.0/Blockchain/litecoin/ltcgettxbyaddress.md | 8 + v1.0/Blockchain/litecoin/ltcgetutxo.md | 8 + v1.0/Blockchain/litecoin/ltcrpcdriver.md | 8 + .../litecoin/ltctransferblockchain.md | 8 + v1.0/Blockchain/polygon-1.md | 8 + ...olygonblockchainsmartcontractinvocation.md | 8 + .../polygon-1/polygonblockchaintransfer.md | 8 + v1.0/Blockchain/polygon-1/polygonbroadcast.md | 8 + .../polygon-1/polygongenerateaddress.md | 8 + .../polygongenerateaddressprivatekey.md | 8 + .../polygon-1/polygongeneratewallet.md | 8 + .../Blockchain/polygon-1/polygongetbalance.md | 8 + v1.0/Blockchain/polygon-1/polygongetblock.md | 8 + .../polygon-1/polygongetcurrentblock.md | 8 + .../polygon-1/polygongettransaction.md | 8 + .../polygongettransactionbyaddress.md | 8 + .../polygon-1/polygongettransactioncount.md | 8 + .../Blockchain/polygon-1/polygonweb3driver.md | 8 + v1.0/Blockchain/solana.md | 8 + .../solana/solanablockchaintransfer.md | 8 + .../solana/solanabroadcastconfirm.md | 8 + .../Blockchain/solana/solanageneratewallet.md | 8 + v1.0/Blockchain/solana/solanagetbalance.md | 8 + v1.0/Blockchain/solana/solanagetblock.md | 8 + .../solana/solanagetcurrentblock.md | 8 + .../Blockchain/solana/solanagettransaction.md | 8 + v1.0/Blockchain/solana/solanaweb3driver.md | 8 + v1.0/Blockchain/stellar.md | 8 + v1.0/Blockchain/stellar/xlmbroadcast.md | 8 + v1.0/Blockchain/stellar/xlmgetaccountinfo.md | 8 + v1.0/Blockchain/stellar/xlmgetaccounttx.md | 8 + v1.0/Blockchain/stellar/xlmgetfee.md | 8 + .../stellar/xlmgetlastclosedledger.md | 8 + v1.0/Blockchain/stellar/xlmgetledger.md | 8 + v1.0/Blockchain/stellar/xlmgetledgertx.md | 8 + v1.0/Blockchain/stellar/xlmgettransaction.md | 8 + .../stellar/xlmtransferblockchain.md | 8 + .../stellar/xlmtrustlineblockchain.md | 8 + v1.0/Blockchain/stellar/xlmwallet.md | 8 + v1.0/Blockchain/tron-1.md | 8 + v1.0/Blockchain/tron-1/generatetronwallet.md | 8 + v1.0/Blockchain/tron-1/tronaccounttx.md | 8 + v1.0/Blockchain/tron-1/tronaccounttx20.md | 8 + v1.0/Blockchain/tron-1/tronbroadcast.md | 8 + v1.0/Blockchain/tron-1/troncreatetrc10.md | 8 + v1.0/Blockchain/tron-1/troncreatetrc20.md | 8 + v1.0/Blockchain/tron-1/tronfreeze.md | 8 + v1.0/Blockchain/tron-1/trongenerateaddress.md | 8 + .../tron-1/trongenerateaddressprivatekey.md | 8 + v1.0/Blockchain/tron-1/trongetaccount.md | 8 + v1.0/Blockchain/tron-1/trongetblock.md | 8 + v1.0/Blockchain/tron-1/trongetcurrentblock.md | 8 + v1.0/Blockchain/tron-1/trongettransaction.md | 8 + v1.0/Blockchain/tron-1/trontransfer.md | 8 + v1.0/Blockchain/tron-1/trontransfertrc10.md | 8 + v1.0/Blockchain/tron-1/trontransfertrc20.md | 8 + v1.0/Blockchain/tron-1/trontrc10detail.md | 8 + v1.0/Blockchain/tron-1/tronunfreeze.md | 8 + v1.0/Blockchain/vechain.md | 8 + .../vechain/vetblockchaintransfer.md | 8 + v1.0/Blockchain/vechain/vetbroadcast.md | 8 + v1.0/Blockchain/vechain/vetgenerateaddress.md | 8 + .../vechain/vetgenerateaddressprivatekey.md | 8 + v1.0/Blockchain/vechain/vetgeneratewallet.md | 8 + v1.0/Blockchain/vechain/vetgetbalance.md | 8 + v1.0/Blockchain/vechain/vetgetblock.md | 8 + v1.0/Blockchain/vechain/vetgetcurrentblock.md | 8 + v1.0/Blockchain/vechain/vetgetenergy.md | 8 + v1.0/Blockchain/vechain/vetgettransaction.md | 8 + .../vechain/vetgettransactionreceipt.md | 8 + v1.0/Blockchain/xinfin.md | 8 + .../xdcblockchainsmartcontractinvocation.md | 8 + .../xinfin/xdcblockchaintransfer.md | 8 + v1.0/Blockchain/xinfin/xdcbroadcast.md | 8 + v1.0/Blockchain/xinfin/xdcgenerateaddress.md | 8 + .../xinfin/xdcgenerateaddressprivatekey.md | 8 + v1.0/Blockchain/xinfin/xdcgeneratewallet.md | 8 + v1.0/Blockchain/xinfin/xdcgetbalance.md | 8 + v1.0/Blockchain/xinfin/xdcgetblock.md | 8 + v1.0/Blockchain/xinfin/xdcgetcurrentblock.md | 8 + v1.0/Blockchain/xinfin/xdcgettransaction.md | 8 + .../xinfin/xdcgettransactioncount.md | 8 + v1.0/Blockchain/xinfin/xdcweb3driver.md | 8 + v1.0/Blockchain/xrp.md | 8 + v1.0/Blockchain/xrp/xrpaccountsettings.md | 8 + v1.0/Blockchain/xrp/xrpbroadcast.md | 8 + v1.0/Blockchain/xrp/xrpgetaccountbalance.md | 8 + v1.0/Blockchain/xrp/xrpgetaccountinfo.md | 8 + v1.0/Blockchain/xrp/xrpgetaccounttx.md | 8 + v1.0/Blockchain/xrp/xrpgetfee.md | 8 + v1.0/Blockchain/xrp/xrpgetlastclosedledger.md | 8 + v1.0/Blockchain/xrp/xrpgetledger.md | 8 + v1.0/Blockchain/xrp/xrpgettransaction.md | 8 + v1.0/Blockchain/xrp/xrptransferblockchain.md | 8 + v1.0/Blockchain/xrp/xrptrustlineblockchain.md | 8 + v1.0/Blockchain/xrp/xrpwallet.md | 8 + v1.0/Documentation/getting-started.md | 32 ++ .../getting-started/authentication-1.md | 99 ++++++ .../getting-started/create-your-first-app.md | 8 + .../getting-started/testnet-faucets.md | 50 ++++ v1.0/Fee estimation/blockchain-fees.md | 8 + .../blockchain-fees/bscestimategas.md | 8 + .../blockchain-fees/celoestimategas.md | 8 + .../blockchain-fees/egldestimategas.md | 8 + .../estimatefeeblockchain-1.md | 8 + .../blockchain-fees/ethestimategas.md | 8 + .../blockchain-fees/ethestimategasbatch.md | 8 + .../blockchain-fees/getblockchainfee-1.md | 8 + .../blockchain-fees/kcsestimategas.md | 8 + .../blockchain-fees/klaytnestimategas.md | 8 + .../blockchain-fees/oneestimategas.md | 8 + .../blockchain-fees/polygonestimategas.md | 8 + .../blockchain-fees/vetestimategas.md | 8 + .../blockchain-fees/xdcestimategas.md | 8 + .../virtual-account-blockchain-fees.md | 8 + .../offchainestimatefee.md | 8 + .../Learn blockchain/what-are-transactions.md | 20 ++ .../what-are-internal-transactions.md | 19 ++ ...hat-are-the-reasons-a-transaction-fails.md | 21 ++ v1.0/Learn blockchain/what-is-a-blockchain.md | 19 ++ .../what-is-a-token-on-blockchain.md | 35 +++ .../what-are-fungible-tokens.md | 17 ++ .../what-are-multitokens.md | 25 ++ .../what-are-native-tokens.md | 24 ++ .../what-are-non-fungible-tokens.md | 18 ++ v1.0/REFERENCE/api.md | 10 + v1.0/REFERENCE/javascripttypescript.md | 8 + .../javascripttypescript/fungible-tokens.md | 23 ++ .../create-a-fungible-token.md | 150 ++++++++++ ...et-all-fungible-tokens-the-wallet-holds.md | 176 +++++++++++ .../get-metadata-of-a-fungible-token.md | 146 +++++++++ ...show-fungible-token-history-of-a-wallet.md | 203 +++++++++++++ v1.0/REFERENCE/javascripttypescript/ipfs-1.md | 26 ++ .../ipfs-1/upload-file.md | 105 +++++++ .../javascripttypescript/javascript-sdk.md | 70 +++++ ...uild-your-first-web3-app-with-tatum-sdk.md | 144 +++++++++ .../javascript-sdk/configuration-options.md | 149 +++++++++ .../javascript-sdk/logging.md | 87 ++++++ .../javascript-sdk/quick-start.md | 28 ++ .../javascript-sdk/submodules.md | 55 ++++ v1.0/REFERENCE/javascripttypescript/nfts-1.md | 39 +++ ...check-if-the-wallet-owns-a-specific-nft.md | 134 +++++++++ .../create-multitoken-nft-collection.md | 130 ++++++++ .../nfts-1/create-nft-collection.md | 149 +++++++++ .../get-all-nfts-in-the-nft-collection.md | 176 +++++++++++ .../nfts-1/get-all-nfts-the-wallet-holds.md | 186 ++++++++++++ .../get-the-metadata-of-a-specific-nft.md | 135 +++++++++ .../nfts-1/retrieve-the-owner-of-the-nft.md | 130 ++++++++ .../show-the-nft-history-of-a-wallet.md | 202 +++++++++++++ .../trace-the-history-of-a-specific-nft.md | 214 +++++++++++++ .../sdk-exchange-rates.md | 19 ++ ...rrent-exchange-rate-of-the-crypto-asset.md | 76 +++++ ...ates-for-multiple-crypto-assets-at-once.md | 77 +++++ .../supported-crypto-currencies.md | 108 +++++++ .../sdk-exchange-rates/supported-fiats.md | 182 +++++++++++ .../sdk-fee-estimation.md | 64 ++++ .../sdk-fee-estimation/getcurrentfee.md | 118 ++++++++ .../javascripttypescript/sdk-notifications.md | 11 + .../sdk-transaction-simulator.md | 127 ++++++++ .../simulate-transfer-erc20.md | 129 ++++++++ .../simulate-transfer.md | 117 ++++++++ .../wallet-address-operations.md | 29 ++ .../get-all-assets-the-wallet-holds.md | 223 ++++++++++++++ .../get-all-transactions-on-the-wallet.md | 282 ++++++++++++++++++ .../wallet-provider-copy.md | 115 +++++++ .../wallet-provider-copy/generate-address.md | 60 ++++ .../wallet-provider-copy/generate-mnemonic.md | 50 ++++ .../generate-private-key.md | 51 ++++ .../wallet-provider-copy/generate-xpub.md | 50 ++++ .../sign-and-broadcast-a-transaction.md | 60 ++++ .../wallet-provider-evm-copy.md | 31 ++ .../generate-address-1.md | 64 ++++ .../generate-mnemonic-1.md | 48 +++ .../generate-private-key-1.md | 50 ++++ .../generate-xpub-1.md | 52 ++++ .../sign-and-broadcast-a-transaction-1.md | 63 ++++ .../wallet-provider-tezos-copy.md | 46 +++ .../generate-address-3.md | 60 ++++ .../generate-mnemonic-3.md | 46 +++ .../generate-private-key-3.md | 48 +++ .../generate-xpub-2.md | 48 +++ .../sign-and-broadcast-a-transaction-2.md | 66 ++++ .../wallet-provider-tron-copy.md | 30 ++ .../generate-address-2.md | 51 ++++ .../generate-mnemonic-2.md | 45 +++ .../generate-private-key-2.md | 46 +++ .../get-private-key-address-and-mnemonic.md | 52 ++++ .../javascripttypescript/wallet-provider.md | 38 +++ ...-transfer-of-a-fungible-token-like-usdt.md | 70 +++++ .../build-your-own-custom-transaction.md | 94 ++++++ .../create-your-nft-collection-copy-1.md | 133 +++++++++ .../create-your-nft-collection.md | 131 ++++++++ ...your-nft-erc-1155-multitoken-collection.md | 100 +++++++ .../wallet-provider/test.md | 68 +++++ .../transfer-fungible-tokens-like-usdt.md | 84 ++++++ .../wallet-provider/transfer-native-assets.md | 77 +++++ .../wallet-provider/transfer-your-nft.md | 89 ++++++ v1.0/RPC Nodes/rpc-evm.md | 9 + v1.0/RPC Nodes/rpc-evm/rpc-arbitrum.md | 8 + .../debug_storagerangeat-arbitrum.md | 68 +++++ v1.0/RPC Nodes/rpc-evm/rpc-ethereum.md | 8 + .../rpc-ethereum-debug_storagerangeat.md | 69 +++++ .../rpc-ethereum-debug_traceblockbyhash.md | 107 +++++++ .../rpc-ethereum-debug_tracecall.md | 145 +++++++++ .../rpc-ethereum-debug_tracetransaction.md | 107 +++++++ .../rpc-ethereum-eth_blocknumber.md | 58 ++++ .../rpc-ethereum/rpc-ethereum-eth_call.md | 78 +++++ .../rpc-ethereum/rpc-ethereum-eth_chainid.md | 48 +++ .../rpc-ethereum-eth_estimategas.md | 74 +++++ .../rpc-ethereum/rpc-ethereum-eth_gasprice.md | 49 +++ .../rpc-ethereum-eth_getblockbyhash.md | 92 ++++++ .../rpc-ethereum-eth_getblockbynumber.md | 90 ++++++ .../rpc-ethereum-eth_getblockreceipts.md | 67 +++++ ...reum-eth_getblocktransactioncountbyhash.md | 58 ++++ ...um-eth_getblocktransactioncountbynumber.md | 54 ++++ .../rpc-ethereum/rpc-ethereum-eth_getcode.md | 62 ++++ .../rpc-ethereum/rpc-ethereum-eth_getlogs.md | 82 +++++ .../rpc-ethereum/rpc-ethereum-eth_getproof.md | 99 ++++++ .../rpc-ethereum-eth_getstorageat.md | 63 ++++ ...m-eth_gettransactionbyblockhashandindex.md | 79 +++++ ...eth_gettransactionbyblocknumberandindex.md | 79 +++++ .../rpc-ethereum-eth_gettransactionbyhash.md | 66 ++++ .../rpc-ethereum-eth_gettransactioncount.md | 70 +++++ .../rpc-ethereum-eth_gettransactionreceipt.md | 69 +++++ ...c-ethereum-eth_getunclecountbyblockhash.md | 58 ++++ ...ethereum-eth_getunclecountbyblocknumber.md | 58 ++++ .../rpc-ethereum-eth_maxpriorityfeepergas.md | 49 +++ .../rpc-ethereum-eth_sendrawtransaction.md | 56 ++++ .../rpc-ethereum-getblockattestations.md | 66 ++++ .../rpc-ethereum-getblockheader.md | 64 ++++ .../rpc-ethereum-getblockheaders.md | 62 ++++ .../rpc-ethereum/rpc-ethereum-getblockroot.md | 50 ++++ .../rpc-ethereum/rpc-ethereum-getgenesis.md | 50 ++++ .../rpc-ethereum-getstatecommittees.md | 65 ++++ ...pc-ethereum-getstatefinalitycheckpoints.md | 64 ++++ .../rpc-ethereum/rpc-ethereum-getstatefork.md | 57 ++++ .../rpc-ethereum/rpc-ethereum-getstateroot.md | 55 ++++ .../rpc-ethereum-getstatesynccommittees.md | 55 ++++ .../rpc-ethereum-getstatevalidator.md | 74 +++++ .../rpc-ethereum-getstatevalidatorbalances.md | 55 ++++ .../rpc-ethereum-getstatevalidators.md | 78 +++++ .../rpc-ethereum-txpool_content.md | 72 +++++ .../rpc-ethereum-txpool_inspect.md | 54 ++++ .../rpc-ethereum-txpool_status.md | 55 ++++ .../rpc-ethereum-web3_clientversion.md | 48 +++ v1.0/RPC Nodes/rpc-others.md | 8 + v1.0/RPC Nodes/rpc-others/ripple.md | 8 + .../rpc-others/ripple/account_channels.md | 88 ++++++ v1.0/RPC Nodes/rpc-others/solana-3.md | 8 + .../rpc-others/solana-3/getaccountinfo.md | 72 +++++ v1.0/RPC Nodes/rpc-overview.md | 8 + v1.0/RPC Nodes/rpc-utxo.md | 8 + v1.0/RPC Nodes/rpc-utxo/bitcoin-1.md | 8 + .../bitcoin-1/rpc-btc-getbestblockhash.md | 47 +++ .../rpc-utxo/bitcoin-1/rpc-btc-getblock.md | 82 +++++ .../bitcoin-1/rpc-btc-getblockchaininfo.md | 61 ++++ .../bitcoin-1/rpc-btc-getblockcount.md | 44 +++ .../bitcoin-1/rpc-btc-getblockhash.md | 49 +++ .../bitcoin-1/rpc-btc-getblockheader.md | 71 +++++ .../bitcoin-1/rpc-btc-getblockstats.md | 88 ++++++ .../bitcoin-1/rpc-btc-getchaintips.md | 67 +++++ .../bitcoin-1/rpc-btc-getdifficulty.md | 43 +++ .../bitcoin-1/rpc-btc-getmempoolancestors.md | 56 ++++ .../rpc-btc-getmempooldescendants.md | 55 ++++ .../bitcoin-1/rpc-btc-getmempoolentry.md | 66 ++++ .../bitcoin-1/rpc-btc-getmempoolinfo.md | 56 ++++ .../bitcoin-1/rpc-btc-getrawmempool.md | 72 +++++ .../rpc-utxo/bitcoin-1/rpc-btc-gettxout.md | 83 ++++++ .../bitcoin-1/rpc-btc-gettxoutproof.md | 51 ++++ .../bitcoin-1/rpc-btc-validateaddress.md | 66 ++++ .../bitcoin-1/rpc-btc-verifymessage.md | 60 ++++ .../bitcoin-1/rpc-btc-verifytxoutproof.md | 50 ++++ v1.0/RPC Nodes/rpc-utxo/doge.md | 8 + .../rpc-utxo/doge/getbestblockhash-1.md | 37 +++ .../rpc-utxo/doge/getblock-copy-1.md | 45 +++ .../rpc-utxo/doge/getblock-copy-2.md | 39 +++ .../rpc-utxo/doge/getblockcount-copy-1.md | 39 +++ .../rpc-utxo/doge/getblockhash-copy-1.md | 75 +++++ .../rpc-utxo/doge/getblockheader-1.md | 11 + v1.0/Security/custodial-managed-wallets.md | 8 + .../custodialcreatewallet.md | 8 + .../custodialdeletewallet.md | 8 + .../custodialgetwallet.md | 8 + .../custodialgetwallets.md | 8 + .../custodialtransfermanagedaddress.md | 8 + v1.0/Security/key-management-system.md | 8 + .../completependingsignature.md | 8 + .../deletependingtransactiontosign.md | 8 + .../getpendingtransactionstosign.md | 8 + .../getpendingtransactiontosign.md | 8 + .../receivependingtransactionstosign.md | 8 + v1.0/Security/malicious-address.md | 8 + .../malicious-address/checkmalicousaddress.md | 8 + v1.0/Smart Contracts/auction.md | 8 + .../auction/approvenftauctionspending.md | 8 + v1.0/Smart Contracts/auction/bidonauction.md | 8 + v1.0/Smart Contracts/auction/cancelauction.md | 8 + v1.0/Smart Contracts/auction/createauction.md | 8 + .../auction/generateauction.md | 8 + v1.0/Smart Contracts/auction/getauction.md | 8 + v1.0/Smart Contracts/auction/getauctionfee.md | 8 + .../auction/getauctionfeerecipient.md | 8 + v1.0/Smart Contracts/auction/settleauction.md | 8 + .../auction/updateauctionfee.md | 8 + .../auction/updateauctionfeerecipient.md | 8 + .../fungible-tokens-erc-20-or-compatible.md | 8 + .../erc20approve.md | 8 + .../erc20burn.md | 8 + .../erc20deploy.md | 8 + .../erc20getbalance.md | 8 + .../erc20getbalanceaddress.md | 8 + .../erc20gettransactionbyaddress.md | 8 + .../erc20mint.md | 8 + .../erc20transfer.md | 8 + v1.0/Smart Contracts/gas-pump.md | 8 + .../activatednotactivatedgaspumpaddresses.md | 8 + .../gas-pump/activategaspumpaddresses.md | 8 + .../approvetransfercustodialwallet.md | 8 + .../gaspumpaddressesactivatedornot.md | 8 + .../gas-pump/generatecustodialwallet.md | 8 + .../gas-pump/generatecustodialwalletbatch.md | 8 + .../gas-pump/precalculategaspumpaddresses.md | 8 + .../gas-pump/scgetcustodialaddresses.md | 8 + .../gas-pump/transfercustodialwallet.md | 8 + .../gas-pump/transfercustodialwalletbatch.md | 8 + v1.0/Smart Contracts/general.md | 8 + .../Smart Contracts/general/deploycontract.md | 8 + v1.0/Smart Contracts/general/minterc721.md | 8 + v1.0/Smart Contracts/marketplace.md | 8 + .../marketplace/buyassetonmarketplace.md | 8 + .../cancelsellmarketplacelisting.md | 8 + .../marketplace/generatemarketplace.md | 8 + .../marketplace/getmarketplacefee.md | 8 + .../marketplace/getmarketplacefeerecipient.md | 8 + .../marketplace/getmarketplaceinfo.md | 8 + .../marketplace/getmarketplacelisting.md | 8 + .../marketplace/getmarketplacelistings.md | 8 + .../marketplace/sellassetonmarketplace.md | 8 + v1.0/Smart Contracts/marketplace/updatefee.md | 8 + .../marketplace/updatefeerecipient.md | 8 + .../marketplace/updatemarketplace.md | 8 + .../marketplace/withdrawfeefrommarketplace.md | 8 + .../withdrawtreasuryfrommarketplace.md | 8 + .../multi-tokens-erc-1155-or-compatible.md | 8 + .../addmultitokenminter.md | 8 + .../burnmultitoken.md | 8 + .../burnmultitokenbatch.md | 8 + .../deploymultitoken.md | 8 + .../mintmultitoken.md | 8 + .../mintmultitokenbatch.md | 8 + .../multitokengetaddressbalance.md | 8 + .../multitokengetbalance.md | 8 + .../multitokengetbalancebatch.md | 8 + .../multitokengetcontractaddress.md | 8 + .../multitokengetmetadata.md | 8 + .../multitokengettransaction.md | 8 + .../multitokengettransactionbyaddress.md | 8 + .../transfermultitoken.md | 8 + .../transfermultitokenbatch.md | 8 + .../nft-erc-721-or-compatible.md | 8 + .../nft-erc-721-or-compatible/nftaddminter.md | 8 + .../nftburnerc721.md | 8 + .../nftdeployerc721.md | 8 + .../nftgetbalanceerc721.md | 8 + .../nftgetcontractaddress.md | 8 + .../nftgetmetadataerc721.md | 8 + .../nftgettokensbyaddresserc721.md | 8 + .../nftgettokensbycollectionerc721.md | 8 + .../nftgettransacterc721.md | 8 + .../nftgettransactionbyaddress.md | 8 + .../nftgettransactionbytoken.md | 8 + .../nftminterc721.md | 8 + .../nftmintmultipleerc721.md | 8 + .../nfttransfererc721.md | 8 + .../nftverifyincollection.md | 8 + v1.0/Storage/blockchain-storage.md | 8 + v1.0/Storage/blockchain-storage/getlog.md | 8 + v1.0/Storage/blockchain-storage/storelog.md | 8 + v1.0/Storage/ipfs.md | 8 + v1.0/Storage/ipfs/getipfsdata.md | 8 + v1.0/Storage/ipfs/storeipfs.md | 8 + .../notification-subscriptions.md | 8 + .../createsubscription.md | 8 + .../createsubscriptionold.md | 8 + .../deletesubscription.md | 8 + .../disablewebhookhmac.md | 8 + .../enablewebhookhmac.md | 8 + .../getallwebhooks.md | 8 + .../getallwebhookscount.md | 8 + .../getsubscriptionreport.md | 8 + .../getsubscriptions.md | 8 + .../getsubscriptionscount.md | 8 + .../blockchain-operations-1.md | 11 + .../blockchain-operations-1/algorand-1.md | 8 + .../algo-get-account-transactions.md | 39 +++ ...cel-or-replace-a-blockchain-transaction.md | 39 +++ .../evm-like-ethereum-1.md | 8 + ...beacon-chain-account-balance-attributes.md | 15 + .../bnb-bep2-and-bep20-token-transfers.md | 15 + ...tions-over-beacon-chain-and-smart-chain.md | 32 ++ ...stimate-gasprice-and-insufficient-funds.md | 74 +++++ .../get-erc-20-or-compatibletoken-balance.md | 9 + ...or-tokenaddress-from-a-transaction-hash.md | 28 ++ .../invoke-method-in-a-smart-contract.md | 169 +++++++++++ .../multi-tokens-erc-1155-name-and-symbol.md | 33 ++ .../nonce-what-is-it-and-optional-use.md | 71 +++++ .../smart-contract-verification.md | 91 ++++++ .../token-decimals-erc-20-or-compatible.md | 37 +++ .../mnemonic-derivation-path.md | 47 +++ .../security-malicious-address.md | 11 + .../blockchain-operations-1/solana-2.md | 8 + .../solana-indexing-and-confirmation.md | 29 ++ .../blockchain-operations-1/tron.md | 8 + ...ee-and-feelimit-for-trx-trc10-and-trc20.md | 53 ++++ .../tron/tron-error-trontxexpired.md | 30 ++ .../tron-transaction-could-not-be-found.md | 17 ++ .../tron-troubleshooting-tapos-check-error.md | 32 ++ .../tron/tron-unable-to-find-account.md | 26 ++ .../unconfirmed-and-dropped-transactions.md | 75 +++++ .../utxo-like-bitcoin.md | 8 + ...p-and-stuck-transactions-in-the-mempool.md | 47 +++ ...e-and-stuck-transactions-in-the-mempool.md | 29 ++ .../btc-fee-estimate-copy.md | 66 ++++ .../utxo-like-bitcoin/btc-fee-estimate.md | 84 ++++++ .../btc-maxfeerate-limit-error.md | 46 +++ .../btc-transaction-broadcast-error.md | 65 ++++ .../dust-amount-detected-in-one-output.md | 27 ++ .../transaction-already-exists-in-mempool.md | 38 +++ .../blockchain-operations-1/xrp-1.md | 8 + .../xrp-1/xrp-account-not-found.md | 22 ++ v1.0/TROUBLESHOOTING/contacting-support.md | 48 +++ v1.0/TROUBLESHOOTING/kms.md | 8 + .../kms-daemon-mode-and-credit-consumption.md | 21 ++ .../kms/kms-environment-variables.md | 44 +++ v1.0/TROUBLESHOOTING/kms/kms-general-faq.md | 113 +++++++ .../kms-solana-and-generating-addresses.md | 16 + v1.0/TROUBLESHOOTING/nft.md | 8 + .../nft-harmony-one-and-nfts-not-loading.md | 18 ++ .../nft/nft-opensea-and-listing-issues.md | 23 ++ .../nft-polygon-matic-transaction-pending.md | 28 ++ v1.0/TROUBLESHOOTING/rpc-nodes.md | 8 + .../debug-and-tracer-error-reexec128.md | 55 ++++ .../rpc-nodes/evm-like-ethereum-2.md | 8 + .../evm-based-nodes-unsupported-methods.md | 13 + v1.0/TROUBLESHOOTING/rpc-nodes/solana-1.md | 8 + .../solana-error-getprogramaccounts.md | 25 ++ .../solana-1/solana-long-response-times.md | 11 + .../rpc-nodes/utxo-like-bitcoin-1.md | 8 + .../utxo-based-nodes-unsupported-methods.md | 93 ++++++ .../troubleshooting-notifications.md | 8 + ...cation-delivery-error-networkerror-true.md | 30 ++ ...ns-outgoing-incoming-and-counteraddress.md | 21 ++ .../notifications-tatum-ips-waf-and-hmac.md | 24 ++ ...ifications-utxo-and-address_transaction.md | 12 + ...cations-xrp-kms-and-failed-transactions.md | 40 +++ .../troubleshooting-virtual-accounts.md | 8 + ...ddress-blockchain-balance-not-reflected.md | 18 ++ ...n-withdrawal-error-offchaintrontxfailed.md | 24 ++ ...eposit-not-detected-with-bnb-xlm-or-xrp.md | 17 ++ .../va-error-xpub-not-compatible.md | 24 ++ ...drawals-from-a-gas-pump-deposit-address.md | 19 ++ ...registered-but-failed-in-the-blockchain.md | 24 ++ ...thdrawals-to-blockchain-troubleshooting.md | 36 +++ v1.0/Utils/blockchain-utils.md | 8 + .../getauctionestimatedtime.md | 8 + .../blockchain-utils/scgetcontractaddress.md | 8 + v1.0/Utils/exchange-rate.md | 8 + v1.0/Utils/exchange-rate/getexchangerate.md | 8 + v1.0/Utils/exchange-rate/getexchangerates.md | 8 + v1.0/Utils/service-utils.md | 8 + v1.0/Utils/service-utils/freezeapikey.md | 8 + v1.0/Utils/service-utils/getcredits.md | 8 + v1.0/Utils/service-utils/getversion.md | 8 + v1.0/Utils/service-utils/unfreezeapikey.md | 8 + v1.0/Virtual Accounts/account.md | 8 + .../account/activateaccount.md | 8 + v1.0/Virtual Accounts/account/blockamount.md | 8 + .../Virtual Accounts/account/createaccount.md | 8 + .../account/createaccountbatch.md | 8 + .../account/deactivateaccount.md | 8 + .../account/deleteallblockamount.md | 8 + .../account/deleteblockamount.md | 8 + .../Virtual Accounts/account/freezeaccount.md | 8 + .../account/getaccountbalance.md | 8 + .../account/getaccountbyaccountid.md | 8 + v1.0/Virtual Accounts/account/getaccounts.md | 8 + .../account/getaccountsbycustomerid.md | 8 + .../account/getaccountscount.md | 8 + .../account/getblockamount.md | 8 + .../account/getblockamountbyid.md | 8 + .../account/unblockamountwithtransaction.md | 8 + .../account/unfreezeaccount.md | 8 + .../account/updateaccountbyaccountid.md | 8 + v1.0/Virtual Accounts/blockchain-addresses.md | 8 + .../blockchain-addresses/addressexists.md | 8 + .../blockchain-addresses/assignaddress.md | 8 + .../generatedepositaddress.md | 8 + .../generatedepositaddressesbatch.md | 8 + .../getalldepositaddresses.md | 8 + .../blockchain-addresses/removeaddress.md | 8 + .../blockchain-operations-2.md | 8 + .../adatransferoffchain.md | 8 + .../algodeployerc20ledger.md | 8 + .../blockchain-operations-2/algotransfer.md | 8 + .../blockchain-operations-2/bchtransfer.md | 8 + .../bnbassetoffchain.md | 8 + .../blockchain-operations-2/bnbtransfer.md | 8 + .../blockchain-operations-2/bscdeploybep20.md | 8 + .../bscorbeptransfer.md | 8 + .../blockchain-operations-2/btctransfer.md | 8 + .../celodeployerc20ledger.md | 8 + .../celoorerc20transfer.md | 8 + .../blockchain-operations-2/createbep20.md | 8 + .../createceloerc20.md | 8 + .../blockchain-operations-2/createerc20.md | 8 + .../blockchain-operations-2/createhrm20.md | 8 + .../blockchain-operations-2/createtrc.md | 8 + .../blockchain-operations-2/createxdc20.md | 8 + .../blockchain-operations-2/dogetransfer.md | 8 + .../blockchain-operations-2/egldtransfer.md | 8 + .../blockchain-operations-2/ethdeployerc20.md | 8 + .../blockchain-operations-2/ethtransfer.md | 8 + .../ethtransfererc20.md | 8 + .../blockchain-operations-2/flowtransfer.md | 8 + .../kcsdeployerc20ledger.md | 8 + .../blockchain-operations-2/kcstransfer.md | 8 + .../klaydeployerc20.md | 8 + .../blockchain-operations-2/klaytransfer.md | 8 + .../blockchain-operations-2/ltctransfer.md | 8 + .../blockchain-operations-2/onedeployhrm20.md | 8 + .../blockchain-operations-2/onetransfer.md | 8 + .../polygontransfer.md | 8 + .../registererc20token.md | 8 + .../blockchain-operations-2/soltransfer.md | 8 + .../storeceloerc20address.md | 8 + .../storetokenaddress.md | 8 + .../storetrcaddress.md | 8 + .../blockchain-operations-2/trondeploytrc.md | 8 + .../trontransferoffchain.md | 8 + .../blockchain-operations-2/xdcdeployerc20.md | 8 + .../blockchain-operations-2/xdctransfer.md | 8 + .../xlmassetoffchain.md | 8 + .../blockchain-operations-2/xlmtransfer.md | 8 + .../xrpassetoffchain.md | 8 + .../blockchain-operations-2/xrptransfer.md | 8 + v1.0/Virtual Accounts/customer.md | 8 + .../customer/activatecustomer.md | 8 + .../customer/deactivatecustomer.md | 8 + .../customer/disablecustomer.md | 8 + .../customer/enablecustomer.md | 8 + .../customer/findallcustomers.md | 8 + .../getcustomerbyexternalorinternalid.md | 8 + .../customer/updatecustomer.md | 8 + v1.0/Virtual Accounts/deposit.md | 8 + v1.0/Virtual Accounts/deposit/getdeposits.md | 8 + .../deposit/getdepositscount.md | 8 + v1.0/Virtual Accounts/order-book.md | 8 + .../order-book/chartrequest.md | 8 + .../order-book/deleteaccounttrades.md | 8 + .../order-book/deletetrade.md | 8 + .../order-book/getbuytrades.md | 8 + .../order-book/getbuytradesbody.md | 8 + .../order-book/gethistoricaltrades.md | 8 + .../order-book/gethistoricaltradesbody.md | 8 + .../order-book/getmatchedtrades.md | 8 + .../order-book/getselltrades.md | 8 + .../order-book/getselltradesbody.md | 8 + .../order-book/gettradebyid.md | 8 + .../Virtual Accounts/order-book/storetrade.md | 8 + v1.0/Virtual Accounts/transaction.md | 8 + .../transaction/gettransactions-1.md | 8 + .../transaction/gettransactionsbyaccountid.md | 8 + .../gettransactionsbycustomerid.md | 8 + .../transaction/gettransactionsbyreference.md | 8 + .../transaction/sendtransaction.md | 8 + .../transaction/sendtransactionbatch.md | 8 + v1.0/Virtual Accounts/virtual-currency.md | 8 + .../virtual-currency/createcurrency.md | 8 + .../virtual-currency/getcurrency.md | 8 + .../virtual-currency/mintcurrency.md | 8 + .../virtual-currency/revokecurrency.md | 8 + .../virtual-currency/updatecurrency.md | 8 + v1.0/Virtual Accounts/withdrawal.md | 8 + .../broadcastblockchaintransaction.md | 8 + .../withdrawal/cancelinprogresswithdrawal.md | 8 + .../withdrawal/completewithdrawal.md | 8 + .../withdrawal/getwithdrawals.md | 8 + .../withdrawal/storewithdrawal.md | 8 + v1.0/getting started/authentication.md | 43 +++ .../welcome-to-the-tatum-api-reference.md | 21 ++ 1070 files changed, 24454 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/docs-guides.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 Changelog Posts/api-key-is-now-a-required-parameter-for-faucets.md create mode 100644 Changelog Posts/base-new-rpc-offering.md create mode 100644 Changelog Posts/batch-operations-for-btc-related-endpoints.md create mode 100644 Changelog Posts/chiliz-spicy-faucet-now-available-in-our-dashboard.md create mode 100644 Changelog Posts/cronos-new-rpc-offering.md create mode 100644 Changelog Posts/dashboard-extended-notifications-builder-support.md create mode 100644 Changelog Posts/enhanced-notifications-in-dashboard.md create mode 100644 Changelog Posts/expanded-payments-billing-options-with-yearly-subscriptions.md create mode 100644 Changelog Posts/fantom-new-rpc-offering.md create mode 100644 Changelog Posts/faucets-now-available-in-tatum-sdk.md create mode 100644 Changelog Posts/flare-network-new-rpc-offering.md create mode 100644 Changelog Posts/full-control-over-api-keys-createdeleteregenerate.md create mode 100644 Changelog Posts/haqq-network-new-rpc-offering.md create mode 100644 Changelog Posts/holesky-new-rpc-offering.md create mode 100644 Changelog Posts/horizen-eon-new-rpc-offering.md create mode 100644 Changelog Posts/improved-fee-estimations-for-transaction-success.md create mode 100644 Changelog Posts/ipfs-features-supported-in-tatum-sdk.md create mode 100644 Changelog Posts/sunset-of-goerli-network.md create mode 100644 Changelog Posts/transactions-simulator-available-as-extension-in-sdk.md create mode 100644 Changelog Posts/welcome-to-tatumdocs.md create mode 100644 v0/Blockchain Data/defi-api.md create mode 100644 v0/Blockchain Data/defi-api/getblocks.md create mode 100644 v0/Blockchain Data/defi-api/getevents.md create mode 100644 v0/Blockchain Data/defi-api/getlatestblock.md create mode 100644 v0/Blockchain Data/introduction.md create mode 100644 v0/Blockchain Data/nft-api.md create mode 100644 v0/Blockchain Data/nft-api/checkowner.md create mode 100644 v0/Blockchain Data/nft-api/getcollections.md create mode 100644 v0/Blockchain Data/nft-api/getmetadata.md create mode 100644 v0/Blockchain Data/nft-api/getowners.md create mode 100644 v0/Blockchain Data/token-api.md create mode 100644 v0/Blockchain Data/token-api/gettokens.md create mode 100644 v0/Blockchain Data/transactions-api.md create mode 100644 v0/Blockchain Data/transactions-api/estimatefeeblockchain.md create mode 100644 v0/Blockchain Data/transactions-api/getblockchainfee.md create mode 100644 v0/Blockchain Data/transactions-api/gettransactions.md create mode 100644 v0/Blockchain Data/transactions-api/gettransactionsbyhash.md create mode 100644 v0/Blockchain Data/wallet-api.md create mode 100644 v0/Blockchain Data/wallet-api/getbalances.md create mode 100644 v0/Blockchain Data/wallet-api/getutxosbyaddress.md create mode 100644 v0/Blockchain Utility InP/account.md create mode 100644 v0/Blockchain Utility InP/account/activateaccount.md create mode 100644 v0/Blockchain Utility InP/account/blockamount.md create mode 100644 v0/Blockchain Utility InP/account/createaccount.md create mode 100644 v0/Blockchain Utility InP/account/createaccountbatch.md create mode 100644 v0/Blockchain Utility InP/account/deactivateaccount.md create mode 100644 v0/Blockchain Utility InP/account/deleteallblockamount.md create mode 100644 v0/Blockchain Utility InP/account/deleteblockamount.md create mode 100644 v0/Blockchain Utility InP/account/freezeaccount.md create mode 100644 v0/Blockchain Utility InP/account/getaccountbalance.md create mode 100644 v0/Blockchain Utility InP/account/getaccountbyaccountid.md create mode 100644 v0/Blockchain Utility InP/account/getaccounts.md create mode 100644 v0/Blockchain Utility InP/account/getaccountsbycustomerid.md create mode 100644 v0/Blockchain Utility InP/account/getaccountscount.md create mode 100644 v0/Blockchain Utility InP/account/getblockamount.md create mode 100644 v0/Blockchain Utility InP/account/getblockamountbyid.md create mode 100644 v0/Blockchain Utility InP/account/unblockamountwithtransaction.md create mode 100644 v0/Blockchain Utility InP/account/unfreezeaccount.md create mode 100644 v0/Blockchain Utility InP/account/updateaccountbyaccountid.md create mode 100644 v0/Blockchain Utility InP/customer.md create mode 100644 v0/Blockchain Utility InP/customer/activatecustomer.md create mode 100644 v0/Blockchain Utility InP/customer/deactivatecustomer.md create mode 100644 v0/Blockchain Utility InP/customer/disablecustomer.md create mode 100644 v0/Blockchain Utility InP/customer/enablecustomer.md create mode 100644 v0/Blockchain Utility InP/customer/findallcustomers.md create mode 100644 v0/Blockchain Utility InP/customer/getcustomerbyexternalorinternalid.md create mode 100644 v0/Blockchain Utility InP/customer/updatecustomer.md create mode 100644 v0/Blockchain Utility InP/deposit.md create mode 100644 v0/Blockchain Utility InP/deposit/getdeposits.md create mode 100644 v0/Blockchain Utility InP/deposit/getdepositscount.md create mode 100644 v0/Blockchain Utility InP/transaction.md create mode 100644 v0/Blockchain Utility InP/transaction/gettransactions-1.md create mode 100644 v0/Blockchain Utility InP/transaction/gettransactionsbyaccountid.md create mode 100644 v0/Blockchain Utility InP/transaction/gettransactionsbycustomerid.md create mode 100644 v0/Blockchain Utility InP/transaction/gettransactionsbyreference.md create mode 100644 v0/Blockchain Utility InP/transaction/sendtransaction.md create mode 100644 v0/Blockchain Utility InP/transaction/sendtransactionbatch.md create mode 100644 v0/Blockchain Utility InP/virtual-currency.md create mode 100644 v0/Blockchain Utility InP/virtual-currency/createcurrency.md create mode 100644 v0/Blockchain Utility InP/virtual-currency/getcurrency.md create mode 100644 v0/Blockchain Utility InP/virtual-currency/mintcurrency.md create mode 100644 v0/Blockchain Utility InP/virtual-currency/revokecurrency.md create mode 100644 v0/Blockchain Utility InP/virtual-currency/updatecurrency.md create mode 100644 v0/Blockchain operations/contracts-deployments.md create mode 100644 v0/Blockchain operations/exchange-rate.md create mode 100644 v0/Blockchain operations/execute-contract-functions.md create mode 100644 v0/Blockchain operations/fee-estimation.md create mode 100644 v0/Blockchain operations/storage-logs.md create mode 100644 v0/Blockchain operations/strorage-ipfs.md create mode 100644 v0/Blockchain operations/transact.md create mode 100644 v0/Blockchain operations/wallet-operations.md create mode 100644 v0/Blockhain Abstraction/auction.md create mode 100644 v0/Blockhain Abstraction/custodial.md create mode 100644 v0/Blockhain Abstraction/gas-pump.md create mode 100644 v0/Blockhain Abstraction/kms.md create mode 100644 v0/Blockhain Abstraction/marketplace.md create mode 100644 v0/Blockhain Abstraction/virtual-accounts-1.md create mode 100644 v0/Blockhain Abstraction/virtual-accounts-1/accounts.md create mode 100644 v0/Documentation/getting-started.md create mode 100644 v0/Documentation/getting-started/testing-this.md create mode 100644 v0/Guides/auth-api-keys-mainnet-vs-testnet.md create mode 100644 v0/Guides/blockchain-operations.md create mode 100644 v0/Guides/blockchain-operations/cancel-or-replace-a-blockchain-transaction.md create mode 100644 v0/Guides/blockchain-operations/evm-like-ethereum.md create mode 100644 v0/Guides/blockchain-operations/mnemonic-derivation-path.md create mode 100644 v0/Guides/blockchain-operations/testnet-faucets.md create mode 100644 v0/Guides/blockchain-operations/utxo.md create mode 100644 v0/Guides/virtual-accounts.md create mode 100644 v0/Guides/virtual-accounts/adding-unsupported-tokens.md create mode 100644 v0/Guides/virtual-accounts/supported-tokens-out-of-the-box.md create mode 100644 v0/Guides/virtual-accounts/virtual-accounts-use-case-introduction.md create mode 100644 v0/Guides/virtual-accounts/withdrawing-assets.md create mode 100644 v0/Learn blockchain/what-are-transactions.md create mode 100644 v0/Learn blockchain/what-are-transactions/what-are-internal-transactions.md create mode 100644 v0/Learn blockchain/what-are-transactions/what-are-the-reasons-a-transaction-fails.md create mode 100644 v0/Learn blockchain/what-is-a-blockchain.md create mode 100644 v0/Learn blockchain/what-is-a-token-on-blockchain.md create mode 100644 v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-fungible-tokens.md create mode 100644 v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-multitokens.md create mode 100644 v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-native-tokens.md create mode 100644 v0/Learn blockchain/what-is-a-token-on-blockchain/what-are-non-fungible-tokens.md create mode 100644 v0/Notifications/general-transactions.md create mode 100644 v0/Notifications/incoming-wallet-transfers.md create mode 100644 v0/Notifications/incoming-wallet-transfers/sub_create.md create mode 100644 v0/Notifications/introduction-copy.md create mode 100644 v0/Notifications/outgoing-transactions.md create mode 100644 v0/RPC/avalanche.md create mode 100644 v0/RPC/bsc-copy.md create mode 100644 v0/RPC/ethereum.md create mode 100644 v0/RPC/ethereum/eth_accounts.md create mode 100644 v0/RPC/ethereum/eth_blocknumber.md create mode 100644 v0/RPC/ethereum/eth_call.md create mode 100644 v0/RPC/ethereum/eth_chainid.md create mode 100644 v0/RPC/ethereum/eth_createaccesslist.md create mode 100644 v0/RPC/ethereum/eth_estimategas.md create mode 100644 v0/RPC/ethereum/eth_feehistory.md create mode 100644 v0/RPC/ethereum/eth_gasprice.md create mode 100644 v0/RPC/ethereum/eth_getbalance.md create mode 100644 v0/RPC/ethereum/eth_getblockbyhash.md create mode 100644 v0/RPC/ethereum/eth_getblockbynumber.md create mode 100644 v0/RPC/ethereum/eth_getblockreceipts.md create mode 100644 v0/RPC/ethereum/eth_getblocktransactioncountbyhash.md create mode 100644 v0/RPC/ethereum/eth_getblocktransactioncountbynumber.md create mode 100644 v0/RPC/ethereum/eth_getcode.md create mode 100644 v0/RPC/ethereum/eth_getfilterchanges.md create mode 100644 v0/RPC/ethereum/eth_getfilterlogs.md create mode 100644 v0/RPC/ethereum/eth_getlogs.md create mode 100644 v0/RPC/ethereum/eth_getproof.md create mode 100644 v0/RPC/ethereum/eth_getstorageat.md create mode 100644 v0/RPC/ethereum/eth_gettransactionbyblockhashandindex.md create mode 100644 v0/RPC/ethereum/eth_gettransactionbyblocknumberandindex.md create mode 100644 v0/RPC/ethereum/eth_gettransactionbyhash.md create mode 100644 v0/RPC/ethereum/eth_gettransactioncount.md create mode 100644 v0/RPC/ethereum/eth_gettransactionreceipt.md create mode 100644 v0/RPC/ethereum/eth_getunclebyblockhashandindex.md create mode 100644 v0/RPC/ethereum/eth_getunclebyblocknumberandindex.md create mode 100644 v0/RPC/ethereum/eth_getunclecountbyblockhash.md create mode 100644 v0/RPC/ethereum/eth_getunclecountbyblocknumber.md create mode 100644 v0/RPC/ethereum/eth_maxpriorityfeepergas.md create mode 100644 v0/RPC/ethereum/eth_newblockfilter.md create mode 100644 v0/RPC/ethereum/eth_newfilter.md create mode 100644 v0/RPC/ethereum/eth_newpendingtransactionfilter.md create mode 100644 v0/RPC/ethereum/eth_protocolversion.md create mode 100644 v0/RPC/ethereum/eth_sendprivatetransaction.md create mode 100644 v0/RPC/ethereum/eth_sendrawtransaction.md create mode 100644 v0/RPC/ethereum/eth_uninstallfilter.md create mode 100644 v0/RPC/ethereum/net_listening.md create mode 100644 v0/RPC/ethereum/net_version.md create mode 100644 v0/RPC/ethereum/web3_clientversion.md create mode 100644 v0/RPC/ethereum/web3_sha.md create mode 100644 v0/RPC/polygon-copy.md create mode 100644 v0/RPC/polygon.md create mode 100644 v0/TROUBLESHOOTING/blockchain-operations-1.md create mode 100644 v0/TROUBLESHOOTING/blockchain-operations-1/tron.md create mode 100644 v0/TROUBLESHOOTING/contacting-support.md create mode 100644 v0/TROUBLESHOOTING/nfts.md create mode 100644 v0/TROUBLESHOOTING/nfts/nft-polygon-matic-transaction-pending.md create mode 100644 v1.0/Blockchain Abstraction/blockchain-abstraction.md create mode 100644 v1.0/Blockchain Abstraction/custodial.md create mode 100644 v1.0/Blockchain Abstraction/gas-pump-1.md create mode 100644 v1.0/Blockchain Abstraction/nft-express.md create mode 100644 v1.0/Blockchain Abstraction/tatum-key-management-system-kms.md create mode 100644 v1.0/Blockchain Abstraction/tatum-key-management-system-kms/kms-download-and-install-steps.md create mode 100644 v1.0/Blockchain Abstraction/tatum-key-management-system-kms/kms-use-case-and-functionalities.md create mode 100644 v1.0/Blockchain Abstraction/transaction-simulator.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts/adding-more-tokens.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts/on-chain-balance-management-and-withdrawals.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts/supported-tokens-by-default.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts/use-case-and-functionalities.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts/va-notifications.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts/va-order-book-future-trade-and-sealdate.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts/withdrawing-assets-from-a-master-exchange-address.md create mode 100644 v1.0/Blockchain Abstraction/virtual-accounts/withdrawing-assets-from-virtual-accounts.md create mode 100644 v1.0/Blockchain Data/blockchain-data.md create mode 100644 v1.0/Blockchain Data/data-api-old.md create mode 100644 v1.0/Blockchain Data/data-api-old/checkownerold.md create mode 100644 v1.0/Blockchain Data/data-api-old/getbalancesold.md create mode 100644 v1.0/Blockchain Data/data-api-old/getblocksold.md create mode 100644 v1.0/Blockchain Data/data-api-old/getcollectionsold.md create mode 100644 v1.0/Blockchain Data/data-api-old/geteventsold.md create mode 100644 v1.0/Blockchain Data/data-api-old/getlatestblockold.md create mode 100644 v1.0/Blockchain Data/data-api-old/getmetadataold.md create mode 100644 v1.0/Blockchain Data/data-api-old/getownersold.md create mode 100644 v1.0/Blockchain Data/data-api-old/gettokensold.md create mode 100644 v1.0/Blockchain Data/data-api-old/gettransactionsbyhashold.md create mode 100644 v1.0/Blockchain Data/data-api-old/gettransactionsold.md create mode 100644 v1.0/Blockchain Data/data-api-old/getutxosbyaddressold.md create mode 100644 v1.0/Blockchain Data/data-insights.md create mode 100644 v1.0/Blockchain Data/defi-api.md create mode 100644 v1.0/Blockchain Data/defi-api/getblocks.md create mode 100644 v1.0/Blockchain Data/defi-api/getevents.md create mode 100644 v1.0/Blockchain Data/defi-api/getlatestblock.md create mode 100644 v1.0/Blockchain Data/insights.md create mode 100644 v1.0/Blockchain Data/insights/fungible-tokens-data.md create mode 100644 v1.0/Blockchain Data/insights/nfts-2.md create mode 100644 v1.0/Blockchain Data/insights/nfts-2/algorand-nft-mint-and-transfer-to-recipient-copy.md create mode 100644 v1.0/Blockchain Data/insights/nfts-2/algorand-nft-mint-and-transfer-to-recipient.md create mode 100644 v1.0/Blockchain Data/insights/nfts-2/nft-creating-your-own-collection.md create mode 100644 v1.0/Blockchain Data/insights/nfts-2/nft-minting-nfts.md create mode 100644 v1.0/Blockchain Data/insights/wallet-data.md create mode 100644 v1.0/Blockchain Data/nft-api.md create mode 100644 v1.0/Blockchain Data/nft-api/checkowner.md create mode 100644 v1.0/Blockchain Data/nft-api/getcollections.md create mode 100644 v1.0/Blockchain Data/nft-api/getmetadata.md create mode 100644 v1.0/Blockchain Data/nft-api/getowners.md create mode 100644 v1.0/Blockchain Data/notifications.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/address-event-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/contract-address-log-event-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/failed-transactions-in-a-block-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/incoming-internal-transactions-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/incoming-multitokens-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/incoming-native-transactions-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/incoming-nfts-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/incoming-tokens-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/outgoing-failed-transactions-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/outgoing-internal-transactions-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/outgoing-multitokens-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/outgoing-native-transactions-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/outgoing-nfts-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/outgoing-tokens-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-types/paid-fee-1.md create mode 100644 v1.0/Blockchain Data/notifications/notification-workflow.md create mode 100644 v1.0/Blockchain Data/notifications/notification-workflow/get-all-existing-monitoring-subscriptions.md create mode 100644 v1.0/Blockchain Data/notifications/notification-workflow/get-all-sent-notifications.md create mode 100644 v1.0/Blockchain Data/notifications/notification-workflow/handling-re-orgs.md create mode 100644 v1.0/Blockchain Data/notifications/notification-workflow/start-monitoring-of-the-address.md create mode 100644 v1.0/Blockchain Data/notifications/notification-workflow/stop-monitoring-of-the-address.md create mode 100644 v1.0/Blockchain Data/notifications/supported-types-and-blockchain-networks.md create mode 100644 v1.0/Blockchain Data/token-api.md create mode 100644 v1.0/Blockchain Data/token-api/gettokens.md create mode 100644 v1.0/Blockchain Data/transactions-api.md create mode 100644 v1.0/Blockchain Data/transactions-api/estimatefeeblockchain.md create mode 100644 v1.0/Blockchain Data/transactions-api/getblockchainfee.md create mode 100644 v1.0/Blockchain Data/transactions-api/gettransactions.md create mode 100644 v1.0/Blockchain Data/transactions-api/gettransactionsbyhash.md create mode 100644 v1.0/Blockchain Data/wallet-api.md create mode 100644 v1.0/Blockchain Data/wallet-api/getbalances.md create mode 100644 v1.0/Blockchain Data/wallet-api/getutxosbyaddress.md create mode 100644 v1.0/Blockchain Node RPC/node-rpc.md create mode 100644 v1.0/Blockchain Node RPC/node-rpc/nodejsonpostrpcdriver.md create mode 100644 v1.0/Blockchain Node RPC/node-rpc/nodejsonrpcgetdriver.md create mode 100644 v1.0/Blockchain Node RPC/node-rpc/nodejsonrpcputdriver.md create mode 100644 v1.0/Blockchain Operations/blockchain-operations.md create mode 100644 v1.0/Blockchain Operations/contract-deployment.md create mode 100644 v1.0/Blockchain Operations/contract-deployment/auction-1.md create mode 100644 v1.0/Blockchain Operations/contract-deployment/marketplace-1.md create mode 100644 v1.0/Blockchain Operations/exchange-rates.md create mode 100644 v1.0/Blockchain Operations/fee-estimation.md create mode 100644 v1.0/Blockchain Operations/storage.md create mode 100644 v1.0/Blockchain Operations/transact.md create mode 100644 v1.0/Blockchain Operations/transact/building-a-utxo-transaction.md create mode 100644 v1.0/Blockchain Operations/wallet-operations.md create mode 100644 v1.0/Blockchain/algorand.md create mode 100644 v1.0/Blockchain/algorand/algonodegetdriver.md create mode 100644 v1.0/Blockchain/algorand/algonodeindexergetdriver.md create mode 100644 v1.0/Blockchain/algorand/algonodepostdriver.md create mode 100644 v1.0/Blockchain/algorand/algorandblockchainreceiveasset.md create mode 100644 v1.0/Blockchain/algorand/algorandblockchaintransfer.md create mode 100644 v1.0/Blockchain/algorand/algorandbroadcast.md create mode 100644 v1.0/Blockchain/algorand/algorandgenerateaddress.md create mode 100644 v1.0/Blockchain/algorand/algorandgeneratewallet.md create mode 100644 v1.0/Blockchain/algorand/algorandgetbalance.md create mode 100644 v1.0/Blockchain/algorand/algorandgetblock.md create mode 100644 v1.0/Blockchain/algorand/algorandgetcurrentblock.md create mode 100644 v1.0/Blockchain/algorand/algorandgetpaytransactionsbyfromto.md create mode 100644 v1.0/Blockchain/algorand/algorandgettransaction.md create mode 100644 v1.0/Blockchain/bitcoin-cash.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchbroadcast.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchgenerateaddress.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchgeneratewallet.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchgetblock.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchgetblockchaininfo.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchgetblockhash.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchgetrawtransaction.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchgettxbyaddress.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchrpcdriver.md create mode 100644 v1.0/Blockchain/bitcoin-cash/bchtransferblockchain.md create mode 100644 v1.0/Blockchain/bitcoin.md create mode 100644 v1.0/Blockchain/bitcoin/btcbroadcast.md create mode 100644 v1.0/Blockchain/bitcoin/btcgenerateaddress.md create mode 100644 v1.0/Blockchain/bitcoin/btcgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/bitcoin/btcgeneratewallet.md create mode 100644 v1.0/Blockchain/bitcoin/btcgetbalanceofaddress.md create mode 100644 v1.0/Blockchain/bitcoin/btcgetbalanceofaddressbatch.md create mode 100644 v1.0/Blockchain/bitcoin/btcgetblock.md create mode 100644 v1.0/Blockchain/bitcoin/btcgetblockchaininfo.md create mode 100644 v1.0/Blockchain/bitcoin/btcgetblockhash.md create mode 100644 v1.0/Blockchain/bitcoin/btcgetmempool.md create mode 100644 v1.0/Blockchain/bitcoin/btcgetrawtransaction.md create mode 100644 v1.0/Blockchain/bitcoin/btcgettxbyaddress.md create mode 100644 v1.0/Blockchain/bitcoin/btcgetutxo.md create mode 100644 v1.0/Blockchain/bitcoin/btcrpcdriver.md create mode 100644 v1.0/Blockchain/bitcoin/btctransferblockchain.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain/bnbblockchaintransfer.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain/bnbbroadcast.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain/bnbgeneratewallet.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain/bnbgetaccount.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain/bnbgetblock.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain/bnbgetcurrentblock.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain/bnbgettransaction.md create mode 100644 v1.0/Blockchain/bnb-beacon-chain/bnbgettxbyaccount.md create mode 100644 v1.0/Blockchain/bnb-smart-chain.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscblockchainsmartcontractinvocation.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscblockchaintransfer.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscbroadcast.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscgenerateaddress.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscgeneratewallet.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscgetbalance.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscgetblock.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscgetcurrentblock.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscgettransaction.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscgettransactioncount.md create mode 100644 v1.0/Blockchain/bnb-smart-chain/bscweb3driver.md create mode 100644 v1.0/Blockchain/cardano.md create mode 100644 v1.0/Blockchain/cardano/adabroadcast.md create mode 100644 v1.0/Blockchain/cardano/adagenerateaddress.md create mode 100644 v1.0/Blockchain/cardano/adagenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/cardano/adageneratewallet.md create mode 100644 v1.0/Blockchain/cardano/adagetaccount.md create mode 100644 v1.0/Blockchain/cardano/adagetblock.md create mode 100644 v1.0/Blockchain/cardano/adagetblockchaininfo.md create mode 100644 v1.0/Blockchain/cardano/adagetrawtransaction.md create mode 100644 v1.0/Blockchain/cardano/adagettxbyaddress.md create mode 100644 v1.0/Blockchain/cardano/adagetutxobyaddress.md create mode 100644 v1.0/Blockchain/cardano/adatransferblockchain.md create mode 100644 v1.0/Blockchain/celo.md create mode 100644 v1.0/Blockchain/celo/celoblockchainsmartcontractinvocation.md create mode 100644 v1.0/Blockchain/celo/celoblockchaintransfer.md create mode 100644 v1.0/Blockchain/celo/celobroadcast.md create mode 100644 v1.0/Blockchain/celo/celogenerateaddress.md create mode 100644 v1.0/Blockchain/celo/celogenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/celo/celogeneratewallet.md create mode 100644 v1.0/Blockchain/celo/celogetbalance.md create mode 100644 v1.0/Blockchain/celo/celogetblock.md create mode 100644 v1.0/Blockchain/celo/celogetcurrentblock.md create mode 100644 v1.0/Blockchain/celo/celogettransaction.md create mode 100644 v1.0/Blockchain/celo/celogettransactionbyaddress.md create mode 100644 v1.0/Blockchain/celo/celogettransactioncount.md create mode 100644 v1.0/Blockchain/celo/celoweb3driver.md create mode 100644 v1.0/Blockchain/dogecoin.md create mode 100644 v1.0/Blockchain/dogecoin/dogebroadcast.md create mode 100644 v1.0/Blockchain/dogecoin/dogegenerateaddress.md create mode 100644 v1.0/Blockchain/dogecoin/dogegenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/dogecoin/dogegeneratewallet.md create mode 100644 v1.0/Blockchain/dogecoin/dogegetbalanceofaddress.md create mode 100644 v1.0/Blockchain/dogecoin/dogegetbalanceofaddressbatch.md create mode 100644 v1.0/Blockchain/dogecoin/dogegetblock.md create mode 100644 v1.0/Blockchain/dogecoin/dogegetblockchaininfo.md create mode 100644 v1.0/Blockchain/dogecoin/dogegetblockhash.md create mode 100644 v1.0/Blockchain/dogecoin/dogegetmempool.md create mode 100644 v1.0/Blockchain/dogecoin/dogegetrawtransaction.md create mode 100644 v1.0/Blockchain/dogecoin/dogegettxbyaddress.md create mode 100644 v1.0/Blockchain/dogecoin/dogegetutxo.md create mode 100644 v1.0/Blockchain/dogecoin/dogerpcdriver.md create mode 100644 v1.0/Blockchain/dogecoin/dogetransferblockchain.md create mode 100644 v1.0/Blockchain/elrond.md create mode 100644 v1.0/Blockchain/elrond/egldblockchaintransfer.md create mode 100644 v1.0/Blockchain/elrond/egldbroadcast.md create mode 100644 v1.0/Blockchain/elrond/egldgenerateaddress.md create mode 100644 v1.0/Blockchain/elrond/egldgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/elrond/egldgeneratewallet.md create mode 100644 v1.0/Blockchain/elrond/egldgetbalance.md create mode 100644 v1.0/Blockchain/elrond/egldgetblock.md create mode 100644 v1.0/Blockchain/elrond/egldgetcurrentblock.md create mode 100644 v1.0/Blockchain/elrond/egldgettransaction.md create mode 100644 v1.0/Blockchain/elrond/egldgettransactionaddress.md create mode 100644 v1.0/Blockchain/elrond/egldgettransactioncount.md create mode 100644 v1.0/Blockchain/elrond/egldnodeget.md create mode 100644 v1.0/Blockchain/elrond/egldnodepost.md create mode 100644 v1.0/Blockchain/ethereum-1.md create mode 100644 v1.0/Blockchain/ethereum-1/ethblockchainsmartcontractinvocation.md create mode 100644 v1.0/Blockchain/ethereum-1/ethblockchaintransfer.md create mode 100644 v1.0/Blockchain/ethereum-1/ethbroadcast.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgenerateaddress.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgeneratewallet.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgetbalance.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgetblock.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgetcurrentblock.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgetinternaltransactionbyaddress.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgettransaction.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgettransactionbyaddress.md create mode 100644 v1.0/Blockchain/ethereum-1/ethgettransactioncount.md create mode 100644 v1.0/Blockchain/ethereum-1/ethweb3driver.md create mode 100644 v1.0/Blockchain/flow.md create mode 100644 v1.0/Blockchain/flow/flowaddpubkeytoaddress.md create mode 100644 v1.0/Blockchain/flow/flowcreateaddressfrompubkey.md create mode 100644 v1.0/Blockchain/flow/flowgenerateaddress.md create mode 100644 v1.0/Blockchain/flow/flowgeneratepubkey.md create mode 100644 v1.0/Blockchain/flow/flowgeneratepubkeyprivatekey.md create mode 100644 v1.0/Blockchain/flow/flowgeneratewallet.md create mode 100644 v1.0/Blockchain/flow/flowgetaccount.md create mode 100644 v1.0/Blockchain/flow/flowgetblock.md create mode 100644 v1.0/Blockchain/flow/flowgetblockchaininfo.md create mode 100644 v1.0/Blockchain/flow/flowgetblockevents.md create mode 100644 v1.0/Blockchain/flow/flowgetrawtransaction.md create mode 100644 v1.0/Blockchain/flow/flowtransferblockchain.md create mode 100644 v1.0/Blockchain/flow/flowtransfercustomblockchain.md create mode 100644 v1.0/Blockchain/harmony.md create mode 100644 v1.0/Blockchain/harmony/oneblockchainsmartcontractinvocation.md create mode 100644 v1.0/Blockchain/harmony/oneblockchaintransfer.md create mode 100644 v1.0/Blockchain/harmony/onebroadcast.md create mode 100644 v1.0/Blockchain/harmony/oneformataddress.md create mode 100644 v1.0/Blockchain/harmony/onegenerateaddress.md create mode 100644 v1.0/Blockchain/harmony/onegenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/harmony/onegeneratewallet.md create mode 100644 v1.0/Blockchain/harmony/onegetbalance.md create mode 100644 v1.0/Blockchain/harmony/onegetblock.md create mode 100644 v1.0/Blockchain/harmony/onegetcurrentblock.md create mode 100644 v1.0/Blockchain/harmony/onegettransaction.md create mode 100644 v1.0/Blockchain/harmony/onegettransactioncount.md create mode 100644 v1.0/Blockchain/harmony/oneweb3driver.md create mode 100644 v1.0/Blockchain/klaytn.md create mode 100644 v1.0/Blockchain/klaytn/klaytnblockchainsmartcontractinvocation.md create mode 100644 v1.0/Blockchain/klaytn/klaytnblockchaintransfer.md create mode 100644 v1.0/Blockchain/klaytn/klaytnbroadcast.md create mode 100644 v1.0/Blockchain/klaytn/klaytngenerateaddress.md create mode 100644 v1.0/Blockchain/klaytn/klaytngenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/klaytn/klaytngeneratewallet.md create mode 100644 v1.0/Blockchain/klaytn/klaytngetbalance.md create mode 100644 v1.0/Blockchain/klaytn/klaytngetblock.md create mode 100644 v1.0/Blockchain/klaytn/klaytngetcurrentblock.md create mode 100644 v1.0/Blockchain/klaytn/klaytngettransaction.md create mode 100644 v1.0/Blockchain/klaytn/klaytngettransactioncount.md create mode 100644 v1.0/Blockchain/klaytn/klaytnweb3driver.md create mode 100644 v1.0/Blockchain/kucoin.md create mode 100644 v1.0/Blockchain/kucoin/kcsblockchainsmartcontractinvocation.md create mode 100644 v1.0/Blockchain/kucoin/kcsblockchaintransfer.md create mode 100644 v1.0/Blockchain/kucoin/kcsbroadcast.md create mode 100644 v1.0/Blockchain/kucoin/kcsgenerateaddress.md create mode 100644 v1.0/Blockchain/kucoin/kcsgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/kucoin/kcsgeneratewallet.md create mode 100644 v1.0/Blockchain/kucoin/kcsgetbalance.md create mode 100644 v1.0/Blockchain/kucoin/kcsgetblock.md create mode 100644 v1.0/Blockchain/kucoin/kcsgetcurrentblock.md create mode 100644 v1.0/Blockchain/kucoin/kcsgettransaction.md create mode 100644 v1.0/Blockchain/kucoin/kcsgettransactioncount.md create mode 100644 v1.0/Blockchain/kucoin/kcsweb3driver.md create mode 100644 v1.0/Blockchain/litecoin.md create mode 100644 v1.0/Blockchain/litecoin/ltcbroadcast.md create mode 100644 v1.0/Blockchain/litecoin/ltcgenerateaddress.md create mode 100644 v1.0/Blockchain/litecoin/ltcgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/litecoin/ltcgeneratewallet.md create mode 100644 v1.0/Blockchain/litecoin/ltcgetbalanceofaddress.md create mode 100644 v1.0/Blockchain/litecoin/ltcgetbalanceofaddressbatch.md create mode 100644 v1.0/Blockchain/litecoin/ltcgetblock.md create mode 100644 v1.0/Blockchain/litecoin/ltcgetblockchaininfo.md create mode 100644 v1.0/Blockchain/litecoin/ltcgetblockhash.md create mode 100644 v1.0/Blockchain/litecoin/ltcgetmempool.md create mode 100644 v1.0/Blockchain/litecoin/ltcgetrawtransaction.md create mode 100644 v1.0/Blockchain/litecoin/ltcgettxbyaddress.md create mode 100644 v1.0/Blockchain/litecoin/ltcgetutxo.md create mode 100644 v1.0/Blockchain/litecoin/ltcrpcdriver.md create mode 100644 v1.0/Blockchain/litecoin/ltctransferblockchain.md create mode 100644 v1.0/Blockchain/polygon-1.md create mode 100644 v1.0/Blockchain/polygon-1/polygonblockchainsmartcontractinvocation.md create mode 100644 v1.0/Blockchain/polygon-1/polygonblockchaintransfer.md create mode 100644 v1.0/Blockchain/polygon-1/polygonbroadcast.md create mode 100644 v1.0/Blockchain/polygon-1/polygongenerateaddress.md create mode 100644 v1.0/Blockchain/polygon-1/polygongenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/polygon-1/polygongeneratewallet.md create mode 100644 v1.0/Blockchain/polygon-1/polygongetbalance.md create mode 100644 v1.0/Blockchain/polygon-1/polygongetblock.md create mode 100644 v1.0/Blockchain/polygon-1/polygongetcurrentblock.md create mode 100644 v1.0/Blockchain/polygon-1/polygongettransaction.md create mode 100644 v1.0/Blockchain/polygon-1/polygongettransactionbyaddress.md create mode 100644 v1.0/Blockchain/polygon-1/polygongettransactioncount.md create mode 100644 v1.0/Blockchain/polygon-1/polygonweb3driver.md create mode 100644 v1.0/Blockchain/solana.md create mode 100644 v1.0/Blockchain/solana/solanablockchaintransfer.md create mode 100644 v1.0/Blockchain/solana/solanabroadcastconfirm.md create mode 100644 v1.0/Blockchain/solana/solanageneratewallet.md create mode 100644 v1.0/Blockchain/solana/solanagetbalance.md create mode 100644 v1.0/Blockchain/solana/solanagetblock.md create mode 100644 v1.0/Blockchain/solana/solanagetcurrentblock.md create mode 100644 v1.0/Blockchain/solana/solanagettransaction.md create mode 100644 v1.0/Blockchain/solana/solanaweb3driver.md create mode 100644 v1.0/Blockchain/stellar.md create mode 100644 v1.0/Blockchain/stellar/xlmbroadcast.md create mode 100644 v1.0/Blockchain/stellar/xlmgetaccountinfo.md create mode 100644 v1.0/Blockchain/stellar/xlmgetaccounttx.md create mode 100644 v1.0/Blockchain/stellar/xlmgetfee.md create mode 100644 v1.0/Blockchain/stellar/xlmgetlastclosedledger.md create mode 100644 v1.0/Blockchain/stellar/xlmgetledger.md create mode 100644 v1.0/Blockchain/stellar/xlmgetledgertx.md create mode 100644 v1.0/Blockchain/stellar/xlmgettransaction.md create mode 100644 v1.0/Blockchain/stellar/xlmtransferblockchain.md create mode 100644 v1.0/Blockchain/stellar/xlmtrustlineblockchain.md create mode 100644 v1.0/Blockchain/stellar/xlmwallet.md create mode 100644 v1.0/Blockchain/tron-1.md create mode 100644 v1.0/Blockchain/tron-1/generatetronwallet.md create mode 100644 v1.0/Blockchain/tron-1/tronaccounttx.md create mode 100644 v1.0/Blockchain/tron-1/tronaccounttx20.md create mode 100644 v1.0/Blockchain/tron-1/tronbroadcast.md create mode 100644 v1.0/Blockchain/tron-1/troncreatetrc10.md create mode 100644 v1.0/Blockchain/tron-1/troncreatetrc20.md create mode 100644 v1.0/Blockchain/tron-1/tronfreeze.md create mode 100644 v1.0/Blockchain/tron-1/trongenerateaddress.md create mode 100644 v1.0/Blockchain/tron-1/trongenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/tron-1/trongetaccount.md create mode 100644 v1.0/Blockchain/tron-1/trongetblock.md create mode 100644 v1.0/Blockchain/tron-1/trongetcurrentblock.md create mode 100644 v1.0/Blockchain/tron-1/trongettransaction.md create mode 100644 v1.0/Blockchain/tron-1/trontransfer.md create mode 100644 v1.0/Blockchain/tron-1/trontransfertrc10.md create mode 100644 v1.0/Blockchain/tron-1/trontransfertrc20.md create mode 100644 v1.0/Blockchain/tron-1/trontrc10detail.md create mode 100644 v1.0/Blockchain/tron-1/tronunfreeze.md create mode 100644 v1.0/Blockchain/vechain.md create mode 100644 v1.0/Blockchain/vechain/vetblockchaintransfer.md create mode 100644 v1.0/Blockchain/vechain/vetbroadcast.md create mode 100644 v1.0/Blockchain/vechain/vetgenerateaddress.md create mode 100644 v1.0/Blockchain/vechain/vetgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/vechain/vetgeneratewallet.md create mode 100644 v1.0/Blockchain/vechain/vetgetbalance.md create mode 100644 v1.0/Blockchain/vechain/vetgetblock.md create mode 100644 v1.0/Blockchain/vechain/vetgetcurrentblock.md create mode 100644 v1.0/Blockchain/vechain/vetgetenergy.md create mode 100644 v1.0/Blockchain/vechain/vetgettransaction.md create mode 100644 v1.0/Blockchain/vechain/vetgettransactionreceipt.md create mode 100644 v1.0/Blockchain/xinfin.md create mode 100644 v1.0/Blockchain/xinfin/xdcblockchainsmartcontractinvocation.md create mode 100644 v1.0/Blockchain/xinfin/xdcblockchaintransfer.md create mode 100644 v1.0/Blockchain/xinfin/xdcbroadcast.md create mode 100644 v1.0/Blockchain/xinfin/xdcgenerateaddress.md create mode 100644 v1.0/Blockchain/xinfin/xdcgenerateaddressprivatekey.md create mode 100644 v1.0/Blockchain/xinfin/xdcgeneratewallet.md create mode 100644 v1.0/Blockchain/xinfin/xdcgetbalance.md create mode 100644 v1.0/Blockchain/xinfin/xdcgetblock.md create mode 100644 v1.0/Blockchain/xinfin/xdcgetcurrentblock.md create mode 100644 v1.0/Blockchain/xinfin/xdcgettransaction.md create mode 100644 v1.0/Blockchain/xinfin/xdcgettransactioncount.md create mode 100644 v1.0/Blockchain/xinfin/xdcweb3driver.md create mode 100644 v1.0/Blockchain/xrp.md create mode 100644 v1.0/Blockchain/xrp/xrpaccountsettings.md create mode 100644 v1.0/Blockchain/xrp/xrpbroadcast.md create mode 100644 v1.0/Blockchain/xrp/xrpgetaccountbalance.md create mode 100644 v1.0/Blockchain/xrp/xrpgetaccountinfo.md create mode 100644 v1.0/Blockchain/xrp/xrpgetaccounttx.md create mode 100644 v1.0/Blockchain/xrp/xrpgetfee.md create mode 100644 v1.0/Blockchain/xrp/xrpgetlastclosedledger.md create mode 100644 v1.0/Blockchain/xrp/xrpgetledger.md create mode 100644 v1.0/Blockchain/xrp/xrpgettransaction.md create mode 100644 v1.0/Blockchain/xrp/xrptransferblockchain.md create mode 100644 v1.0/Blockchain/xrp/xrptrustlineblockchain.md create mode 100644 v1.0/Blockchain/xrp/xrpwallet.md create mode 100644 v1.0/Documentation/getting-started.md create mode 100644 v1.0/Documentation/getting-started/authentication-1.md create mode 100644 v1.0/Documentation/getting-started/create-your-first-app.md create mode 100644 v1.0/Documentation/getting-started/testnet-faucets.md create mode 100644 v1.0/Fee estimation/blockchain-fees.md create mode 100644 v1.0/Fee estimation/blockchain-fees/bscestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/celoestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/egldestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/estimatefeeblockchain-1.md create mode 100644 v1.0/Fee estimation/blockchain-fees/ethestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/ethestimategasbatch.md create mode 100644 v1.0/Fee estimation/blockchain-fees/getblockchainfee-1.md create mode 100644 v1.0/Fee estimation/blockchain-fees/kcsestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/klaytnestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/oneestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/polygonestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/vetestimategas.md create mode 100644 v1.0/Fee estimation/blockchain-fees/xdcestimategas.md create mode 100644 v1.0/Fee estimation/virtual-account-blockchain-fees.md create mode 100644 v1.0/Fee estimation/virtual-account-blockchain-fees/offchainestimatefee.md create mode 100644 v1.0/Learn blockchain/what-are-transactions.md create mode 100644 v1.0/Learn blockchain/what-are-transactions/what-are-internal-transactions.md create mode 100644 v1.0/Learn blockchain/what-are-transactions/what-are-the-reasons-a-transaction-fails.md create mode 100644 v1.0/Learn blockchain/what-is-a-blockchain.md create mode 100644 v1.0/Learn blockchain/what-is-a-token-on-blockchain.md create mode 100644 v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-fungible-tokens.md create mode 100644 v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-multitokens.md create mode 100644 v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-native-tokens.md create mode 100644 v1.0/Learn blockchain/what-is-a-token-on-blockchain/what-are-non-fungible-tokens.md create mode 100644 v1.0/REFERENCE/api.md create mode 100644 v1.0/REFERENCE/javascripttypescript.md create mode 100644 v1.0/REFERENCE/javascripttypescript/fungible-tokens.md create mode 100644 v1.0/REFERENCE/javascripttypescript/fungible-tokens/create-a-fungible-token.md create mode 100644 v1.0/REFERENCE/javascripttypescript/fungible-tokens/get-all-fungible-tokens-the-wallet-holds.md create mode 100644 v1.0/REFERENCE/javascripttypescript/fungible-tokens/get-metadata-of-a-fungible-token.md create mode 100644 v1.0/REFERENCE/javascripttypescript/fungible-tokens/show-fungible-token-history-of-a-wallet.md create mode 100644 v1.0/REFERENCE/javascripttypescript/ipfs-1.md create mode 100644 v1.0/REFERENCE/javascripttypescript/ipfs-1/upload-file.md create mode 100644 v1.0/REFERENCE/javascripttypescript/javascript-sdk.md create mode 100644 v1.0/REFERENCE/javascripttypescript/javascript-sdk/build-your-first-web3-app-with-tatum-sdk.md create mode 100644 v1.0/REFERENCE/javascripttypescript/javascript-sdk/configuration-options.md create mode 100644 v1.0/REFERENCE/javascripttypescript/javascript-sdk/logging.md create mode 100644 v1.0/REFERENCE/javascripttypescript/javascript-sdk/quick-start.md create mode 100644 v1.0/REFERENCE/javascripttypescript/javascript-sdk/submodules.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/check-if-the-wallet-owns-a-specific-nft.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/create-multitoken-nft-collection.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/create-nft-collection.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/get-all-nfts-in-the-nft-collection.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/get-all-nfts-the-wallet-holds.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/get-the-metadata-of-a-specific-nft.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/retrieve-the-owner-of-the-nft.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/show-the-nft-history-of-a-wallet.md create mode 100644 v1.0/REFERENCE/javascripttypescript/nfts-1/trace-the-history-of-a-specific-nft.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/get-current-exchange-rate-of-the-crypto-asset.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/get-current-rates-for-multiple-crypto-assets-at-once.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/supported-crypto-currencies.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-exchange-rates/supported-fiats.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-fee-estimation.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-fee-estimation/getcurrentfee.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-notifications.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator/simulate-transfer-erc20.md create mode 100644 v1.0/REFERENCE/javascripttypescript/sdk-transaction-simulator/simulate-transfer.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-address-operations.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-address-operations/get-all-assets-the-wallet-holds.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-address-operations/get-all-transactions-on-the-wallet.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-copy.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-address.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-mnemonic.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-private-key.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/generate-xpub.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-copy/sign-and-broadcast-a-transaction.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-address-1.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-mnemonic-1.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-private-key-1.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/generate-xpub-1.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-evm-copy/sign-and-broadcast-a-transaction-1.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-address-3.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-mnemonic-3.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-private-key-3.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/generate-xpub-2.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tezos-copy/sign-and-broadcast-a-transaction-2.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-address-2.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-mnemonic-2.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/generate-private-key-2.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider-tron-copy/get-private-key-address-and-mnemonic.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/approve-the-transfer-of-a-fungible-token-like-usdt.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/build-your-own-custom-transaction.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-collection-copy-1.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-collection.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/create-your-nft-erc-1155-multitoken-collection.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/test.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-fungible-tokens-like-usdt.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-native-assets.md create mode 100644 v1.0/REFERENCE/javascripttypescript/wallet-provider/transfer-your-nft.md create mode 100644 v1.0/RPC Nodes/rpc-evm.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-arbitrum.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-arbitrum/debug_storagerangeat-arbitrum.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_storagerangeat.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_traceblockbyhash.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_tracecall.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-debug_tracetransaction.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_blocknumber.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_call.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_chainid.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_estimategas.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gasprice.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockbyhash.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockbynumber.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblockreceipts.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblocktransactioncountbyhash.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getblocktransactioncountbynumber.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getcode.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getlogs.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getproof.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getstorageat.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyblockhashandindex.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyblocknumberandindex.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionbyhash.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactioncount.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_gettransactionreceipt.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getunclecountbyblockhash.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_getunclecountbyblocknumber.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_maxpriorityfeepergas.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-eth_sendrawtransaction.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockattestations.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockheader.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockheaders.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getblockroot.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getgenesis.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatecommittees.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatefinalitycheckpoints.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatefork.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstateroot.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatesynccommittees.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidator.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidatorbalances.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-getstatevalidators.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_content.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_inspect.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-txpool_status.md create mode 100644 v1.0/RPC Nodes/rpc-evm/rpc-ethereum/rpc-ethereum-web3_clientversion.md create mode 100644 v1.0/RPC Nodes/rpc-others.md create mode 100644 v1.0/RPC Nodes/rpc-others/ripple.md create mode 100644 v1.0/RPC Nodes/rpc-others/ripple/account_channels.md create mode 100644 v1.0/RPC Nodes/rpc-others/solana-3.md create mode 100644 v1.0/RPC Nodes/rpc-others/solana-3/getaccountinfo.md create mode 100644 v1.0/RPC Nodes/rpc-overview.md create mode 100644 v1.0/RPC Nodes/rpc-utxo.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getbestblockhash.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblock.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockchaininfo.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockcount.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockhash.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockheader.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getblockstats.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getchaintips.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getdifficulty.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolancestors.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempooldescendants.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolentry.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolinfo.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getrawmempool.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-gettxout.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-gettxoutproof.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-validateaddress.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-verifymessage.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-verifytxoutproof.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/doge.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/doge/getbestblockhash-1.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/doge/getblock-copy-1.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/doge/getblock-copy-2.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/doge/getblockcount-copy-1.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/doge/getblockhash-copy-1.md create mode 100644 v1.0/RPC Nodes/rpc-utxo/doge/getblockheader-1.md create mode 100644 v1.0/Security/custodial-managed-wallets.md create mode 100644 v1.0/Security/custodial-managed-wallets/custodialcreatewallet.md create mode 100644 v1.0/Security/custodial-managed-wallets/custodialdeletewallet.md create mode 100644 v1.0/Security/custodial-managed-wallets/custodialgetwallet.md create mode 100644 v1.0/Security/custodial-managed-wallets/custodialgetwallets.md create mode 100644 v1.0/Security/custodial-managed-wallets/custodialtransfermanagedaddress.md create mode 100644 v1.0/Security/key-management-system.md create mode 100644 v1.0/Security/key-management-system/completependingsignature.md create mode 100644 v1.0/Security/key-management-system/deletependingtransactiontosign.md create mode 100644 v1.0/Security/key-management-system/getpendingtransactionstosign.md create mode 100644 v1.0/Security/key-management-system/getpendingtransactiontosign.md create mode 100644 v1.0/Security/key-management-system/receivependingtransactionstosign.md create mode 100644 v1.0/Security/malicious-address.md create mode 100644 v1.0/Security/malicious-address/checkmalicousaddress.md create mode 100644 v1.0/Smart Contracts/auction.md create mode 100644 v1.0/Smart Contracts/auction/approvenftauctionspending.md create mode 100644 v1.0/Smart Contracts/auction/bidonauction.md create mode 100644 v1.0/Smart Contracts/auction/cancelauction.md create mode 100644 v1.0/Smart Contracts/auction/createauction.md create mode 100644 v1.0/Smart Contracts/auction/generateauction.md create mode 100644 v1.0/Smart Contracts/auction/getauction.md create mode 100644 v1.0/Smart Contracts/auction/getauctionfee.md create mode 100644 v1.0/Smart Contracts/auction/getauctionfeerecipient.md create mode 100644 v1.0/Smart Contracts/auction/settleauction.md create mode 100644 v1.0/Smart Contracts/auction/updateauctionfee.md create mode 100644 v1.0/Smart Contracts/auction/updateauctionfeerecipient.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20approve.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20burn.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20deploy.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20getbalance.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20getbalanceaddress.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20gettransactionbyaddress.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20mint.md create mode 100644 v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20transfer.md create mode 100644 v1.0/Smart Contracts/gas-pump.md create mode 100644 v1.0/Smart Contracts/gas-pump/activatednotactivatedgaspumpaddresses.md create mode 100644 v1.0/Smart Contracts/gas-pump/activategaspumpaddresses.md create mode 100644 v1.0/Smart Contracts/gas-pump/approvetransfercustodialwallet.md create mode 100644 v1.0/Smart Contracts/gas-pump/gaspumpaddressesactivatedornot.md create mode 100644 v1.0/Smart Contracts/gas-pump/generatecustodialwallet.md create mode 100644 v1.0/Smart Contracts/gas-pump/generatecustodialwalletbatch.md create mode 100644 v1.0/Smart Contracts/gas-pump/precalculategaspumpaddresses.md create mode 100644 v1.0/Smart Contracts/gas-pump/scgetcustodialaddresses.md create mode 100644 v1.0/Smart Contracts/gas-pump/transfercustodialwallet.md create mode 100644 v1.0/Smart Contracts/gas-pump/transfercustodialwalletbatch.md create mode 100644 v1.0/Smart Contracts/general.md create mode 100644 v1.0/Smart Contracts/general/deploycontract.md create mode 100644 v1.0/Smart Contracts/general/minterc721.md create mode 100644 v1.0/Smart Contracts/marketplace.md create mode 100644 v1.0/Smart Contracts/marketplace/buyassetonmarketplace.md create mode 100644 v1.0/Smart Contracts/marketplace/cancelsellmarketplacelisting.md create mode 100644 v1.0/Smart Contracts/marketplace/generatemarketplace.md create mode 100644 v1.0/Smart Contracts/marketplace/getmarketplacefee.md create mode 100644 v1.0/Smart Contracts/marketplace/getmarketplacefeerecipient.md create mode 100644 v1.0/Smart Contracts/marketplace/getmarketplaceinfo.md create mode 100644 v1.0/Smart Contracts/marketplace/getmarketplacelisting.md create mode 100644 v1.0/Smart Contracts/marketplace/getmarketplacelistings.md create mode 100644 v1.0/Smart Contracts/marketplace/sellassetonmarketplace.md create mode 100644 v1.0/Smart Contracts/marketplace/updatefee.md create mode 100644 v1.0/Smart Contracts/marketplace/updatefeerecipient.md create mode 100644 v1.0/Smart Contracts/marketplace/updatemarketplace.md create mode 100644 v1.0/Smart Contracts/marketplace/withdrawfeefrommarketplace.md create mode 100644 v1.0/Smart Contracts/marketplace/withdrawtreasuryfrommarketplace.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/addmultitokenminter.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/burnmultitoken.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/burnmultitokenbatch.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/deploymultitoken.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/mintmultitoken.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/mintmultitokenbatch.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetaddressbalance.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetbalance.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetbalancebatch.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetcontractaddress.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetmetadata.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengettransaction.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengettransactionbyaddress.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/transfermultitoken.md create mode 100644 v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/transfermultitokenbatch.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftaddminter.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftburnerc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftdeployerc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetbalanceerc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetcontractaddress.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetmetadataerc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettokensbyaddresserc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettokensbycollectionerc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransacterc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransactionbyaddress.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransactionbytoken.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftminterc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftmintmultipleerc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nfttransfererc721.md create mode 100644 v1.0/Smart Contracts/nft-erc-721-or-compatible/nftverifyincollection.md create mode 100644 v1.0/Storage/blockchain-storage.md create mode 100644 v1.0/Storage/blockchain-storage/getlog.md create mode 100644 v1.0/Storage/blockchain-storage/storelog.md create mode 100644 v1.0/Storage/ipfs.md create mode 100644 v1.0/Storage/ipfs/getipfsdata.md create mode 100644 v1.0/Storage/ipfs/storeipfs.md create mode 100644 v1.0/Subscriptions/notification-subscriptions.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/createsubscription.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/createsubscriptionold.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/deletesubscription.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/disablewebhookhmac.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/enablewebhookhmac.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/getallwebhooks.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/getallwebhookscount.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/getsubscriptionreport.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/getsubscriptions.md create mode 100644 v1.0/Subscriptions/notification-subscriptions/getsubscriptionscount.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/algorand-1.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/algorand-1/algo-get-account-transactions.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/cancel-or-replace-a-blockchain-transaction.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-beacon-chain-account-balance-attributes.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-bep2-and-bep20-token-transfers.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-transactions-over-beacon-chain-and-smart-chain.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/fee-estimate-gasprice-and-insufficient-funds.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/get-erc-20-or-compatibletoken-balance.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/getting-the-contractaddress-or-tokenaddress-from-a-transaction-hash.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/invoke-method-in-a-smart-contract.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/multi-tokens-erc-1155-name-and-symbol.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/nonce-what-is-it-and-optional-use.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/smart-contract-verification.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/token-decimals-erc-20-or-compatible.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/mnemonic-derivation-path.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/security-malicious-address.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/solana-2.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/solana-2/solana-indexing-and-confirmation.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/tron.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/estimate-fee-and-feelimit-for-trx-trc10-and-trc20.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-error-trontxexpired.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-transaction-could-not-be-found.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-troubleshooting-tapos-check-error.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-unable-to-find-account.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/unconfirmed-and-dropped-transactions.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/bitcoin-cpfp-and-stuck-transactions-in-the-mempool.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/bitcoin-replace-by-fee-and-stuck-transactions-in-the-mempool.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-fee-estimate-copy.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-fee-estimate.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-maxfeerate-limit-error.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-transaction-broadcast-error.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/dust-amount-detected-in-one-output.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/transaction-already-exists-in-mempool.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/xrp-1.md create mode 100644 v1.0/TROUBLESHOOTING/blockchain-operations-1/xrp-1/xrp-account-not-found.md create mode 100644 v1.0/TROUBLESHOOTING/contacting-support.md create mode 100644 v1.0/TROUBLESHOOTING/kms.md create mode 100644 v1.0/TROUBLESHOOTING/kms/kms-daemon-mode-and-credit-consumption.md create mode 100644 v1.0/TROUBLESHOOTING/kms/kms-environment-variables.md create mode 100644 v1.0/TROUBLESHOOTING/kms/kms-general-faq.md create mode 100644 v1.0/TROUBLESHOOTING/kms/kms-solana-and-generating-addresses.md create mode 100644 v1.0/TROUBLESHOOTING/nft.md create mode 100644 v1.0/TROUBLESHOOTING/nft/nft-harmony-one-and-nfts-not-loading.md create mode 100644 v1.0/TROUBLESHOOTING/nft/nft-opensea-and-listing-issues.md create mode 100644 v1.0/TROUBLESHOOTING/nft/nft-polygon-matic-transaction-pending.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes/debug-and-tracer-error-reexec128.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes/evm-like-ethereum-2.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes/evm-like-ethereum-2/evm-based-nodes-unsupported-methods.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes/solana-1.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes/solana-1/solana-error-getprogramaccounts.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes/solana-1/solana-long-response-times.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes/utxo-like-bitcoin-1.md create mode 100644 v1.0/TROUBLESHOOTING/rpc-nodes/utxo-like-bitcoin-1/utxo-based-nodes-unsupported-methods.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-notifications.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-notifications/notification-delivery-error-networkerror-true.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-outgoing-incoming-and-counteraddress.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-tatum-ips-waf-and-hmac.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-utxo-and-address_transaction.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-xrp-kms-and-failed-transactions.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/deposit-address-blockchain-balance-not-reflected.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/tron-withdrawal-error-offchaintrontxfailed.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-deposit-not-detected-with-bnb-xlm-or-xrp.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-error-xpub-not-compatible.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-withdrawals-from-a-gas-pump-deposit-address.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/withdrawal-registered-but-failed-in-the-blockchain.md create mode 100644 v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/withdrawals-to-blockchain-troubleshooting.md create mode 100644 v1.0/Utils/blockchain-utils.md create mode 100644 v1.0/Utils/blockchain-utils/getauctionestimatedtime.md create mode 100644 v1.0/Utils/blockchain-utils/scgetcontractaddress.md create mode 100644 v1.0/Utils/exchange-rate.md create mode 100644 v1.0/Utils/exchange-rate/getexchangerate.md create mode 100644 v1.0/Utils/exchange-rate/getexchangerates.md create mode 100644 v1.0/Utils/service-utils.md create mode 100644 v1.0/Utils/service-utils/freezeapikey.md create mode 100644 v1.0/Utils/service-utils/getcredits.md create mode 100644 v1.0/Utils/service-utils/getversion.md create mode 100644 v1.0/Utils/service-utils/unfreezeapikey.md create mode 100644 v1.0/Virtual Accounts/account.md create mode 100644 v1.0/Virtual Accounts/account/activateaccount.md create mode 100644 v1.0/Virtual Accounts/account/blockamount.md create mode 100644 v1.0/Virtual Accounts/account/createaccount.md create mode 100644 v1.0/Virtual Accounts/account/createaccountbatch.md create mode 100644 v1.0/Virtual Accounts/account/deactivateaccount.md create mode 100644 v1.0/Virtual Accounts/account/deleteallblockamount.md create mode 100644 v1.0/Virtual Accounts/account/deleteblockamount.md create mode 100644 v1.0/Virtual Accounts/account/freezeaccount.md create mode 100644 v1.0/Virtual Accounts/account/getaccountbalance.md create mode 100644 v1.0/Virtual Accounts/account/getaccountbyaccountid.md create mode 100644 v1.0/Virtual Accounts/account/getaccounts.md create mode 100644 v1.0/Virtual Accounts/account/getaccountsbycustomerid.md create mode 100644 v1.0/Virtual Accounts/account/getaccountscount.md create mode 100644 v1.0/Virtual Accounts/account/getblockamount.md create mode 100644 v1.0/Virtual Accounts/account/getblockamountbyid.md create mode 100644 v1.0/Virtual Accounts/account/unblockamountwithtransaction.md create mode 100644 v1.0/Virtual Accounts/account/unfreezeaccount.md create mode 100644 v1.0/Virtual Accounts/account/updateaccountbyaccountid.md create mode 100644 v1.0/Virtual Accounts/blockchain-addresses.md create mode 100644 v1.0/Virtual Accounts/blockchain-addresses/addressexists.md create mode 100644 v1.0/Virtual Accounts/blockchain-addresses/assignaddress.md create mode 100644 v1.0/Virtual Accounts/blockchain-addresses/generatedepositaddress.md create mode 100644 v1.0/Virtual Accounts/blockchain-addresses/generatedepositaddressesbatch.md create mode 100644 v1.0/Virtual Accounts/blockchain-addresses/getalldepositaddresses.md create mode 100644 v1.0/Virtual Accounts/blockchain-addresses/removeaddress.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/adatransferoffchain.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/algodeployerc20ledger.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/algotransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/bchtransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/bnbassetoffchain.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/bnbtransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/bscdeploybep20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/bscorbeptransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/btctransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/celodeployerc20ledger.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/celoorerc20transfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/createbep20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/createceloerc20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/createerc20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/createhrm20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/createtrc.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/createxdc20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/dogetransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/egldtransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/ethdeployerc20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/ethtransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/ethtransfererc20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/flowtransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/kcsdeployerc20ledger.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/kcstransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/klaydeployerc20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/klaytransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/ltctransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/onedeployhrm20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/onetransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/polygontransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/registererc20token.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/soltransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/storeceloerc20address.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/storetokenaddress.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/storetrcaddress.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/trondeploytrc.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/trontransferoffchain.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/xdcdeployerc20.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/xdctransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/xlmassetoffchain.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/xlmtransfer.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/xrpassetoffchain.md create mode 100644 v1.0/Virtual Accounts/blockchain-operations-2/xrptransfer.md create mode 100644 v1.0/Virtual Accounts/customer.md create mode 100644 v1.0/Virtual Accounts/customer/activatecustomer.md create mode 100644 v1.0/Virtual Accounts/customer/deactivatecustomer.md create mode 100644 v1.0/Virtual Accounts/customer/disablecustomer.md create mode 100644 v1.0/Virtual Accounts/customer/enablecustomer.md create mode 100644 v1.0/Virtual Accounts/customer/findallcustomers.md create mode 100644 v1.0/Virtual Accounts/customer/getcustomerbyexternalorinternalid.md create mode 100644 v1.0/Virtual Accounts/customer/updatecustomer.md create mode 100644 v1.0/Virtual Accounts/deposit.md create mode 100644 v1.0/Virtual Accounts/deposit/getdeposits.md create mode 100644 v1.0/Virtual Accounts/deposit/getdepositscount.md create mode 100644 v1.0/Virtual Accounts/order-book.md create mode 100644 v1.0/Virtual Accounts/order-book/chartrequest.md create mode 100644 v1.0/Virtual Accounts/order-book/deleteaccounttrades.md create mode 100644 v1.0/Virtual Accounts/order-book/deletetrade.md create mode 100644 v1.0/Virtual Accounts/order-book/getbuytrades.md create mode 100644 v1.0/Virtual Accounts/order-book/getbuytradesbody.md create mode 100644 v1.0/Virtual Accounts/order-book/gethistoricaltrades.md create mode 100644 v1.0/Virtual Accounts/order-book/gethistoricaltradesbody.md create mode 100644 v1.0/Virtual Accounts/order-book/getmatchedtrades.md create mode 100644 v1.0/Virtual Accounts/order-book/getselltrades.md create mode 100644 v1.0/Virtual Accounts/order-book/getselltradesbody.md create mode 100644 v1.0/Virtual Accounts/order-book/gettradebyid.md create mode 100644 v1.0/Virtual Accounts/order-book/storetrade.md create mode 100644 v1.0/Virtual Accounts/transaction.md create mode 100644 v1.0/Virtual Accounts/transaction/gettransactions-1.md create mode 100644 v1.0/Virtual Accounts/transaction/gettransactionsbyaccountid.md create mode 100644 v1.0/Virtual Accounts/transaction/gettransactionsbycustomerid.md create mode 100644 v1.0/Virtual Accounts/transaction/gettransactionsbyreference.md create mode 100644 v1.0/Virtual Accounts/transaction/sendtransaction.md create mode 100644 v1.0/Virtual Accounts/transaction/sendtransactionbatch.md create mode 100644 v1.0/Virtual Accounts/virtual-currency.md create mode 100644 v1.0/Virtual Accounts/virtual-currency/createcurrency.md create mode 100644 v1.0/Virtual Accounts/virtual-currency/getcurrency.md create mode 100644 v1.0/Virtual Accounts/virtual-currency/mintcurrency.md create mode 100644 v1.0/Virtual Accounts/virtual-currency/revokecurrency.md create mode 100644 v1.0/Virtual Accounts/virtual-currency/updatecurrency.md create mode 100644 v1.0/Virtual Accounts/withdrawal.md create mode 100644 v1.0/Virtual Accounts/withdrawal/broadcastblockchaintransaction.md create mode 100644 v1.0/Virtual Accounts/withdrawal/cancelinprogresswithdrawal.md create mode 100644 v1.0/Virtual Accounts/withdrawal/completewithdrawal.md create mode 100644 v1.0/Virtual Accounts/withdrawal/getwithdrawals.md create mode 100644 v1.0/Virtual Accounts/withdrawal/storewithdrawal.md create mode 100644 v1.0/getting started/authentication.md create mode 100644 v1.0/getting started/welcome-to-the-tatum-api-reference.md diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/docs-guides.iml b/.idea/docs-guides.iml new file mode 100644 index 00000000..d6ebd480 --- /dev/null +++ b/.idea/docs-guides.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..e6be3f13 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..8c8b81a5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Changelog Posts/api-key-is-now-a-required-parameter-for-faucets.md b/Changelog Posts/api-key-is-now-a-required-parameter-for-faucets.md new file mode 100644 index 00000000..f7b11755 --- /dev/null +++ b/Changelog Posts/api-key-is-now-a-required-parameter-for-faucets.md @@ -0,0 +1,19 @@ +--- +title: "API Key is now a required parameter for Faucets" +slug: "api-key-is-now-a-required-parameter-for-faucets" +type: "improved" +createdAt: "Fri Nov 24 2023 11:26:00 GMT+0000 (Coordinated Universal Time)" +hidden: true +--- +To ensure that the faucet service is not abused we have updated the fund function in the Faucets submodule to require a testnet key, which can be acquired for free in our [dashboard](https://dashboard.tatum.io/). + +```coffeescript JavaScript +import { TatumSDK, Network, Ethereum } from '@tatumio/tatum' + +// What changed +const tatum = await TatumSDK.init({ + network: Network.ETHEREUM_SEPOLIA, + // Include this line to have api key. + apiKey: { v4: 'YOUR-API-KEY'} +}) +``` \ No newline at end of file diff --git a/Changelog Posts/base-new-rpc-offering.md b/Changelog Posts/base-new-rpc-offering.md new file mode 100644 index 00000000..77f1371f --- /dev/null +++ b/Changelog Posts/base-new-rpc-offering.md @@ -0,0 +1,27 @@ +--- +title: "Base (new RPC Offering)" +slug: "base-new-rpc-offering" +type: "added" +createdAt: "Wed Mar 13 2024 13:55:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +We're excited to announce the launch of **Base**. + +[block:image] +{ + "images": [ + { + "image": [ + "https://files.readme.io/fd092eb-base-logo.webp", + "", + "" + ], + "align": "center" + } + ] +} +[/block] + + +Base is a secure, Ethereum Layer 2 network aimed at Web3 scalability - developed by Coinbase. +It offers a developer-friendly environment with low fees, full EVM compatibility, and does not require a native token. Designed to support a wide array of applications, including DeFi and NFTs. \ No newline at end of file diff --git a/Changelog Posts/batch-operations-for-btc-related-endpoints.md b/Changelog Posts/batch-operations-for-btc-related-endpoints.md new file mode 100644 index 00000000..4fc0bd76 --- /dev/null +++ b/Changelog Posts/batch-operations-for-btc-related-endpoints.md @@ -0,0 +1,11 @@ +--- +title: "Batch operations for BTC Related Endpoints" +slug: "batch-operations-for-btc-related-endpoints" +type: "added" +createdAt: "Mon Feb 26 2024 13:44:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +We have added batch support for two BTC Related Endpoints: + +- Get Unspent UTXO's for addresses batch +- Get Transactions for an address by Batch \ No newline at end of file diff --git a/Changelog Posts/chiliz-spicy-faucet-now-available-in-our-dashboard.md b/Changelog Posts/chiliz-spicy-faucet-now-available-in-our-dashboard.md new file mode 100644 index 00000000..9d05838a --- /dev/null +++ b/Changelog Posts/chiliz-spicy-faucet-now-available-in-our-dashboard.md @@ -0,0 +1,30 @@ +--- +title: "Chiliz Spicy Faucet now available in Dashboard" +slug: "chiliz-spicy-faucet-now-available-in-our-dashboard" +type: "added" +createdAt: "Fri Mar 08 2024 12:45:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +Access Chiliz testnet tokens directly from our platform through the newly implemented Chiliz Faucets on the dashboard. This feature is designed to support your testing and development activities, providing you with the resources you need to explore and innovate. + +[Get Chiliz Tokens](https://dashboard.tatum.io/faucets) + +[block:image] +{ + "images": [ + { + "image": [ + "https://files.readme.io/971a8a9-Screenshot_2024-03-15_at_13.47.13.png", + "", + "" + ], + "align": "center" + } + ] +} +[/block] + + +### About Chiliz + +Chiliz, the creator of Fan Tokens, has launched its own Layer 1 EVM compatible blockchain. Chiliz Chain will become the leading infrastructure for sports, attracting teams, fans, and developers, to build web3 products and experiences that bring fans and brands together. \ No newline at end of file diff --git a/Changelog Posts/cronos-new-rpc-offering.md b/Changelog Posts/cronos-new-rpc-offering.md new file mode 100644 index 00000000..adeb533a --- /dev/null +++ b/Changelog Posts/cronos-new-rpc-offering.md @@ -0,0 +1,26 @@ +--- +title: "Cronos (new RPC Offering)" +slug: "cronos-new-rpc-offering" +type: "added" +createdAt: "Mon Mar 11 2024 13:51:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +We're excited to announce the launch of **Cronos**. + +[block:image] +{ + "images": [ + { + "image": [ + "https://files.readme.io/43aa91e-cronos-logo.webp", + "", + "" + ], + "align": "center" + } + ] +} +[/block] + + +Cronos is a blockchain network that enhances interoperability with both Ethereum and Cosmos, aiming to expand the Web3 community. It supports DeFi, gaming, NFTs, and the Metaverse by enabling quick app porting with low costs, high throughput, and rapid finality. \ No newline at end of file diff --git a/Changelog Posts/dashboard-extended-notifications-builder-support.md b/Changelog Posts/dashboard-extended-notifications-builder-support.md new file mode 100644 index 00000000..e33616c8 --- /dev/null +++ b/Changelog Posts/dashboard-extended-notifications-builder-support.md @@ -0,0 +1,23 @@ +--- +title: "Dashboard - Extended Notifications Builder Support" +slug: "dashboard-extended-notifications-builder-support" +type: "improved" +createdAt: "Tue Feb 20 2024 13:32:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +The Notification Builder in dashboard now supports creating notifications for Tezos, Flare, Holesky & Cronos, directly from the dashboard [here](https://dashboard.tatum.io). + +[block:image] +{ + "images": [ + { + "image": [ + "https://files.readme.io/3745dd9-Screenshot_2024-03-19_at_14.36.41.png", + null, + "" + ], + "align": "center" + } + ] +} +[/block] \ No newline at end of file diff --git a/Changelog Posts/enhanced-notifications-in-dashboard.md b/Changelog Posts/enhanced-notifications-in-dashboard.md new file mode 100644 index 00000000..84fdf576 --- /dev/null +++ b/Changelog Posts/enhanced-notifications-in-dashboard.md @@ -0,0 +1,24 @@ +--- +title: "Enhanced Notifications in Dashboard" +slug: "enhanced-notifications-in-dashboard" +type: "improved" +createdAt: "Mon Jan 15 2024 11:30:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +We've revamped the Notifications UI for a smoother experience. We've merged the tables into one comprehensive, filterable, and searchable table. Users can now search for specific notifications using transaction id or address. See more on [Notifications page](https://dashboard.tatum.io/notifications). + +[block:image] +{ + "images": [ + { + "image": [ + "https://files.readme.io/f975441-spaces_pyovoYEcnnNJ144z4amp_uploads_EUkvfzvwMZv1GuvN13Qh_Screenshot_2024-01-15_at_6.webp", + "", + "The user searched for the transaction ID which returned the exact notification that was triggered with Request & Response. \n " + ], + "align": "center", + "caption": "The user searched for the transaction ID which returned the exact notification that was triggered with Request & Response. \n " + } + ] +} +[/block] \ No newline at end of file diff --git a/Changelog Posts/expanded-payments-billing-options-with-yearly-subscriptions.md b/Changelog Posts/expanded-payments-billing-options-with-yearly-subscriptions.md new file mode 100644 index 00000000..b09a6846 --- /dev/null +++ b/Changelog Posts/expanded-payments-billing-options-with-yearly-subscriptions.md @@ -0,0 +1,20 @@ +--- +title: "Expanded Payments & Billing Options with Yearly Subscriptions" +slug: "expanded-payments-billing-options-with-yearly-subscriptions" +type: "improved" +createdAt: "Wed Mar 13 2024 13:58:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +We're thrilled to announce several exciting updates to our Payments & Billing system that make managing your subscriptions and payments easier and more flexible than ever! + +- Yearly Subscriptions: By popular demand, Tatum now offers the option for Yearly Subscriptions, allowing you to enjoy our services with even more convenience and savings. + +> 👍 Get ready for the bull market with a special yearly offer! +> +> ~~$39~~** $25** / month for a year +> [ Upgrade plan](https://dashboard.tatum.io/upgrade-plan) + +- **Invoice Management: **Whenever a new invoice is generated, we'll share it directly with you as a PDF attachment via email, ensuring you always have easy access to billing documents. +- **Payment Methods:** We've broadened payment options to include WeChat Pay, Link, Cash App Pay, Google Pay, and Apple Pay - providing a wide range of choices to manage payments effortlessly. + +You can check and update your plan details and billing [here on dashboard](https://dashboard.tatum.io/upgrade-plan). \ No newline at end of file diff --git a/Changelog Posts/fantom-new-rpc-offering.md b/Changelog Posts/fantom-new-rpc-offering.md new file mode 100644 index 00000000..4cab6461 --- /dev/null +++ b/Changelog Posts/fantom-new-rpc-offering.md @@ -0,0 +1,8 @@ +--- +title: "Fantom (new RPC Offering)" +slug: "fantom-new-rpc-offering" +type: "added" +createdAt: "Wed Feb 07 2024 13:30:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +We are excited to announce the support of Fantom Network. \ No newline at end of file diff --git a/Changelog Posts/faucets-now-available-in-tatum-sdk.md b/Changelog Posts/faucets-now-available-in-tatum-sdk.md new file mode 100644 index 00000000..a0b74f20 --- /dev/null +++ b/Changelog Posts/faucets-now-available-in-tatum-sdk.md @@ -0,0 +1,9 @@ +--- +title: "Faucets now available in Tatum SDK" +slug: "faucets-now-available-in-tatum-sdk" +type: "added" +createdAt: "Tue Nov 21 2023 11:26:00 GMT+0000 (Coordinated Universal Time)" +hidden: true +--- +We now have a Faucet Submodule which has a fund function to get you your testnet tokens without the need of leaving your coding environment. We allow any wallet that has a low wallet balance for supported testnets to request a testnet token once a day. +Read more on the Faucets Submodule Page. \ No newline at end of file diff --git a/Changelog Posts/flare-network-new-rpc-offering.md b/Changelog Posts/flare-network-new-rpc-offering.md new file mode 100644 index 00000000..cbc51449 --- /dev/null +++ b/Changelog Posts/flare-network-new-rpc-offering.md @@ -0,0 +1,8 @@ +--- +title: "Flare Network (new RPC offering)" +slug: "flare-network-new-rpc-offering" +type: "added" +createdAt: "Tue Dec 12 2023 11:29:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +Get started using the Flare network here. \ No newline at end of file diff --git a/Changelog Posts/full-control-over-api-keys-createdeleteregenerate.md b/Changelog Posts/full-control-over-api-keys-createdeleteregenerate.md new file mode 100644 index 00000000..792db0ff --- /dev/null +++ b/Changelog Posts/full-control-over-api-keys-createdeleteregenerate.md @@ -0,0 +1,16 @@ +--- +title: "Full Control over API Keys: Create, delete, regenerate" +slug: "full-control-over-api-keys-createdeleteregenerate" +type: "improved" +createdAt: "Wed Mar 06 2024 13:48:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +With the new dashboard update, you have the ability to not only regenerate your API keys in response to security concerns but also to create new keys and delete those no longer needed. + +You can manage your API keys completely, providing a secure, customisable experience. +**[Manage API keys](https://dashboard.tatum.io)** + +> 📘 Don’t have an API key? +> +> Unlock all networks, features and monitor error logs & usage. +> [Create API key for FREE](https://dashboard.tatum.io/signup) \ No newline at end of file diff --git a/Changelog Posts/haqq-network-new-rpc-offering.md b/Changelog Posts/haqq-network-new-rpc-offering.md new file mode 100644 index 00000000..4a3f1f3e --- /dev/null +++ b/Changelog Posts/haqq-network-new-rpc-offering.md @@ -0,0 +1,8 @@ +--- +title: "Haqq Network (new RPC offering)" +slug: "haqq-network-new-rpc-offering" +type: "added" +createdAt: "Sun Nov 12 2023 11:25:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +Get started using the Haqq network here. \ No newline at end of file diff --git a/Changelog Posts/holesky-new-rpc-offering.md b/Changelog Posts/holesky-new-rpc-offering.md new file mode 100644 index 00000000..bed60702 --- /dev/null +++ b/Changelog Posts/holesky-new-rpc-offering.md @@ -0,0 +1,9 @@ +--- +title: "Holesky (new RPC Offering)" +slug: "holesky-new-rpc-offering" +type: "added" +createdAt: "Tue Feb 13 2024 13:31:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +We are excited to announce the support of Goerli Testnet. +You can specify Holesky in SDK as Network.ETHEREUM_HOLESKY \ No newline at end of file diff --git a/Changelog Posts/horizen-eon-new-rpc-offering.md b/Changelog Posts/horizen-eon-new-rpc-offering.md new file mode 100644 index 00000000..8d10ddef --- /dev/null +++ b/Changelog Posts/horizen-eon-new-rpc-offering.md @@ -0,0 +1,8 @@ +--- +title: "Horizen Eon (new RPC offering)" +slug: "horizen-eon-new-rpc-offering" +type: "added" +createdAt: "Thu Oct 12 2023 10:21:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +Get started using the Horizen network here \ No newline at end of file diff --git a/Changelog Posts/improved-fee-estimations-for-transaction-success.md b/Changelog Posts/improved-fee-estimations-for-transaction-success.md new file mode 100644 index 00000000..b0cea9bb --- /dev/null +++ b/Changelog Posts/improved-fee-estimations-for-transaction-success.md @@ -0,0 +1,13 @@ +--- +title: "Improved Fee Estimations for Transaction Success" +slug: "improved-fee-estimations-for-transaction-success" +type: "improved" +createdAt: "Fri Mar 15 2024 14:00:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +We're excited to announce significant enhancements to our Fee Estimation system! Our latest update introduces a more dynamic approach to handling transaction fees, especially designed to adapt to varying network conditions. + +- **Adaptive Fee Estimations:** Our system now better recognises network congestion, adjusting fees accordingly to maximize the likelihood of your transactions being processed smoothly. +- **Uninterrupted Performance:** These improvements are designed to work seamlessly, ensuring that standard transaction activities remain unaffected, even during periods of high traffic. + +You can enjoy a more reliable transaction experience on our platform, even during busy times. \ No newline at end of file diff --git a/Changelog Posts/ipfs-features-supported-in-tatum-sdk.md b/Changelog Posts/ipfs-features-supported-in-tatum-sdk.md new file mode 100644 index 00000000..5fb522f3 --- /dev/null +++ b/Changelog Posts/ipfs-features-supported-in-tatum-sdk.md @@ -0,0 +1,8 @@ +--- +title: "IPFS features supported in Tatum SDK" +slug: "ipfs-features-supported-in-tatum-sdk" +type: "added" +createdAt: "Wed Oct 04 2023 10:19:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +IPFS is very crucial in the web3 world, whether you need to store the metadata of NFTs or some information about the levels of the game you might be building. We totally get that, and that's why we are happy to introduce you to the IPFS Submodule, Currently we only support upload functionality, which can be accessed on this upload function page. \ No newline at end of file diff --git a/Changelog Posts/sunset-of-goerli-network.md b/Changelog Posts/sunset-of-goerli-network.md new file mode 100644 index 00000000..5a0c9a25 --- /dev/null +++ b/Changelog Posts/sunset-of-goerli-network.md @@ -0,0 +1,8 @@ +--- +title: "Sunset of Goerli Network" +slug: "sunset-of-goerli-network" +type: "removed" +createdAt: "Fri Mar 01 2024 13:45:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +As Goerli (Testnet Ethereum Network) has reached its end of life support, we have removed the support for Goerli from all our Core Products Like RPC, Data Solution & more, from both API's & SDK. \ No newline at end of file diff --git a/Changelog Posts/transactions-simulator-available-as-extension-in-sdk.md b/Changelog Posts/transactions-simulator-available-as-extension-in-sdk.md new file mode 100644 index 00000000..7078fdb9 --- /dev/null +++ b/Changelog Posts/transactions-simulator-available-as-extension-in-sdk.md @@ -0,0 +1,9 @@ +--- +title: "Transactions Simulator available as Extension in SDK" +slug: "transactions-simulator-available-as-extension-in-sdk" +type: "added" +createdAt: "Sun Oct 15 2023 10:22:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +Transaction Simulator has finally arrived and you can now use the Simulate Transfer function to see what changes a transaction would make on the balances when sent on chain. We currently support Simulator only for EVM chains. +Read more in the Transaction Simulator Submodule Page \ No newline at end of file diff --git a/Changelog Posts/welcome-to-tatumdocs.md b/Changelog Posts/welcome-to-tatumdocs.md new file mode 100644 index 00000000..d3867362 --- /dev/null +++ b/Changelog Posts/welcome-to-tatumdocs.md @@ -0,0 +1,8 @@ +--- +title: "Exchange Rates available in Tatum SDK" +slug: "welcome-to-tatumdocs" +type: "added" +createdAt: "Tue Sep 12 2023 07:41:00 GMT+0000 (Coordinated Universal Time)" +hidden: false +--- +Exchange rate submodule allows you to fetch the current exchange rates of wide range of cryptocurrencies against major fiats, you can read about the supported currencies in the Exchange Rate Submodule Section. \ No newline at end of file diff --git a/v0/Blockchain Data/defi-api.md b/v0/Blockchain Data/defi-api.md new file mode 100644 index 00000000..834d386f --- /dev/null +++ b/v0/Blockchain Data/defi-api.md @@ -0,0 +1,8 @@ +--- +title: "Block API" +slug: "defi-api" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Feb 07 2024 09:44:47 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Data/defi-api/getblocks.md b/v0/Blockchain Data/defi-api/getblocks.md new file mode 100644 index 00000000..72755f96 --- /dev/null +++ b/v0/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):

\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 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/defi-api/getevents.md b/v0/Blockchain Data/defi-api/getevents.md new file mode 100644 index 00000000..b76d6f5e --- /dev/null +++ b/v0/Blockchain Data/defi-api/getevents.md @@ -0,0 +1,8 @@ +--- +title: "Get specified events" +slug: "getevents" +excerpt: "

20 credits per API call

\n

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.
  • \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/defi-api/getlatestblock.md b/v0/Blockchain Data/defi-api/getlatestblock.md new file mode 100644 index 00000000..10815dcc --- /dev/null +++ b/v0/Blockchain Data/defi-api/getlatestblock.md @@ -0,0 +1,8 @@ +--- +title: "Get latest block" +slug: "getlatestblock" +excerpt: "

1 credit per API call

\n

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.

+ Get started for free +
+ +# 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.
  • \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/getmetadata.md b/v0/Blockchain Data/nft-api/getmetadata.md new file mode 100644 index 00000000..a686dae4 --- /dev/null +++ b/v0/Blockchain Data/nft-api/getmetadata.md @@ -0,0 +1,8 @@ +--- +title: "Get token metadata" +slug: "getmetadata" +excerpt: "

5 credits per API call

\n

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:

\n
    \n
  • Bitcoin
  • \n
  • Dogecoin
  • \n
  • Ethereum
  • \n
  • Litecoin
  • \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/gettransactions.md b/v0/Blockchain Data/transactions-api/gettransactions.md new file mode 100644 index 00000000..74c9b9b7 --- /dev/null +++ b/v0/Blockchain Data/transactions-api/gettransactions.md @@ -0,0 +1,8 @@ +--- +title: "Get transactions" +slug: "gettransactions" +excerpt: "

20 credits per API call

\n

Get transactions 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 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 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/gettransactionsbyhash.md b/v0/Blockchain Data/transactions-api/gettransactionsbyhash.md new file mode 100644 index 00000000..40b0c00d --- /dev/null +++ b/v0/Blockchain Data/transactions-api/gettransactionsbyhash.md @@ -0,0 +1,8 @@ +--- +title: "Get transactions by hash" +slug: "gettransactionsbyhash" +excerpt: "

5 credits per API call

\n

Get transactions by hash 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 transaction hash, and our API will return a list of transactions with that hash.
  • \n
  • The response will contain all the relevant information about specified transactions such as their block number, IDs of involved token, and more.
  • \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.md b/v0/Blockchain Data/wallet-api.md new file mode 100644 index 00000000..2a582df6 --- /dev/null +++ b/v0/Blockchain Data/wallet-api.md @@ -0,0 +1,8 @@ +--- +title: "Address API" +slug: "wallet-api" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 09:07:05 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 20 2024 06:40:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Data/wallet-api/getbalances.md b/v0/Blockchain Data/wallet-api/getbalances.md new file mode 100644 index 00000000..7d6360a0 --- /dev/null +++ b/v0/Blockchain Data/wallet-api/getbalances.md @@ -0,0 +1,8 @@ +--- +title: "Get balances of addresses" +slug: "getbalances" +excerpt: "

50 credits per API call

\n

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.
  • \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 Utility InP/account.md b/v0/Blockchain Utility InP/account.md new file mode 100644 index 00000000..00335c71 --- /dev/null +++ b/v0/Blockchain Utility InP/account.md @@ -0,0 +1,8 @@ +--- +title: "Account" +slug: "account" +excerpt: "" +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/activateaccount.md b/v0/Blockchain Utility InP/account/activateaccount.md new file mode 100644 index 00000000..f0179628 --- /dev/null +++ b/v0/Blockchain Utility InP/account/activateaccount.md @@ -0,0 +1,8 @@ +--- +title: "Activate account" +slug: "activateaccount" +excerpt: "

2 credits per API call.


Activates an account.

" +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.

" +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/createaccount.md b/v0/Blockchain Utility InP/account/createaccount.md new file mode 100644 index 00000000..0604f9ad --- /dev/null +++ b/v0/Blockchain Utility InP/account/createaccount.md @@ -0,0 +1,8 @@ +--- +title: "Create a virtual account" +slug: "createaccount" +excerpt: "

2 credits per API call

\n

Create a new virtual account for a customer.

\n
    \n
  • 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

Connect a virtual account to the blockchain

\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.
  • \n
" +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/createaccountbatch.md b/v0/Blockchain Utility InP/account/createaccountbatch.md new file mode 100644 index 00000000..9d40fd82 --- /dev/null +++ b/v0/Blockchain Utility InP/account/createaccountbatch.md @@ -0,0 +1,8 @@ +--- +title: "Create multiple accounts in a batch call" +slug: "createaccountbatch" +excerpt: "

2 credits per API call + 1 credit for every account created.


\n

Creates new accounts for the customer in a batch call.

" +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/deactivateaccount.md b/v0/Blockchain Utility InP/account/deactivateaccount.md new file mode 100644 index 00000000..d8e417c3 --- /dev/null +++ b/v0/Blockchain Utility InP/account/deactivateaccount.md @@ -0,0 +1,8 @@ +--- +title: "Deactivate account" +slug: "deactivateaccount" +excerpt: "

2 credits per API call.


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.

" +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/freezeaccount.md b/v0/Blockchain Utility InP/account/freezeaccount.md new file mode 100644 index 00000000..7041ed29 --- /dev/null +++ b/v0/Blockchain Utility InP/account/freezeaccount.md @@ -0,0 +1,8 @@ +--- +title: "Freeze account" +slug: "freezeaccount" +excerpt: "

2 credits per API call.


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/getaccountbalance.md b/v0/Blockchain Utility InP/account/getaccountbalance.md new file mode 100644 index 00000000..0ab216fe --- /dev/null +++ b/v0/Blockchain Utility InP/account/getaccountbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get account balance" +slug: "getaccountbalance" +excerpt: "

1 credit per API call.


Get balance for the account.

" +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/getaccountbyaccountid.md b/v0/Blockchain Utility InP/account/getaccountbyaccountid.md new file mode 100644 index 00000000..26f4d82e --- /dev/null +++ b/v0/Blockchain Utility InP/account/getaccountbyaccountid.md @@ -0,0 +1,8 @@ +--- +title: "Get account by ID" +slug: "getaccountbyaccountid" +excerpt: "

1 credit per API call.


Gets active account by ID. Displays all information regarding the given account.

" +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/getaccounts.md b/v0/Blockchain Utility InP/account/getaccounts.md new file mode 100644 index 00000000..bd3d7adf --- /dev/null +++ b/v0/Blockchain Utility InP/account/getaccounts.md @@ -0,0 +1,8 @@ +--- +title: "List all accounts" +slug: "getaccounts" +excerpt: "

1 credit per API call.


Lists all accounts. Inactive accounts are also visible.

" +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/getaccountsbycustomerid.md b/v0/Blockchain Utility InP/account/getaccountsbycustomerid.md new file mode 100644 index 00000000..b4c175c6 --- /dev/null +++ b/v0/Blockchain Utility InP/account/getaccountsbycustomerid.md @@ -0,0 +1,8 @@ +--- +title: "List all customer accounts" +slug: "getaccountsbycustomerid" +excerpt: "

1 credit per API call.


Lists all accounts associated with a customer. Only active accounts are visible.

" +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/getaccountscount.md b/v0/Blockchain Utility InP/account/getaccountscount.md new file mode 100644 index 00000000..16c9a23e --- /dev/null +++ b/v0/Blockchain Utility InP/account/getaccountscount.md @@ -0,0 +1,8 @@ +--- +title: "Count of found entities for get accounts request" +slug: "getaccountscount" +excerpt: "

1 credit per API call.


Count of accounts that were found from /v3/ledger/account

" +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/getblockamount.md b/v0/Blockchain Utility InP/account/getblockamount.md new file mode 100644 index 00000000..c4c56a5f --- /dev/null +++ b/v0/Blockchain Utility InP/account/getblockamount.md @@ -0,0 +1,8 @@ +--- +title: "Get blocked amounts in an account" +slug: "getblockamount" +excerpt: "

1 credit per API call.


Gets blocked amounts for an account.

" +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 Utility InP/account/getblockamountbyid.md b/v0/Blockchain Utility InP/account/getblockamountbyid.md new file mode 100644 index 00000000..465363e8 --- /dev/null +++ b/v0/Blockchain Utility InP/account/getblockamountbyid.md @@ -0,0 +1,8 @@ +--- +title: "Get blocked amount by ID" +slug: "getblockamountbyid" +excerpt: "

1 credit per API call.


Gets blocked amount by id.

" +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.

" +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 Utility InP/account/unfreezeaccount.md b/v0/Blockchain Utility InP/account/unfreezeaccount.md new file mode 100644 index 00000000..c37603f6 --- /dev/null +++ b/v0/Blockchain Utility InP/account/unfreezeaccount.md @@ -0,0 +1,8 @@ +--- +title: "Unfreeze account" +slug: "unfreezeaccount" +excerpt: "

2 credits per API call.


Unfreezes a previously frozen account. Unfreezing a non-frozen account not affect the account.

" +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/updateaccountbyaccountid.md b/v0/Blockchain Utility InP/account/updateaccountbyaccountid.md new file mode 100644 index 00000000..50884ff1 --- /dev/null +++ b/v0/Blockchain Utility InP/account/updateaccountbyaccountid.md @@ -0,0 +1,8 @@ +--- +title: "Update account" +slug: "updateaccountbyaccountid" +excerpt: "

2 credits per API call.


Update account by ID. Only a small number of fields can be updated.

" +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 Utility InP/customer.md b/v0/Blockchain Utility InP/customer.md new file mode 100644 index 00000000..6ea695f0 --- /dev/null +++ b/v0/Blockchain Utility InP/customer.md @@ -0,0 +1,8 @@ +--- +title: "Customer" +slug: "customer" +excerpt: "" +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/customer/activatecustomer.md b/v0/Blockchain Utility InP/customer/activatecustomer.md new file mode 100644 index 00000000..d94e7d35 --- /dev/null +++ b/v0/Blockchain Utility InP/customer/activatecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Activate customer" +slug: "activatecustomer" +excerpt: "

2 credits per API call.


Activated customer is able to do any operation.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/customer/deactivatecustomer.md b/v0/Blockchain Utility InP/customer/deactivatecustomer.md new file mode 100644 index 00000000..ada00ba9 --- /dev/null +++ b/v0/Blockchain Utility InP/customer/deactivatecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Deactivate customer" +slug: "deactivatecustomer" +excerpt: "

2 credits per API call.


Deactivate customer is not able to do any operation. Customer can be deactivated only when all their accounts are already deactivated.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/customer/disablecustomer.md b/v0/Blockchain Utility InP/customer/disablecustomer.md new file mode 100644 index 00000000..1bde8e07 --- /dev/null +++ b/v0/Blockchain Utility InP/customer/disablecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Disable customer" +slug: "disablecustomer" +excerpt: "

2 credits per API call.


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.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/customer/enablecustomer.md b/v0/Blockchain Utility InP/customer/enablecustomer.md new file mode 100644 index 00000000..882f3fe1 --- /dev/null +++ b/v0/Blockchain Utility InP/customer/enablecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Enable customer" +slug: "enablecustomer" +excerpt: "

2 credits per API call.


Enabled customer can perform all operations. By default all customers are enabled. All previously blocked account balances will be unblocked.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/customer/findallcustomers.md b/v0/Blockchain Utility InP/customer/findallcustomers.md new file mode 100644 index 00000000..493b66f2 --- /dev/null +++ b/v0/Blockchain Utility InP/customer/findallcustomers.md @@ -0,0 +1,8 @@ +--- +title: "List all customers" +slug: "findallcustomers" +excerpt: "

1 credit per API call.


\n

List of all customers. Also inactive an disabled customers are present.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/customer/getcustomerbyexternalorinternalid.md b/v0/Blockchain Utility InP/customer/getcustomerbyexternalorinternalid.md new file mode 100644 index 00000000..8fadf556 --- /dev/null +++ b/v0/Blockchain Utility InP/customer/getcustomerbyexternalorinternalid.md @@ -0,0 +1,8 @@ +--- +title: "Get customer details" +slug: "getcustomerbyexternalorinternalid" +excerpt: "

1 credit per API call.


Using anonymized external ID or internal customer ID you can access customer detail information. Internal ID is needed to call other customer related methods.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/customer/updatecustomer.md b/v0/Blockchain Utility InP/customer/updatecustomer.md new file mode 100644 index 00000000..603b11e1 --- /dev/null +++ b/v0/Blockchain Utility InP/customer/updatecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Update customer" +slug: "updatecustomer" +excerpt: "

2 credits per API call.


This method is helpful in case your primary system will change ID's or customer will change the country he/she is supposed to be in compliance with.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/deposit.md b/v0/Blockchain Utility InP/deposit.md new file mode 100644 index 00000000..df04aaea --- /dev/null +++ b/v0/Blockchain Utility InP/deposit.md @@ -0,0 +1,8 @@ +--- +title: "Deposit" +slug: "deposit" +excerpt: "" +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/deposit/getdeposits.md b/v0/Blockchain Utility InP/deposit/getdeposits.md new file mode 100644 index 00000000..7f050770 --- /dev/null +++ b/v0/Blockchain Utility InP/deposit/getdeposits.md @@ -0,0 +1,8 @@ +--- +title: "List all deposits for product" +slug: "getdeposits" +excerpt: "

1 credit per API call.


Lists all deposits for API key.

" +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/deposit/getdepositscount.md b/v0/Blockchain Utility InP/deposit/getdepositscount.md new file mode 100644 index 00000000..f431db63 --- /dev/null +++ b/v0/Blockchain Utility InP/deposit/getdepositscount.md @@ -0,0 +1,8 @@ +--- +title: "Count of found entities for get deposits request" +slug: "getdepositscount" +excerpt: "

1 credit per API call.


Counts total entities found by get deposits request.

" +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/transaction.md b/v0/Blockchain Utility InP/transaction.md new file mode 100644 index 00000000..151b4391 --- /dev/null +++ b/v0/Blockchain Utility InP/transaction.md @@ -0,0 +1,8 @@ +--- +title: "Transaction" +slug: "transaction" +excerpt: "" +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/transaction/gettransactions-1.md b/v0/Blockchain Utility InP/transaction/gettransactions-1.md new file mode 100644 index 00000000..791f4d86 --- /dev/null +++ b/v0/Blockchain Utility InP/transaction/gettransactions-1.md @@ -0,0 +1,8 @@ +--- +title: "Find transactions within the ledger." +slug: "gettransactions-1" +excerpt: "

1 credit per API call.


Find transactions across whole ledger.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/transaction/gettransactionsbyaccountid.md b/v0/Blockchain Utility InP/transaction/gettransactionsbyaccountid.md new file mode 100644 index 00000000..a6ebb327 --- /dev/null +++ b/v0/Blockchain Utility InP/transaction/gettransactionsbyaccountid.md @@ -0,0 +1,8 @@ +--- +title: "Find transactions for account." +slug: "gettransactionsbyaccountid" +excerpt: "

1 credit per API call.


Finds transactions for the account identified by the given account ID.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/transaction/gettransactionsbycustomerid.md b/v0/Blockchain Utility InP/transaction/gettransactionsbycustomerid.md new file mode 100644 index 00000000..bbea2471 --- /dev/null +++ b/v0/Blockchain Utility InP/transaction/gettransactionsbycustomerid.md @@ -0,0 +1,8 @@ +--- +title: "Find transactions for a customer across all of the customer's accounts." +slug: "gettransactionsbycustomerid" +excerpt: "

1 credit per API call.


Finds transactions for all accounts of the customer identified by the given internal customer ID.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 09:09:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/transaction/gettransactionsbyreference.md b/v0/Blockchain Utility InP/transaction/gettransactionsbyreference.md new file mode 100644 index 00000000..dbb12586 --- /dev/null +++ b/v0/Blockchain Utility InP/transaction/gettransactionsbyreference.md @@ -0,0 +1,8 @@ +--- +title: "Find transactions with a given reference across all accounts." +slug: "gettransactionsbyreference" +excerpt: "

1 credit per API call.


Finds transactions for all accounts with the given reference.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/transaction/sendtransaction.md b/v0/Blockchain Utility InP/transaction/sendtransaction.md new file mode 100644 index 00000000..810dee07 --- /dev/null +++ b/v0/Blockchain Utility InP/transaction/sendtransaction.md @@ -0,0 +1,8 @@ +--- +title: "Send payment" +slug: "sendtransaction" +excerpt: "

4 credits per API call.


\n

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.

" +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/transaction/sendtransactionbatch.md b/v0/Blockchain Utility InP/transaction/sendtransactionbatch.md new file mode 100644 index 00000000..af4b007e --- /dev/null +++ b/v0/Blockchain Utility InP/transaction/sendtransactionbatch.md @@ -0,0 +1,8 @@ +--- +title: "Send payment in batch" +slug: "sendtransactionbatch" +excerpt: "

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.

" +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/virtual-currency.md b/v0/Blockchain Utility InP/virtual-currency.md new file mode 100644 index 00000000..d2a8717b --- /dev/null +++ b/v0/Blockchain Utility InP/virtual-currency.md @@ -0,0 +1,8 @@ +--- +title: "Virtual Currency" +slug: "virtual-currency" +excerpt: "" +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/virtual-currency/createcurrency.md b/v0/Blockchain Utility InP/virtual-currency/createcurrency.md new file mode 100644 index 00000000..ffcf127e --- /dev/null +++ b/v0/Blockchain Utility InP/virtual-currency/createcurrency.md @@ -0,0 +1,8 @@ +--- +title: "Create new virtual currency" +slug: "createcurrency" +excerpt: "

2 credits per API call

\n

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)

\n

Tatum virtual currency acts as any other asset within Tatum. To create a fungible token, see the API for deploying a fungible token smart contract.

\n

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.
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/virtual-currency/getcurrency.md b/v0/Blockchain Utility InP/virtual-currency/getcurrency.md new file mode 100644 index 00000000..880e8a16 --- /dev/null +++ b/v0/Blockchain Utility InP/virtual-currency/getcurrency.md @@ -0,0 +1,8 @@ +--- +title: "Get virtual currency" +slug: "getcurrency" +excerpt: "

1 credit per API call

\n

Get detail of virtual currency.

" +hidden: false +createdAt: "Mon Feb 05 2024 09:09:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:24:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v0/Blockchain Utility InP/virtual-currency/mintcurrency.md b/v0/Blockchain Utility InP/virtual-currency/mintcurrency.md new file mode 100644 index 00000000..856995c7 --- /dev/null +++ b/v0/Blockchain Utility InP/virtual-currency/mintcurrency.md @@ -0,0 +1,8 @@ +--- +title: "Create new supply of virtual currency" +slug: "mintcurrency" +excerpt: "

2 credits per API call

\n

Create new supply of virtual currency linked on the given accountId. Method increases the total supply of the currency.

\n

This method creates Ledger transaction with operationType MINT with undefined counterAccountId.

" +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/virtual-currency/revokecurrency.md b/v0/Blockchain Utility InP/virtual-currency/revokecurrency.md new file mode 100644 index 00000000..ab429543 --- /dev/null +++ b/v0/Blockchain Utility InP/virtual-currency/revokecurrency.md @@ -0,0 +1,8 @@ +--- +title: "Destroy supply of virtual currency" +slug: "revokecurrency" +excerpt: "

2 credits per API call.


\n

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.

" +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 Utility InP/virtual-currency/updatecurrency.md b/v0/Blockchain Utility InP/virtual-currency/updatecurrency.md new file mode 100644 index 00000000..810add90 --- /dev/null +++ b/v0/Blockchain Utility InP/virtual-currency/updatecurrency.md @@ -0,0 +1,8 @@ +--- +title: "Update virtual currency" +slug: "updatecurrency" +excerpt: "

2 credits per API call.


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.

+ Get started for free +
+ +# 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.
  • \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/getbalancesold.md b/v1.0/Blockchain Data/data-api-old/getbalancesold.md new file mode 100644 index 00000000..d07e65fa --- /dev/null +++ b/v1.0/Blockchain Data/data-api-old/getbalancesold.md @@ -0,0 +1,8 @@ +--- +title: "Get balances of addresses" +slug: "getbalancesold" +excerpt: "

50 credits per API call

\n

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 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/getblocksold.md b/v1.0/Blockchain Data/data-api-old/getblocksold.md new file mode 100644 index 00000000..3a9652af --- /dev/null +++ b/v1.0/Blockchain Data/data-api-old/getblocksold.md @@ -0,0 +1,8 @@ +--- +title: "Get specified blocks" +slug: "getblocksold" +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):

\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.
  • \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/geteventsold.md b/v1.0/Blockchain Data/data-api-old/geteventsold.md new file mode 100644 index 00000000..e665a7ff --- /dev/null +++ b/v1.0/Blockchain Data/data-api-old/geteventsold.md @@ -0,0 +1,8 @@ +--- +title: "Get specified events" +slug: "geteventsold" +excerpt: "

20 credits per API call

\n

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.
  • \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/getlatestblockold.md b/v1.0/Blockchain Data/data-api-old/getlatestblockold.md new file mode 100644 index 00000000..731cb068 --- /dev/null +++ b/v1.0/Blockchain Data/data-api-old/getlatestblockold.md @@ -0,0 +1,8 @@ +--- +title: "Get latest block" +slug: "getlatestblockold" +excerpt: "

1 credit per API call

\n

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 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/getmetadataold.md b/v1.0/Blockchain Data/data-api-old/getmetadataold.md new file mode 100644 index 00000000..7e95f1d8 --- /dev/null +++ b/v1.0/Blockchain Data/data-api-old/getmetadataold.md @@ -0,0 +1,8 @@ +--- +title: "Get token metadata" +slug: "getmetadataold" +excerpt: "

5 credits per API call

\n

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.
  • \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/gettransactionsbyhashold.md b/v1.0/Blockchain Data/data-api-old/gettransactionsbyhashold.md new file mode 100644 index 00000000..44db63e2 --- /dev/null +++ b/v1.0/Blockchain Data/data-api-old/gettransactionsbyhashold.md @@ -0,0 +1,8 @@ +--- +title: "Get transactions by hash" +slug: "gettransactionsbyhashold" +excerpt: "

5 credits per API call

\n

Get transactions by hash 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 transaction hash, and our API will return a list of transactions with that hash.
  • \n
  • The response will contain all the relevant information about specified transactions such as their block number, IDs of involved token, and more.
  • \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/gettransactionsold.md b/v1.0/Blockchain Data/data-api-old/gettransactionsold.md new file mode 100644 index 00000000..d7cd410d --- /dev/null +++ b/v1.0/Blockchain Data/data-api-old/gettransactionsold.md @@ -0,0 +1,8 @@ +--- +title: "Get transactions" +slug: "gettransactionsold" +excerpt: "

20 credits per API call

\n

Get transactions 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 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):

\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 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/defi-api/getevents.md b/v1.0/Blockchain Data/defi-api/getevents.md new file mode 100644 index 00000000..ea4eedcb --- /dev/null +++ b/v1.0/Blockchain Data/defi-api/getevents.md @@ -0,0 +1,8 @@ +--- +title: "Get specified events" +slug: "getevents" +excerpt: "

20 credits per API call

\n

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.
  • \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/defi-api/getlatestblock.md b/v1.0/Blockchain Data/defi-api/getlatestblock.md new file mode 100644 index 00000000..31bbac1c --- /dev/null +++ b/v1.0/Blockchain Data/defi-api/getlatestblock.md @@ -0,0 +1,8 @@ +--- +title: "Get latest block" +slug: "getlatestblock" +excerpt: "

1 credit per API call

\n

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.

\n Get started for free\n
"}[/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.
  • \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/getmetadata.md b/v1.0/Blockchain Data/nft-api/getmetadata.md new file mode 100644 index 00000000..843fcc2c --- /dev/null +++ b/v1.0/Blockchain Data/nft-api/getmetadata.md @@ -0,0 +1,8 @@ +--- +title: "Get token metadata" +slug: "getmetadata" +excerpt: "

5 credits per API call

\n

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.

\n Get started for free\n
"}[/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:

\n
    \n
  • Bitcoin
  • \n
  • Dogecoin
  • \n
  • Ethereum
  • \n
  • Litecoin
  • \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/gettransactions.md b/v1.0/Blockchain Data/transactions-api/gettransactions.md new file mode 100644 index 00000000..c13df2fb --- /dev/null +++ b/v1.0/Blockchain Data/transactions-api/gettransactions.md @@ -0,0 +1,8 @@ +--- +title: "Get transactions" +slug: "gettransactions" +excerpt: "

20 credits per API call

\n

Get transactions 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 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 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/gettransactionsbyhash.md b/v1.0/Blockchain Data/transactions-api/gettransactionsbyhash.md new file mode 100644 index 00000000..80d3d9c7 --- /dev/null +++ b/v1.0/Blockchain Data/transactions-api/gettransactionsbyhash.md @@ -0,0 +1,8 @@ +--- +title: "Get transactions by hash" +slug: "gettransactionsbyhash" +excerpt: "

5 credits per API call

\n

Get transactions by hash 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 transaction hash, and our API will return a list of transactions with that hash.
  • \n
  • The response will contain all the relevant information about specified transactions such as their block number, IDs of involved token, and more.
  • \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/wallet-api.md b/v1.0/Blockchain Data/wallet-api.md new file mode 100644 index 00000000..f6363d74 --- /dev/null +++ b/v1.0/Blockchain Data/wallet-api.md @@ -0,0 +1,8 @@ +--- +title: "Wallet API" +slug: "wallet-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/wallet-api/getbalances.md b/v1.0/Blockchain Data/wallet-api/getbalances.md new file mode 100644 index 00000000..6e447b27 --- /dev/null +++ b/v1.0/Blockchain Data/wallet-api/getbalances.md @@ -0,0 +1,8 @@ +--- +title: "Get balances of addresses" +slug: "getbalances" +excerpt: "

50 credits per API call

\n

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:

\n
\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"method_name\",\n  \"params\": []\n}\n
\n

For the blockchains using the JSON-RPC 2.0 specification, you can submit multiple RPC methods in one API call:

\n
\n[\n  {\n    \"jsonrpc\": \"2.0\",\n    \"id\": 1,\n    \"method\": \"method_1_name\",\n    \"params\": []\n  },\n  {\n    \"jsonrpc\": \"2.0\",\n    \"id\": 2,\n    \"method\": \"method_2_name\",\n    \"params\": []\n  },\n  ...\n]\n
\n

This API is supported for the following blockchains:

\n" +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/nodejsonrpcgetdriver.md b/v1.0/Blockchain Node RPC/node-rpc/nodejsonrpcgetdriver.md new file mode 100644 index 00000000..fb220e44 --- /dev/null +++ b/v1.0/Blockchain Node RPC/node-rpc/nodejsonrpcgetdriver.md @@ -0,0 +1,8 @@ +--- +title: "Connect to the blockchain node through an RPC driver" +slug: "nodejsonrpcgetdriver" +excerpt: "

2 credits per RPC method in an API call

\n

Connect directly to the blockchain node provided by Tatum.

\n

The GET method is used. The API endpoint URL acts as an HTTP-based RPC driver.

\n

This API is supported for the following blockchains:

\n" +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/nodejsonrpcputdriver.md b/v1.0/Blockchain Node RPC/node-rpc/nodejsonrpcputdriver.md new file mode 100644 index 00000000..080a6e1d --- /dev/null +++ b/v1.0/Blockchain Node RPC/node-rpc/nodejsonrpcputdriver.md @@ -0,0 +1,8 @@ +--- +title: "Connect to the blockchain node through an RPC driver" +slug: "nodejsonrpcputdriver" +excerpt: "

2 credits per RPC method in an API call

\n

Connect directly to the blockchain node provided by Tatum.

\n

The PUT 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:

\n
\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"method_name\",\n  \"params\": []\n}\n
\n

For the blockchains using the JSON-RPC 2.0 specification, you can submit multiple RPC methods in one API call:

\n
\n[\n  {\n    \"jsonrpc\": \"2.0\",\n    \"id\": 1,\n    \"method\": \"method_1_name\",\n    \"params\": []\n  },\n  {\n    \"jsonrpc\": \"2.0\",\n    \"id\": 2,\n    \"method\": \"method_2_name\",\n    \"params\": []\n  },\n  ...\n]\n
\n

This API is supported for the following blockchains:

\n" +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: "

1 credit per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

Use this endpoint URL as a http-based url to connect directly to the Algorand node provided by Tatum.\nYou can check al available APIs here - https://developer.algorand.org/docs/rest-apis/algod/v2/.\n
\nExample call for Get Block is described in the response. https://developer.algorand.org/docs/rest-apis/algod/v2/#get-v2blocksround.\n
\nURL used for this call would be

https://api.tatum.io/v3/algorand/node/algod/YOUR_API_KEY/v2/blocks/16775567
\n

" +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/algorand/algonodeindexergetdriver.md b/v1.0/Blockchain/algorand/algonodeindexergetdriver.md new file mode 100644 index 00000000..81ca33a5 --- /dev/null +++ b/v1.0/Blockchain/algorand/algonodeindexergetdriver.md @@ -0,0 +1,8 @@ +--- +title: "Access Algorand Indexer GET node endpoints" +slug: "algonodeindexergetdriver" +excerpt: "

1 credit per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

Use this endpoint URL as a http-based url to connect directly to the Algorand node provided by Tatum.\nYou can check all available APIs here - https://developer.algorand.org/docs/rest-apis/indexer/.\n
\nExample call for Get Tx By ID is described in the response. https://developer.algorand.org/docs/rest-apis/indexer/#get-v2transactionstxid.\n
\nURL used for this call would be

https://api.tatum.io/v3/algorand/node/indexer/YOUR_API_KEY/v2/transactions/HNIQ76UTJYPOLZP5FWODYABBJPYPGJNEM2QEJSMDMQRWEKHEYJHQ

" +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/algorand/algonodepostdriver.md b/v1.0/Blockchain/algorand/algonodepostdriver.md new file mode 100644 index 00000000..acdad05d --- /dev/null +++ b/v1.0/Blockchain/algorand/algonodepostdriver.md @@ -0,0 +1,8 @@ +--- +title: "Access Algorand Algod POST node endpoints" +slug: "algonodepostdriver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

Use this endpoint URL as a http-based url to connect directly to the Algorand node provided by Tatum.\n You can check al available APIs here - https://developer.algorand.org/docs/rest-apis/algod/v2/.\n
\n Example call for Broadcast a raw transaction is described in the response. https://developer.algorand.org/docs/rest-apis/algod/v2/#post-v2transactions.\n
\n URL used for this call would be

https://api.tatum.io/v3/algorand/node/algod/YOUR_API_KEY/v2/transactions
\n

" +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/algorand/algorandblockchainreceiveasset.md b/v1.0/Blockchain/algorand/algorandblockchainreceiveasset.md new file mode 100644 index 00000000..3759335b --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandblockchainreceiveasset.md @@ -0,0 +1,8 @@ +--- +title: "Enable receiving asset on account" +slug: "algorandblockchainreceiveasset" +excerpt: "

2 credits per API call.


\n

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.

" +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/algorand/algorandbroadcast.md b/v1.0/Blockchain/algorand/algorandbroadcast.md new file mode 100644 index 00000000..f92d2a0e --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed Algorand transaction" +slug: "algorandbroadcast" +excerpt: "

2 credits per API call.


\n

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.

" +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/algorandgenerateaddress.md b/v1.0/Blockchain/algorand/algorandgenerateaddress.md new file mode 100644 index 00000000..01b3abb6 --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandgenerateaddress.md @@ -0,0 +1,8 @@ +--- +title: "Generate Algorand account address from private key" +slug: "algorandgenerateaddress" +excerpt: "

1 credit per API call.


\n

Generate Algorand account deposit address from private key.

" +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/algorand/algorandgeneratewallet.md b/v1.0/Blockchain/algorand/algorandgeneratewallet.md new file mode 100644 index 00000000..1bc0194f --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Algorand wallet" +slug: "algorandgeneratewallet" +excerpt: "

1 credit per API call.


Tatum supports Algorand wallets.

" +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/algorand/algorandgetbalance.md b/v1.0/Blockchain/algorand/algorandgetbalance.md new file mode 100644 index 00000000..66b69c30 --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandgetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get Algorand Account balance" +slug: "algorandgetbalance" +excerpt: "

1 credit per API call.


\n

Get Algorand account balance in ALGO.

" +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/algorand/algorandgetblock.md b/v1.0/Blockchain/algorand/algorandgetblock.md new file mode 100644 index 00000000..fc3ac4a7 --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Algorand block by block round number" +slug: "algorandgetblock" +excerpt: "

1 credit per API call.


Get Algorand block by block round number.

" +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/algorand/algorandgetcurrentblock.md b/v1.0/Blockchain/algorand/algorandgetcurrentblock.md new file mode 100644 index 00000000..7bd23e6b --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandgetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "algorandgetcurrentblock" +excerpt: "

1 credit per API call.


Get Algorand current block number. This is the number of the latest block in 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/algorand/algorandgetpaytransactionsbyfromto.md b/v1.0/Blockchain/algorand/algorandgetpaytransactionsbyfromto.md new file mode 100644 index 00000000..82b0cc2c --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandgetpaytransactionsbyfromto.md @@ -0,0 +1,8 @@ +--- +title: "Get Algorand Transactions between from and to" +slug: "algorandgetpaytransactionsbyfromto" +excerpt: "

1 credit per API call

\n

This endpoint is deprecated.


\n

Get Algorand transaction by specified period of time.

" +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/algorand/algorandgettransaction.md b/v1.0/Blockchain/algorand/algorandgettransaction.md new file mode 100644 index 00000000..8ba30270 --- /dev/null +++ b/v1.0/Blockchain/algorand/algorandgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Algorand Transaction" +slug: "algorandgettransaction" +excerpt: "

1 credit per API call.


Get Algorand transaction by transaction id.

" +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/bitcoin-cash.md b/v1.0/Blockchain/bitcoin-cash.md new file mode 100644 index 00000000..962a66cc --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash.md @@ -0,0 +1,8 @@ +--- +title: "Bitcoin Cash" +slug: "bitcoin-cash" +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/bitcoin-cash/bchbroadcast.md b/v1.0/Blockchain/bitcoin-cash/bchbroadcast.md new file mode 100644 index 00000000..75232d5c --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed Bitcoin Cash transaction" +slug: "bchbroadcast" +excerpt: "

5 credits per API call.


\n

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..

" +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/bchgenerateaddressprivatekey.md b/v1.0/Blockchain/bitcoin-cash/bchgenerateaddressprivatekey.md new file mode 100644 index 00000000..6c2d9329 --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchgenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Bitcoin Cash private key" +slug: "bchgenerateaddressprivatekey" +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.

" +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/bchgeneratewallet.md b/v1.0/Blockchain/bitcoin-cash/bchgeneratewallet.md new file mode 100644 index 00000000..59b3e749 --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Bitcoin Cash wallet" +slug: "bchgeneratewallet" +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 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.

" +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/bchgetblock.md b/v1.0/Blockchain/bitcoin-cash/bchgetblock.md new file mode 100644 index 00000000..e336e12b --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Bitcoin Cash Block by hash" +slug: "bchgetblock" +excerpt: "

5 credits per API call.


Get Bitcoin Cash Block detail by block 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:55 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Blockchain/bitcoin-cash/bchgetblockchaininfo.md b/v1.0/Blockchain/bitcoin-cash/bchgetblockchaininfo.md new file mode 100644 index 00000000..1e194e29 --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchgetblockchaininfo.md @@ -0,0 +1,8 @@ +--- +title: "Get Bitcoin Cash Blockchain Information" +slug: "bchgetblockchaininfo" +excerpt: "

5 credits per API call.


Get Bitcoin Cash Blockchain Information. Obtain basic info like testnet / mainnet version of the chain, current block number and it's hash.

" +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/bchgetblockhash.md b/v1.0/Blockchain/bitcoin-cash/bchgetblockhash.md new file mode 100644 index 00000000..1f10bf3a --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchgetblockhash.md @@ -0,0 +1,8 @@ +--- +title: "Get Bitcoin Cash Block hash" +slug: "bchgetblockhash" +excerpt: "

5 credits per API call.


Get Bitcoin Cash Block hash. Returns hash of the block to get the block detail.

" +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/bitcoin-cash/bchgetrawtransaction.md b/v1.0/Blockchain/bitcoin-cash/bchgetrawtransaction.md new file mode 100644 index 00000000..d6de9286 --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchgetrawtransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Bitcoin Cash Transaction by hash" +slug: "bchgetrawtransaction" +excerpt: "

5 credits per API call.


Get Bitcoin Cash Transaction by transaction hash.

" +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/bitcoin-cash/bchgettxbyaddress.md b/v1.0/Blockchain/bitcoin-cash/bchgettxbyaddress.md new file mode 100644 index 00000000..a8f6ce3b --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchgettxbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get Bitcoin Cash Transactions by address" +slug: "bchgettxbyaddress" +excerpt: "

5 credits per API call.


Get Bitcoin Cash Transaction by address. Limit is 50 transaction per response.

" +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/bitcoin-cash/bchrpcdriver.md b/v1.0/Blockchain/bitcoin-cash/bchrpcdriver.md new file mode 100644 index 00000000..91a1f880 --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchrpcdriver.md @@ -0,0 +1,8 @@ +--- +title: "JSON RPC HTTP driver" +slug: "bchrpcdriver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\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 Bitcoin Cash developers' guide.

" +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/bitcoin-cash/bchtransferblockchain.md b/v1.0/Blockchain/bitcoin-cash/bchtransferblockchain.md new file mode 100644 index 00000000..9515fb24 --- /dev/null +++ b/v1.0/Blockchain/bitcoin-cash/bchtransferblockchain.md @@ -0,0 +1,8 @@ +--- +title: "Send BCH to Bitcoin Cash addresses" +slug: "bchtransferblockchain" +excerpt: "

10 credits per API call

\n

Send BCH to blockchain addresses.

\n

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.

" +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/bitcoin.md b/v1.0/Blockchain/bitcoin.md new file mode 100644 index 00000000..e0b4df19 --- /dev/null +++ b/v1.0/Blockchain/bitcoin.md @@ -0,0 +1,8 @@ +--- +title: "Bitcoin" +slug: "bitcoin" +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/bitcoin/btcbroadcast.md b/v1.0/Blockchain/bitcoin/btcbroadcast.md new file mode 100644 index 00000000..bb36a7ed --- /dev/null +++ b/v1.0/Blockchain/bitcoin/btcbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast a signed Bitcoin transaction" +slug: "btcbroadcast" +excerpt: "

2 credits per API call

\n

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.

" +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/btcgeneratewallet.md b/v1.0/Blockchain/bitcoin/btcgeneratewallet.md new file mode 100644 index 00000000..e4df9d03 --- /dev/null +++ b/v1.0/Blockchain/bitcoin/btcgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate a Bitcoin wallet" +slug: "btcgeneratewallet" +excerpt: "

1 credit per API call

\n

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.

" +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/btcgetblockchaininfo.md b/v1.0/Blockchain/bitcoin/btcgetblockchaininfo.md new file mode 100644 index 00000000..c4f5cd67 --- /dev/null +++ b/v1.0/Blockchain/bitcoin/btcgetblockchaininfo.md @@ -0,0 +1,8 @@ +--- +title: "Get Bitcoin blockchain information" +slug: "btcgetblockchaininfo" +excerpt: "

1 credit per API call

\n

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.

" +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/btctransferblockchain.md b/v1.0/Blockchain/bitcoin/btctransferblockchain.md new file mode 100644 index 00000000..21a119d4 --- /dev/null +++ b/v1.0/Blockchain/bitcoin/btctransferblockchain.md @@ -0,0 +1,8 @@ +--- +title: "Send BTC to Bitcoin addresses" +slug: "btctransferblockchain" +excerpt: "

2 credits per API call

\n

Send BTC to blockchain addresses.

\n

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.

" +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/bnb-beacon-chain.md b/v1.0/Blockchain/bnb-beacon-chain.md new file mode 100644 index 00000000..c1ba198d --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain.md @@ -0,0 +1,8 @@ +--- +title: "BNB Beacon Chain" +slug: "bnb-beacon-chain" +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/bnb-beacon-chain/bnbblockchaintransfer.md b/v1.0/Blockchain/bnb-beacon-chain/bnbblockchaintransfer.md new file mode 100644 index 00000000..671e7823 --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain/bnbblockchaintransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send Binance / Binance Token from account to account" +slug: "bnbblockchaintransfer" +excerpt: "

10 credits per API call.


\n

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

" +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/bnb-beacon-chain/bnbbroadcast.md b/v1.0/Blockchain/bnb-beacon-chain/bnbbroadcast.md new file mode 100644 index 00000000..e0de3be4 --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain/bnbbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed BNB transaction" +slug: "bnbbroadcast" +excerpt: "

5 credits per API call.


\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:01 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Blockchain/bnb-beacon-chain/bnbgeneratewallet.md b/v1.0/Blockchain/bnb-beacon-chain/bnbgeneratewallet.md new file mode 100644 index 00000000..22a9e3b4 --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain/bnbgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Binance wallet" +slug: "bnbgeneratewallet" +excerpt: "

5 credits per API call.


\n

Generate BNB account. Tatum does not support HD wallet for BNB, 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/Blockchain/bnb-beacon-chain/bnbgetaccount.md b/v1.0/Blockchain/bnb-beacon-chain/bnbgetaccount.md new file mode 100644 index 00000000..974ac936 --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain/bnbgetaccount.md @@ -0,0 +1,8 @@ +--- +title: "Get Binance Account" +slug: "bnbgetaccount" +excerpt: "

5 credits per API call.


Get Binance Account Detail by address.

" +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-beacon-chain/bnbgetblock.md b/v1.0/Blockchain/bnb-beacon-chain/bnbgetblock.md new file mode 100644 index 00000000..cc13adc6 --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain/bnbgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Binance Transactions in Block" +slug: "bnbgetblock" +excerpt: "

5 credits per API call.


Get Transactions in block by block 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/bnb-beacon-chain/bnbgetcurrentblock.md b/v1.0/Blockchain/bnb-beacon-chain/bnbgetcurrentblock.md new file mode 100644 index 00000000..0029b024 --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain/bnbgetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Binance current block" +slug: "bnbgetcurrentblock" +excerpt: "

5 credits per API call.


Get Binance current block number.

" +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-beacon-chain/bnbgettransaction.md b/v1.0/Blockchain/bnb-beacon-chain/bnbgettransaction.md new file mode 100644 index 00000000..c30fe47a --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain/bnbgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Binance Transaction" +slug: "bnbgettransaction" +excerpt: "

5 credits per API call.


Get Binance Transaction by transaction hash.

" +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-beacon-chain/bnbgettxbyaccount.md b/v1.0/Blockchain/bnb-beacon-chain/bnbgettxbyaccount.md new file mode 100644 index 00000000..88bcf9ed --- /dev/null +++ b/v1.0/Blockchain/bnb-beacon-chain/bnbgettxbyaccount.md @@ -0,0 +1,8 @@ +--- +title: "Get Binance Transactions By Address" +slug: "bnbgettxbyaccount" +excerpt: "

5 credits per API call.


Get Binance Transactions by address.

" +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.

" +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/bscbroadcast.md b/v1.0/Blockchain/bnb-smart-chain/bscbroadcast.md new file mode 100644 index 00000000..c9c5c9a8 --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed BSC transaction" +slug: "bscbroadcast" +excerpt: "

2 credits per API call

\n

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.

" +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/bnb-smart-chain/bscgenerateaddressprivatekey.md b/v1.0/Blockchain/bnb-smart-chain/bscgenerateaddressprivatekey.md new file mode 100644 index 00000000..bb9005e2 --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscgenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate BSC private key" +slug: "bscgenerateaddressprivatekey" +excerpt: "

1 credit per API call

\n

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.

" +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/bnb-smart-chain/bscgeneratewallet.md b/v1.0/Blockchain/bnb-smart-chain/bscgeneratewallet.md new file mode 100644 index 00000000..e0d7ea63 --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate BSC wallet" +slug: "bscgeneratewallet" +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 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.

" +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/bnb-smart-chain/bscgetbalance.md b/v1.0/Blockchain/bnb-smart-chain/bscgetbalance.md new file mode 100644 index 00000000..021383fe --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscgetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get BSC Account balance" +slug: "bscgetbalance" +excerpt: "

1 credit per API call

\n

Get BSC account balance in BNB. This method does not prints any balance of the BEP20 or BEP721 tokens on the account.

" +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/bnb-smart-chain/bscgetblock.md b/v1.0/Blockchain/bnb-smart-chain/bscgetblock.md new file mode 100644 index 00000000..a517d292 --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get BSC block by hash" +slug: "bscgetblock" +excerpt: "

1 credit per API call

\n

Get BSC block by block hash or block number.

" +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/bnb-smart-chain/bscgetcurrentblock.md b/v1.0/Blockchain/bnb-smart-chain/bscgetcurrentblock.md new file mode 100644 index 00000000..0af95bac --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscgetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "bscgetcurrentblock" +excerpt: "

1 credit per API call

\n

Get BSC current block number. This is the number of the latest block in the blockchain.

" +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/bscgettransaction.md b/v1.0/Blockchain/bnb-smart-chain/bscgettransaction.md new file mode 100644 index 00000000..8e24bb63 --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get BSC Transaction" +slug: "bscgettransaction" +excerpt: "

2 credits per API call

\n

Get BSC transaction by transaction hash.

" +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/bscgettransactioncount.md b/v1.0/Blockchain/bnb-smart-chain/bscgettransactioncount.md new file mode 100644 index 00000000..9f932389 --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscgettransactioncount.md @@ -0,0 +1,8 @@ +--- +title: "Get count of outgoing BSC transactions" +slug: "bscgettransactioncount" +excerpt: "

1 credit per API call

\n

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.

" +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/bscweb3driver.md b/v1.0/Blockchain/bnb-smart-chain/bscweb3driver.md new file mode 100644 index 00000000..b51b2119 --- /dev/null +++ b/v1.0/Blockchain/bnb-smart-chain/bscweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "Web3 HTTP driver" +slug: "bscweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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: "

\nYou can work with Cardano by connecting directly to a blockchain node provided by Tatum.


\n

2 credits per API call.

\n

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: "

\nYou can work with Cardano by connecting directly to a blockchain node provided by Tatum.


\n

1 credit per API call.

\n

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.

" +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/adagenerateaddressprivatekey.md b/v1.0/Blockchain/cardano/adagenerateaddressprivatekey.md new file mode 100644 index 00000000..ff42eeae --- /dev/null +++ b/v1.0/Blockchain/cardano/adagenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Ada private key" +slug: "adagenerateaddressprivatekey" +excerpt: "

\nYou can work with Cardano by connecting directly to a blockchain node provided by Tatum.


\n

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\ncan generate up to 2^32 private keys 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:39:02 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Blockchain/cardano/adageneratewallet.md b/v1.0/Blockchain/cardano/adageneratewallet.md new file mode 100644 index 00000000..8830ed9a --- /dev/null +++ b/v1.0/Blockchain/cardano/adageneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Ada wallet" +slug: "adageneratewallet" +excerpt: "

\nYou can work with Cardano by connecting directly to a blockchain node provided by Tatum.


\n

1 credit per API call.

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: "

\nYou can work with Cardano by connecting directly to a blockchain node provided by Tatum.


\n

2 credits per API call.

\n

Gets a Ada account by address.

" +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/adagetblock.md b/v1.0/Blockchain/cardano/adagetblock.md new file mode 100644 index 00000000..7096aac7 --- /dev/null +++ b/v1.0/Blockchain/cardano/adagetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Block by hash or height" +slug: "adagetblock" +excerpt: "

You can work with Cardano by connecting directly to a blockchain node provided by Tatum.


1 credit per API call.

Gets Ada block detail by block hash or height.

" +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/adagetblockchaininfo.md b/v1.0/Blockchain/cardano/adagetblockchaininfo.md new file mode 100644 index 00000000..359aeff2 --- /dev/null +++ b/v1.0/Blockchain/cardano/adagetblockchaininfo.md @@ -0,0 +1,8 @@ +--- +title: "Get Blockchain information" +slug: "adagetblockchaininfo" +excerpt: "

You can work with Cardano by connecting directly to a blockchain node provided by Tatum.


1 credit per API call.

Gets Ada 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: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/adagetrawtransaction.md b/v1.0/Blockchain/cardano/adagetrawtransaction.md new file mode 100644 index 00000000..362bb569 --- /dev/null +++ b/v1.0/Blockchain/cardano/adagetrawtransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get transaction by hash" +slug: "adagetrawtransaction" +excerpt: "

You can work with Cardano by connecting directly to a blockchain node provided by Tatum.


1 credit per API call.

Get Ada Transaction detail by transaction hash.

" +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/adagettxbyaddress.md b/v1.0/Blockchain/cardano/adagettxbyaddress.md new file mode 100644 index 00000000..5731b96c --- /dev/null +++ b/v1.0/Blockchain/cardano/adagettxbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get transactions by address" +slug: "adagettxbyaddress" +excerpt: "

You can work with Cardano by connecting directly to a blockchain node provided by Tatum.


1 credit per API call.

Gets a Ada transaction 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/cardano/adagetutxobyaddress.md b/v1.0/Blockchain/cardano/adagetutxobyaddress.md new file mode 100644 index 00000000..025385d0 --- /dev/null +++ b/v1.0/Blockchain/cardano/adagetutxobyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get UTXOs by address" +slug: "adagetutxobyaddress" +excerpt: "

You can work with Cardano by connecting directly to a blockchain node provided by Tatum.


1 credit per API call.

Gets a Ada UTXOs by address.

" +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.

" +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/celogenerateaddressprivatekey.md b/v1.0/Blockchain/celo/celogenerateaddressprivatekey.md new file mode 100644 index 00000000..523ce7aa --- /dev/null +++ b/v1.0/Blockchain/celo/celogenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Celo private key" +slug: "celogenerateaddressprivatekey" +excerpt: "

1 credit per API call

\n

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.

" +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/celogeneratewallet.md b/v1.0/Blockchain/celo/celogeneratewallet.md new file mode 100644 index 00000000..6e83ec87 --- /dev/null +++ b/v1.0/Blockchain/celo/celogeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Celo wallet" +slug: "celogeneratewallet" +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 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/celogetbalance.md b/v1.0/Blockchain/celo/celogetbalance.md new file mode 100644 index 00000000..08671613 --- /dev/null +++ b/v1.0/Blockchain/celo/celogetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get Celo Account balance" +slug: "celogetbalance" +excerpt: "

1 credit per API call

\n

Get Celo account balance in ETH. This method does not prints any balance of the ERC20 or ERC721 tokens on the account.

" +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/celogetblock.md b/v1.0/Blockchain/celo/celogetblock.md new file mode 100644 index 00000000..c89b57c0 --- /dev/null +++ b/v1.0/Blockchain/celo/celogetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Celo block by hash" +slug: "celogetblock" +excerpt: "

1 credit per API call

\n

Get Celo block by block hash or block number.

" +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/celogetcurrentblock.md b/v1.0/Blockchain/celo/celogetcurrentblock.md new file mode 100644 index 00000000..cd7ef4d6 --- /dev/null +++ b/v1.0/Blockchain/celo/celogetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "celogetcurrentblock" +excerpt: "

1 credit per API call

\n

Get Celo current block number. This is the number of the latest block in 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/celo/celogettransaction.md b/v1.0/Blockchain/celo/celogettransaction.md new file mode 100644 index 00000000..88c33180 --- /dev/null +++ b/v1.0/Blockchain/celo/celogettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Celo Transaction" +slug: "celogettransaction" +excerpt: "

2 credits per API call

\n

Get Celo transaction by transaction hash.

" +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.

" +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/celoweb3driver.md b/v1.0/Blockchain/celo/celoweb3driver.md new file mode 100644 index 00000000..5dd9e1d7 --- /dev/null +++ b/v1.0/Blockchain/celo/celoweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "Web3 HTTP driver" +slug: "celoweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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.

" +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/dogecoin.md b/v1.0/Blockchain/dogecoin.md new file mode 100644 index 00000000..33a9ca40 --- /dev/null +++ b/v1.0/Blockchain/dogecoin.md @@ -0,0 +1,8 @@ +--- +title: "Dogecoin" +slug: "dogecoin" +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/dogecoin/dogebroadcast.md b/v1.0/Blockchain/dogecoin/dogebroadcast.md new file mode 100644 index 00000000..b1bc387e --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogebroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed Dogecoin transaction" +slug: "dogebroadcast" +excerpt: "

2 credits per API call.


\n

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.

" +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/dogegenerateaddressprivatekey.md b/v1.0/Blockchain/dogecoin/dogegenerateaddressprivatekey.md new file mode 100644 index 00000000..abd605c3 --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogegenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Dogecoin private key" +slug: "dogegenerateaddressprivatekey" +excerpt: "

2 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.

" +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/dogegeneratewallet.md b/v1.0/Blockchain/dogecoin/dogegeneratewallet.md new file mode 100644 index 00000000..10bde87e --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogegeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Dogecoin wallet" +slug: "dogegeneratewallet" +excerpt: "

1 credit 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 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.

" +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/dogegetblockchaininfo.md b/v1.0/Blockchain/dogecoin/dogegetblockchaininfo.md new file mode 100644 index 00000000..48edd056 --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogegetblockchaininfo.md @@ -0,0 +1,8 @@ +--- +title: "Get Dogecoin Blockchain Information" +slug: "dogegetblockchaininfo" +excerpt: "

1 credit per API call.


Get Dogecoin Blockchain Information. Obtain basic info like testnet / mainnet version of the chain, current block number and it's hash.

" +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/dogegetblockhash.md b/v1.0/Blockchain/dogecoin/dogegetblockhash.md new file mode 100644 index 00000000..ae339abd --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogegetblockhash.md @@ -0,0 +1,8 @@ +--- +title: "Get Dogecoin Block hash" +slug: "dogegetblockhash" +excerpt: "

1 credit per API call.


Get Dogecoin Block hash. Returns hash of the block to get the block detail.

" +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/dogegetmempool.md b/v1.0/Blockchain/dogecoin/dogegetmempool.md new file mode 100644 index 00000000..0d0914ac --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogegetmempool.md @@ -0,0 +1,8 @@ +--- +title: "Get Mempool Transactions" +slug: "dogegetmempool" +excerpt: "

1 credit per API call.


Get Dogecoin Transaction ids in the mempool.

" +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/dogegetrawtransaction.md b/v1.0/Blockchain/dogecoin/dogegetrawtransaction.md new file mode 100644 index 00000000..59744733 --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogegetrawtransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Dogecoin Transaction by hash" +slug: "dogegetrawtransaction" +excerpt: "

1 credit per API call.


Get Dogecoin Transaction detail by transaction hash.

" +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/dogegettxbyaddress.md b/v1.0/Blockchain/dogecoin/dogegettxbyaddress.md new file mode 100644 index 00000000..31fdb597 --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogegettxbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get Dogecoin Transactions by address" +slug: "dogegettxbyaddress" +excerpt: "

5 credits per API call.

\n

Get Dogecoin Transaction by 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: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.
  • \n
" +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/dogerpcdriver.md b/v1.0/Blockchain/dogecoin/dogerpcdriver.md new file mode 100644 index 00000000..05c80a50 --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogerpcdriver.md @@ -0,0 +1,8 @@ +--- +title: "JSON RPC HTTP driver" +slug: "dogerpcdriver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

Use this endpoint URL as an http-based JSON RPC driver to connect directly to the node provided by Tatum.

" +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/dogetransferblockchain.md b/v1.0/Blockchain/dogecoin/dogetransferblockchain.md new file mode 100644 index 00000000..9e466345 --- /dev/null +++ b/v1.0/Blockchain/dogecoin/dogetransferblockchain.md @@ -0,0 +1,8 @@ +--- +title: "Send DOGE to Dogecoin addresses" +slug: "dogetransferblockchain" +excerpt: "

2 credits per API call

\n

Send DOGE to blockchain addresses.

\n

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.

" +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/elrond.md b/v1.0/Blockchain/elrond.md new file mode 100644 index 00000000..9d3f1510 --- /dev/null +++ b/v1.0/Blockchain/elrond.md @@ -0,0 +1,8 @@ +--- +title: "Elrond" +slug: "elrond" +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/elrond/egldblockchaintransfer.md b/v1.0/Blockchain/elrond/egldblockchaintransfer.md new file mode 100644 index 00000000..86f012b3 --- /dev/null +++ b/v1.0/Blockchain/elrond/egldblockchaintransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send EGLD from account to account" +slug: "egldblockchaintransfer" +excerpt: "

2 credits per API call.


\n

Send EGLD 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 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

" +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/elrond/egldbroadcast.md b/v1.0/Blockchain/elrond/egldbroadcast.md new file mode 100644 index 00000000..e8a5b7a3 --- /dev/null +++ b/v1.0/Blockchain/elrond/egldbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed EGLD transaction" +slug: "egldbroadcast" +excerpt: "

2 credits per API call.


\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.

" +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/elrond/egldgenerateaddress.md b/v1.0/Blockchain/elrond/egldgenerateaddress.md new file mode 100644 index 00000000..b5f08b7d --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgenerateaddress.md @@ -0,0 +1,8 @@ +--- +title: "Generate EGLD account address from mnemonic" +slug: "egldgenerateaddress" +excerpt: "

1 credit per API call.


\n

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.

" +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/elrond/egldgenerateaddressprivatekey.md b/v1.0/Blockchain/elrond/egldgenerateaddressprivatekey.md new file mode 100644 index 00000000..4ed12c2c --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate EGLD private key" +slug: "egldgenerateaddressprivatekey" +excerpt: "

1 credit per API call.


\n

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.

" +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/elrond/egldgeneratewallet.md b/v1.0/Blockchain/elrond/egldgeneratewallet.md new file mode 100644 index 00000000..468e4998 --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate EGLD wallet" +slug: "egldgeneratewallet" +excerpt: "

1 credit per API call.


\n

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.

" +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/elrond/egldgetbalance.md b/v1.0/Blockchain/elrond/egldgetbalance.md new file mode 100644 index 00000000..4115aa4e --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get EGLD Account balance" +slug: "egldgetbalance" +excerpt: "

1 credit per API call.


Get account balance in EGLD.

" +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/elrond/egldgetblock.md b/v1.0/Blockchain/elrond/egldgetblock.md new file mode 100644 index 00000000..8843cb11 --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get EGLD block by hash" +slug: "egldgetblock" +excerpt: "

1 credit per API call.


Get EGLD block by block hash or block number. EGLD docs

" +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/elrond/egldgetcurrentblock.md b/v1.0/Blockchain/elrond/egldgetcurrentblock.md new file mode 100644 index 00000000..c3598107 --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "egldgetcurrentblock" +excerpt: "

1 credit per API call.


Get EGLD current block number. This is the number of the latest block in 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/elrond/egldgettransaction.md b/v1.0/Blockchain/elrond/egldgettransaction.md new file mode 100644 index 00000000..b0e7c7f7 --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get EGLD Transaction" +slug: "egldgettransaction" +excerpt: "

1 credit per API call.


Get EGLD transaction by transaction hash. Detail result please find here EGLD docs

" +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/elrond/egldgettransactionaddress.md b/v1.0/Blockchain/elrond/egldgettransactionaddress.md new file mode 100644 index 00000000..d0da3784 --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgettransactionaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get count of outgoing EGLD transactions" +slug: "egldgettransactionaddress" +excerpt: "

1 credit per API call.


\n

This endpoint allows one to retrieve the latest 20 transactions sent from an address.

" +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/elrond/egldgettransactioncount.md b/v1.0/Blockchain/elrond/egldgettransactioncount.md new file mode 100644 index 00000000..b4f67c51 --- /dev/null +++ b/v1.0/Blockchain/elrond/egldgettransactioncount.md @@ -0,0 +1,8 @@ +--- +title: "Get count of outgoing EGLD transactions" +slug: "egldgettransactioncount" +excerpt: "

1 credit per API call.


\n

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.

" +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/elrond/egldnodeget.md b/v1.0/Blockchain/elrond/egldnodeget.md new file mode 100644 index 00000000..4c7334df --- /dev/null +++ b/v1.0/Blockchain/elrond/egldnodeget.md @@ -0,0 +1,8 @@ +--- +title: "Node HTTP driver" +slug: "egldnodeget" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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:39:07 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Blockchain/elrond/egldnodepost.md b/v1.0/Blockchain/elrond/egldnodepost.md new file mode 100644 index 00000000..84dc1ceb --- /dev/null +++ b/v1.0/Blockchain/elrond/egldnodepost.md @@ -0,0 +1,8 @@ +--- +title: "Node HTTP driver" +slug: "egldnodepost" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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.

" +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/ethbroadcast.md b/v1.0/Blockchain/ethereum-1/ethbroadcast.md new file mode 100644 index 00000000..c77ec1a6 --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed Ethereum transaction" +slug: "ethbroadcast" +excerpt: "

2 credits per API call

\n

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.

" +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/ethgenerateaddressprivatekey.md b/v1.0/Blockchain/ethereum-1/ethgenerateaddressprivatekey.md new file mode 100644 index 00000000..6262dd56 --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethgenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Ethereum private key" +slug: "ethgenerateaddressprivatekey" +excerpt: "

1 credit per API call.


\n

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.

" +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/ethgeneratewallet.md b/v1.0/Blockchain/ethereum-1/ethgeneratewallet.md new file mode 100644 index 00000000..1a6761fc --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Ethereum wallet" +slug: "ethgeneratewallet" +excerpt: "

1 credit per API call.


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: "

1 credit per API call

\n

Get the balance of ETH of an Ethereum account.

\n

To get the balance of tokens, use the APIs for getting the balance of fungible tokens (ERC-20) and NFTs (ERC-721).

" +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/ethgetblock.md b/v1.0/Blockchain/ethereum-1/ethgetblock.md new file mode 100644 index 00000000..d624bc4f --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Ethereum block by hash" +slug: "ethgetblock" +excerpt: "

1 credit per API call.


Gets an Ethereum block-by-block hash or block number.

" +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/ethgetcurrentblock.md b/v1.0/Blockchain/ethereum-1/ethgetcurrentblock.md new file mode 100644 index 00000000..fb386fa2 --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethgetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "ethgetcurrentblock" +excerpt: "

1 credit per API call.


Gets the current Ethereum block number. This is the number of the latest block in the blockchain.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:50 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/ethgetinternaltransactionbyaddress.md b/v1.0/Blockchain/ethereum-1/ethgetinternaltransactionbyaddress.md new file mode 100644 index 00000000..b6ae85b1 --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethgetinternaltransactionbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get Ethereum internal transactions by address" +slug: "ethgetinternaltransactionbyaddress" +excerpt: "

1 credit per API call.


\n

Get Ethereum internal transactions 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/ethereum-1/ethgettransaction.md b/v1.0/Blockchain/ethereum-1/ethgettransaction.md new file mode 100644 index 00000000..398a5220 --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Ethereum Transaction" +slug: "ethgettransaction" +excerpt: "

1 credit per API call

\n

Get Ethereum transaction by transaction hash.

" +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/ethgettransactionbyaddress.md b/v1.0/Blockchain/ethereum-1/ethgettransactionbyaddress.md new file mode 100644 index 00000000..7d85092b --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethgettransactionbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get Ethereum transactions by address" +slug: "ethgettransactionbyaddress" +excerpt: "

This endpoint is deprecated. Do not use it.

\n

1 credit per API call.

\n

Get Ethereum 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:38:54 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Blockchain/ethereum-1/ethgettransactioncount.md b/v1.0/Blockchain/ethereum-1/ethgettransactioncount.md new file mode 100644 index 00000000..b78a3122 --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethgettransactioncount.md @@ -0,0 +1,8 @@ +--- +title: "Get count of outgoing Ethereum transactions" +slug: "ethgettransactioncount" +excerpt: "

1 credit per API call.


\n

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.

" +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/ethweb3driver.md b/v1.0/Blockchain/ethereum-1/ethweb3driver.md new file mode 100644 index 00000000..00e0b6bc --- /dev/null +++ b/v1.0/Blockchain/ethereum-1/ethweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "Web3 HTTP driver" +slug: "ethweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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.

" +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/flow.md b/v1.0/Blockchain/flow.md new file mode 100644 index 00000000..f9b52696 --- /dev/null +++ b/v1.0/Blockchain/flow.md @@ -0,0 +1,8 @@ +--- +title: "Flow" +slug: "flow" +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/flow/flowaddpubkeytoaddress.md b/v1.0/Blockchain/flow/flowaddpubkeytoaddress.md new file mode 100644 index 00000000..079e745e --- /dev/null +++ b/v1.0/Blockchain/flow/flowaddpubkeytoaddress.md @@ -0,0 +1,8 @@ +--- +title: "Add public key to Flow address" +slug: "flowaddpubkeytoaddress" +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

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.

" +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/flow/flowgeneratepubkeyprivatekey.md b/v1.0/Blockchain/flow/flowgeneratepubkeyprivatekey.md new file mode 100644 index 00000000..037243c9 --- /dev/null +++ b/v1.0/Blockchain/flow/flowgeneratepubkeyprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Flow private key" +slug: "flowgeneratepubkeyprivatekey" +excerpt: "

2 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.

" +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/flowgeneratewallet.md b/v1.0/Blockchain/flow/flowgeneratewallet.md new file mode 100644 index 00000000..d2b00375 --- /dev/null +++ b/v1.0/Blockchain/flow/flowgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Flow wallet" +slug: "flowgeneratewallet" +excerpt: "

1 credit 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 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: "

1 credit per API call.


Get Flow Block detail by block 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:57 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Blockchain/flow/flowgetblockchaininfo.md b/v1.0/Blockchain/flow/flowgetblockchaininfo.md new file mode 100644 index 00000000..b3430ba7 --- /dev/null +++ b/v1.0/Blockchain/flow/flowgetblockchaininfo.md @@ -0,0 +1,8 @@ +--- +title: "Get Flow current block number" +slug: "flowgetblockchaininfo" +excerpt: "

1 credit per API call.


Get Flow current block number.

" +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/flow/flowgetblockevents.md b/v1.0/Blockchain/flow/flowgetblockevents.md new file mode 100644 index 00000000..028305fe --- /dev/null +++ b/v1.0/Blockchain/flow/flowgetblockevents.md @@ -0,0 +1,8 @@ +--- +title: "Get Flow events from blocks" +slug: "flowgetblockevents" +excerpt: "

1 credit per API call.


Get Flow events from block.

" +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/flow/flowgetrawtransaction.md b/v1.0/Blockchain/flow/flowgetrawtransaction.md new file mode 100644 index 00000000..955e23a9 --- /dev/null +++ b/v1.0/Blockchain/flow/flowgetrawtransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Flow Transaction by hash" +slug: "flowgetrawtransaction" +excerpt: "

1 credit per API call.


Get Flow Transaction detail by transaction hash.

" +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/flowtransferblockchain.md b/v1.0/Blockchain/flow/flowtransferblockchain.md new file mode 100644 index 00000000..6febf765 --- /dev/null +++ b/v1.0/Blockchain/flow/flowtransferblockchain.md @@ -0,0 +1,8 @@ +--- +title: "Send Flow to blockchain addresses" +slug: "flowtransferblockchain" +excerpt: "

100 credits per API call.


\n

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.

" +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/onegenerateaddressprivatekey.md b/v1.0/Blockchain/harmony/onegenerateaddressprivatekey.md new file mode 100644 index 00000000..37b38ab8 --- /dev/null +++ b/v1.0/Blockchain/harmony/onegenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate ONE private key" +slug: "onegenerateaddressprivatekey" +excerpt: "

1 credit per API call

\n

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.

" +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/onegeneratewallet.md b/v1.0/Blockchain/harmony/onegeneratewallet.md new file mode 100644 index 00000000..bdb55358 --- /dev/null +++ b/v1.0/Blockchain/harmony/onegeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate ONE wallet" +slug: "onegeneratewallet" +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 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/onegetbalance.md b/v1.0/Blockchain/harmony/onegetbalance.md new file mode 100644 index 00000000..1bcba461 --- /dev/null +++ b/v1.0/Blockchain/harmony/onegetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get ONE Account balance" +slug: "onegetbalance" +excerpt: "

1 credit per API call

\n

Get ONE account balance in ONE. This method does not prints any balance of the HRM20 or HRM721 tokens on the account.

" +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/onegetblock.md b/v1.0/Blockchain/harmony/onegetblock.md new file mode 100644 index 00000000..424b7957 --- /dev/null +++ b/v1.0/Blockchain/harmony/onegetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get ONE block by hash" +slug: "onegetblock" +excerpt: "

1 credit per API call

\n

Get ONE block by block hash or block number.

" +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/onegetcurrentblock.md b/v1.0/Blockchain/harmony/onegetcurrentblock.md new file mode 100644 index 00000000..77df18ef --- /dev/null +++ b/v1.0/Blockchain/harmony/onegetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "onegetcurrentblock" +excerpt: "

1 credit per API call

\n

Get ONE current block number. This is the number of the latest block in the blockchain.

" +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/onegettransaction.md b/v1.0/Blockchain/harmony/onegettransaction.md new file mode 100644 index 00000000..35a15a2c --- /dev/null +++ b/v1.0/Blockchain/harmony/onegettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get ONE Transaction" +slug: "onegettransaction" +excerpt: "

2 credits per API call

\n

Get ONE transaction by transaction hash.

" +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.

" +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/oneweb3driver.md b/v1.0/Blockchain/harmony/oneweb3driver.md new file mode 100644 index 00000000..f3509fa2 --- /dev/null +++ b/v1.0/Blockchain/harmony/oneweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "Web3 HTTP driver" +slug: "oneweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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.

" +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/klaytnbroadcast.md b/v1.0/Blockchain/klaytn/klaytnbroadcast.md new file mode 100644 index 00000000..b38c2ded --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytnbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed Klaytn transaction" +slug: "klaytnbroadcast" +excerpt: "

2 credits per API call

\n

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.

" +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/klaytngenerateaddressprivatekey.md b/v1.0/Blockchain/klaytn/klaytngenerateaddressprivatekey.md new file mode 100644 index 00000000..bb067203 --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytngenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Klaytn private key" +slug: "klaytngenerateaddressprivatekey" +excerpt: "

1 credit per API call

\n

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.

" +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/klaytngeneratewallet.md b/v1.0/Blockchain/klaytn/klaytngeneratewallet.md new file mode 100644 index 00000000..7210bab8 --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytngeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Klaytn wallet" +slug: "klaytngeneratewallet" +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 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.

" +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/klaytngetbalance.md b/v1.0/Blockchain/klaytn/klaytngetbalance.md new file mode 100644 index 00000000..db8f4268 --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytngetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get Klaytn Account balance" +slug: "klaytngetbalance" +excerpt: "

1 credit per API call

\n

Get Klaytn account balance in KLAY. This method does not prints any balance of the ERC20 or ERC721 tokens on the account.

" +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/klaytngetblock.md b/v1.0/Blockchain/klaytn/klaytngetblock.md new file mode 100644 index 00000000..2a63743d --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytngetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Klaytn block by hash" +slug: "klaytngetblock" +excerpt: "

1 credit per API call

\n

Get Klaytn block by block hash or block number.

" +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/klaytngetcurrentblock.md b/v1.0/Blockchain/klaytn/klaytngetcurrentblock.md new file mode 100644 index 00000000..c7f90097 --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytngetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "klaytngetcurrentblock" +excerpt: "

1 credit per API call

\n

Get Klaytn current block number. This is the number of the latest block in 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/klaytn/klaytngettransaction.md b/v1.0/Blockchain/klaytn/klaytngettransaction.md new file mode 100644 index 00000000..06c22c3e --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytngettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Klaytn Transaction" +slug: "klaytngettransaction" +excerpt: "

2 credits per API call

\n

Get Klaytn transaction by transaction hash.

" +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/klaytngettransactioncount.md b/v1.0/Blockchain/klaytn/klaytngettransactioncount.md new file mode 100644 index 00000000..487b893c --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytngettransactioncount.md @@ -0,0 +1,8 @@ +--- +title: "Get count of outgoing Klaytn transactions" +slug: "klaytngettransactioncount" +excerpt: "

1 credit per API call

\n

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.

" +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/klaytnweb3driver.md b/v1.0/Blockchain/klaytn/klaytnweb3driver.md new file mode 100644 index 00000000..6957d808 --- /dev/null +++ b/v1.0/Blockchain/klaytn/klaytnweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "Web3 HTTP driver" +slug: "klaytnweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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.

" +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/kucoin/kcsgenerateaddressprivatekey.md b/v1.0/Blockchain/kucoin/kcsgenerateaddressprivatekey.md new file mode 100644 index 00000000..4cd89369 --- /dev/null +++ b/v1.0/Blockchain/kucoin/kcsgenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Kcs private key" +slug: "kcsgenerateaddressprivatekey" +excerpt: "

1 credit per API call

\n

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.

" +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/kucoin/kcsgeneratewallet.md b/v1.0/Blockchain/kucoin/kcsgeneratewallet.md new file mode 100644 index 00000000..520db348 --- /dev/null +++ b/v1.0/Blockchain/kucoin/kcsgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Kcs wallet" +slug: "kcsgeneratewallet" +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 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.

" +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/kcsgetbalance.md b/v1.0/Blockchain/kucoin/kcsgetbalance.md new file mode 100644 index 00000000..4cc0d68b --- /dev/null +++ b/v1.0/Blockchain/kucoin/kcsgetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get Kcs Account balance" +slug: "kcsgetbalance" +excerpt: "

1 credit per API call

\n

Get Kcs account balance in KCS. This method does not prints any balance of the ERC20 or ERC721 tokens on the account.

" +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/kcsgetblock.md b/v1.0/Blockchain/kucoin/kcsgetblock.md new file mode 100644 index 00000000..b1734e03 --- /dev/null +++ b/v1.0/Blockchain/kucoin/kcsgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Kcs block by hash" +slug: "kcsgetblock" +excerpt: "

1 credit per API call

\n

Get Kcs block by block hash or block number.

" +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/kucoin/kcsgetcurrentblock.md b/v1.0/Blockchain/kucoin/kcsgetcurrentblock.md new file mode 100644 index 00000000..f55e470d --- /dev/null +++ b/v1.0/Blockchain/kucoin/kcsgetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "kcsgetcurrentblock" +excerpt: "

1 credit per API call

\n

Get Kcs current block number. This is the number of the latest block in 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/kcsgettransaction.md b/v1.0/Blockchain/kucoin/kcsgettransaction.md new file mode 100644 index 00000000..eb714379 --- /dev/null +++ b/v1.0/Blockchain/kucoin/kcsgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Kcs Transaction" +slug: "kcsgettransaction" +excerpt: "

2 credits per API call

\n

Get Kcs transaction by transaction hash.

" +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/kucoin/kcsgettransactioncount.md b/v1.0/Blockchain/kucoin/kcsgettransactioncount.md new file mode 100644 index 00000000..0bddecd7 --- /dev/null +++ b/v1.0/Blockchain/kucoin/kcsgettransactioncount.md @@ -0,0 +1,8 @@ +--- +title: "Get count of outgoing Kcs transactions" +slug: "kcsgettransactioncount" +excerpt: "

1 credit per API call

\n

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.

" +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/kcsweb3driver.md b/v1.0/Blockchain/kucoin/kcsweb3driver.md new file mode 100644 index 00000000..34fa8c03 --- /dev/null +++ b/v1.0/Blockchain/kucoin/kcsweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "Web3 HTTP driver" +slug: "kcsweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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.

" +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/litecoin.md b/v1.0/Blockchain/litecoin.md new file mode 100644 index 00000000..e6a64568 --- /dev/null +++ b/v1.0/Blockchain/litecoin.md @@ -0,0 +1,8 @@ +--- +title: "Litecoin" +slug: "litecoin" +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/litecoin/ltcbroadcast.md b/v1.0/Blockchain/litecoin/ltcbroadcast.md new file mode 100644 index 00000000..6928bebf --- /dev/null +++ b/v1.0/Blockchain/litecoin/ltcbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed Litecoin transaction" +slug: "ltcbroadcast" +excerpt: "

5 credits per API call.


\n

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: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

Use this endpoint URL as an http-based JSON RPC driver to connect directly to the node provided by Tatum.

" +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/ltctransferblockchain.md b/v1.0/Blockchain/litecoin/ltctransferblockchain.md new file mode 100644 index 00000000..1cd87cfd --- /dev/null +++ b/v1.0/Blockchain/litecoin/ltctransferblockchain.md @@ -0,0 +1,8 @@ +--- +title: "Send LTC to Litecoin addresses" +slug: "ltctransferblockchain" +excerpt: "

10 credits per API call

\n

Send LTC to blockchain addresses.

\n

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.

" +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/polygonbroadcast.md b/v1.0/Blockchain/polygon-1/polygonbroadcast.md new file mode 100644 index 00000000..d8b3c2ff --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygonbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed Polygon transaction" +slug: "polygonbroadcast" +excerpt: "

2 credits per API call

\n

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.

" +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/polygon-1/polygongenerateaddressprivatekey.md b/v1.0/Blockchain/polygon-1/polygongenerateaddressprivatekey.md new file mode 100644 index 00000000..a680fbfe --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygongenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate Polygon private key" +slug: "polygongenerateaddressprivatekey" +excerpt: "

1 credit per API call

\n

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.

" +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/polygongeneratewallet.md b/v1.0/Blockchain/polygon-1/polygongeneratewallet.md new file mode 100644 index 00000000..1e3b8b5e --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygongeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Polygon wallet" +slug: "polygongeneratewallet" +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 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.

" +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/polygongetbalance.md b/v1.0/Blockchain/polygon-1/polygongetbalance.md new file mode 100644 index 00000000..a6b0767c --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygongetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get Polygon Account balance" +slug: "polygongetbalance" +excerpt: "

1 credit per API call

\n

Get Polygon account balance in MATIC. This method does not prints any balance of the ERC20 or ERC721 tokens on the account.

" +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/polygon-1/polygongetblock.md b/v1.0/Blockchain/polygon-1/polygongetblock.md new file mode 100644 index 00000000..fae2b882 --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygongetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Polygon block by hash" +slug: "polygongetblock" +excerpt: "

1 credit per API call

\n

Get Polygon block by block hash or block number.

" +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/polygon-1/polygongetcurrentblock.md b/v1.0/Blockchain/polygon-1/polygongetcurrentblock.md new file mode 100644 index 00000000..93753757 --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygongetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "polygongetcurrentblock" +excerpt: "

1 credit per API call

\n

Get Polygon current block number. This is the number of the latest block in the blockchain.

" +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/polygon-1/polygongettransaction.md b/v1.0/Blockchain/polygon-1/polygongettransaction.md new file mode 100644 index 00000000..33ee1c27 --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygongettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Polygon Transaction" +slug: "polygongettransaction" +excerpt: "

2 credits per API call

\n

Get Polygon transaction by transaction hash.

" +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/polygon-1/polygongettransactionbyaddress.md b/v1.0/Blockchain/polygon-1/polygongettransactionbyaddress.md new file mode 100644 index 00000000..91c2ecf2 --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygongettransactionbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get Polygon transactions by address" +slug: "polygongettransactionbyaddress" +excerpt: "

This endpoint is deprecated. Do not use it.

\n

1 credit per API call

\n

Get Polygon 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:03 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Blockchain/polygon-1/polygongettransactioncount.md b/v1.0/Blockchain/polygon-1/polygongettransactioncount.md new file mode 100644 index 00000000..1dc4f8ce --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygongettransactioncount.md @@ -0,0 +1,8 @@ +--- +title: "Get count of outgoing Polygon transactions" +slug: "polygongettransactioncount" +excerpt: "

1 credit per API call

\n

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.

" +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/polygon-1/polygonweb3driver.md b/v1.0/Blockchain/polygon-1/polygonweb3driver.md new file mode 100644 index 00000000..1f177805 --- /dev/null +++ b/v1.0/Blockchain/polygon-1/polygonweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "Web3 HTTP driver" +slug: "polygonweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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

" +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/solanageneratewallet.md b/v1.0/Blockchain/solana/solanageneratewallet.md new file mode 100644 index 00000000..ed520a28 --- /dev/null +++ b/v1.0/Blockchain/solana/solanageneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate Solana wallet" +slug: "solanageneratewallet" +excerpt: "

1 credit per API call.


\n

Generate Solana private key and account address.

" +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/solanagetbalance.md b/v1.0/Blockchain/solana/solanagetbalance.md new file mode 100644 index 00000000..35d8faeb --- /dev/null +++ b/v1.0/Blockchain/solana/solanagetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get Solana Account balance" +slug: "solanagetbalance" +excerpt: "

1 credit per API call.


Get Solana account balance in SOL. This method does not prints any balance of the SPL or NFT tokens on the account.

" +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/solanagetblock.md b/v1.0/Blockchain/solana/solanagetblock.md new file mode 100644 index 00000000..c8cc26d7 --- /dev/null +++ b/v1.0/Blockchain/solana/solanagetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get Solana block by number" +slug: "solanagetblock" +excerpt: "

1 credit per API call.


\n

Get Solana block by block hash or block number.
\nYou can find full data description here - https://docs.solana.com/developing/clients/jsonrpc-api#getblock\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/solanagetcurrentblock.md b/v1.0/Blockchain/solana/solanagetcurrentblock.md new file mode 100644 index 00000000..70a914b4 --- /dev/null +++ b/v1.0/Blockchain/solana/solanagetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "solanagetcurrentblock" +excerpt: "

1 credit per API call.


Get Solana current block number. This is the number of the latest block in 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/solana/solanagettransaction.md b/v1.0/Blockchain/solana/solanagettransaction.md new file mode 100644 index 00000000..c02ec26f --- /dev/null +++ b/v1.0/Blockchain/solana/solanagettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get Solana Transaction" +slug: "solanagettransaction" +excerpt: "

2 credit per API call.


Get Solana transaction by transaction hash.
\nYou can find full data description here - https://docs.solana.com/developing/clients/jsonrpc-api#gettransaction\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/solanaweb3driver.md b/v1.0/Blockchain/solana/solanaweb3driver.md new file mode 100644 index 00000000..2bc0486b --- /dev/null +++ b/v1.0/Blockchain/solana/solanaweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "JSON RPC HTTP driver" +slug: "solanaweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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.

" +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/stellar.md b/v1.0/Blockchain/stellar.md new file mode 100644 index 00000000..0c15cfd5 --- /dev/null +++ b/v1.0/Blockchain/stellar.md @@ -0,0 +1,8 @@ +--- +title: "Stellar" +slug: "stellar" +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/stellar/xlmbroadcast.md b/v1.0/Blockchain/stellar/xlmbroadcast.md new file mode 100644 index 00000000..1b54b0dd --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed XLM transaction" +slug: "xlmbroadcast" +excerpt: "

5 credits per API call.


\n

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/xlmgetaccountinfo.md b/v1.0/Blockchain/stellar/xlmgetaccountinfo.md new file mode 100644 index 00000000..11067522 --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmgetaccountinfo.md @@ -0,0 +1,8 @@ +--- +title: "Get XLM Account info" +slug: "xlmgetaccountinfo" +excerpt: "

5 credits per API call.


Get XLM Account detail.

" +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/xlmgetaccounttx.md b/v1.0/Blockchain/stellar/xlmgetaccounttx.md new file mode 100644 index 00000000..18b47763 --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmgetaccounttx.md @@ -0,0 +1,8 @@ +--- +title: "Get XLM Account transactions" +slug: "xlmgetaccounttx" +excerpt: "

5 credits per API call.


List all XLM account transactions.

" +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/stellar/xlmgetfee.md b/v1.0/Blockchain/stellar/xlmgetfee.md new file mode 100644 index 00000000..5ff1bdad --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmgetfee.md @@ -0,0 +1,8 @@ +--- +title: "Get actual XLM fee" +slug: "xlmgetfee" +excerpt: "

5 credits per API call.


Get XLM Blockchain fee in 1/10000000 of XLM (stroop)

" +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/xlmgetlastclosedledger.md b/v1.0/Blockchain/stellar/xlmgetlastclosedledger.md new file mode 100644 index 00000000..20a8fc60 --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmgetlastclosedledger.md @@ -0,0 +1,8 @@ +--- +title: "Get XLM Blockchain Information" +slug: "xlmgetlastclosedledger" +excerpt: "

5 credits per API call.


Get XLM Blockchain last closed ledger.

" +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/stellar/xlmgetledger.md b/v1.0/Blockchain/stellar/xlmgetledger.md new file mode 100644 index 00000000..d01a29db --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmgetledger.md @@ -0,0 +1,8 @@ +--- +title: "Get XLM Blockchain Ledger by sequence" +slug: "xlmgetledger" +excerpt: "

5 credits per API call.


Get XLM Blockchain ledger for ledger sequence.

" +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/stellar/xlmgetledgertx.md b/v1.0/Blockchain/stellar/xlmgetledgertx.md new file mode 100644 index 00000000..dd353d54 --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmgetledgertx.md @@ -0,0 +1,8 @@ +--- +title: "Get XLM Blockchain Transactions in Ledger" +slug: "xlmgetledgertx" +excerpt: "

5 credits per API call.


Get XLM Blockchain transactions in the ledger.

" +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/stellar/xlmgettransaction.md b/v1.0/Blockchain/stellar/xlmgettransaction.md new file mode 100644 index 00000000..636cb2bd --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get XLM Transaction by hash" +slug: "xlmgettransaction" +excerpt: "

5 credits per API call.


Get XLM Transaction by transaction hash.

" +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

" +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/xlmtrustlineblockchain.md b/v1.0/Blockchain/stellar/xlmtrustlineblockchain.md new file mode 100644 index 00000000..ae1ce837 --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmtrustlineblockchain.md @@ -0,0 +1,8 @@ +--- +title: "Create / Update / Delete XLM trust line" +slug: "xlmtrustlineblockchain" +excerpt: "

10 credits per API call.


\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

" +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/stellar/xlmwallet.md b/v1.0/Blockchain/stellar/xlmwallet.md new file mode 100644 index 00000000..880e7fbf --- /dev/null +++ b/v1.0/Blockchain/stellar/xlmwallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate XLM account" +slug: "xlmwallet" +excerpt: "

5 credits per API call.


\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:

\n

https://api.tatum.io/v3/tron/transaction/account/{address}?next=81d0524acf5967f3b361e03fd7d141ab511791cd7aad7ae406c4c8d408290991

" +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:

\n

https://api.tatum.io/v3/tron/transaction/account/{address}/trc20?next=81d0524acf5967f3b361e03fd7d141ab511791cd7aad7ae406c4c8d408290991

" +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.

" +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/troncreatetrc10.md b/v1.0/Blockchain/tron-1/troncreatetrc10.md new file mode 100644 index 00000000..e39fd765 --- /dev/null +++ b/v1.0/Blockchain/tron-1/troncreatetrc10.md @@ -0,0 +1,8 @@ +--- +title: "Create a TRC-10 token" +slug: "troncreatetrc10" +excerpt: "

10 credits per API call

\n

Create a TRON TRC-10 token.

\n

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.

" +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/troncreatetrc20.md b/v1.0/Blockchain/tron-1/troncreatetrc20.md new file mode 100644 index 00000000..3965fd52 --- /dev/null +++ b/v1.0/Blockchain/tron-1/troncreatetrc20.md @@ -0,0 +1,8 @@ +--- +title: "Create a TRC-20 token" +slug: "troncreatetrc20" +excerpt: "

10 credits per API call

\n

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.

" +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/vechain.md b/v1.0/Blockchain/vechain.md new file mode 100644 index 00000000..d55896f2 --- /dev/null +++ b/v1.0/Blockchain/vechain.md @@ -0,0 +1,8 @@ +--- +title: "VeChain" +slug: "vechain" +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/vechain/vetblockchaintransfer.md b/v1.0/Blockchain/vechain/vetblockchaintransfer.md new file mode 100644 index 00000000..377d8377 --- /dev/null +++ b/v1.0/Blockchain/vechain/vetblockchaintransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send VeChain from account to account" +slug: "vetblockchaintransfer" +excerpt: "

10 credits per API call.


\n

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

" +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/vetbroadcast.md b/v1.0/Blockchain/vechain/vetbroadcast.md new file mode 100644 index 00000000..401fdb40 --- /dev/null +++ b/v1.0/Blockchain/vechain/vetbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed VeChain transaction" +slug: "vetbroadcast" +excerpt: "

5 credits per API call.


\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.

" +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/vetgenerateaddressprivatekey.md b/v1.0/Blockchain/vechain/vetgenerateaddressprivatekey.md new file mode 100644 index 00000000..f124e669 --- /dev/null +++ b/v1.0/Blockchain/vechain/vetgenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate VeChain private key" +slug: "vetgenerateaddressprivatekey" +excerpt: "

5 credits per API call.


\n

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.

" +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/vetgeneratewallet.md b/v1.0/Blockchain/vechain/vetgeneratewallet.md new file mode 100644 index 00000000..9825cfa9 --- /dev/null +++ b/v1.0/Blockchain/vechain/vetgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate VeChain wallet" +slug: "vetgeneratewallet" +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 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.

" +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/vechain/vetgetbalance.md b/v1.0/Blockchain/vechain/vetgetbalance.md new file mode 100644 index 00000000..bef015f8 --- /dev/null +++ b/v1.0/Blockchain/vechain/vetgetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get VeChain Account balance" +slug: "vetgetbalance" +excerpt: "

5 credits per API call.


Get VeChain Account balance in VET.

" +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/vetgetblock.md b/v1.0/Blockchain/vechain/vetgetblock.md new file mode 100644 index 00000000..8fb4720f --- /dev/null +++ b/v1.0/Blockchain/vechain/vetgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get VeChain Block by hash" +slug: "vetgetblock" +excerpt: "

5 credits per API call.


Get VeChain Block by block hash or block number.

" +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/vechain/vetgetcurrentblock.md b/v1.0/Blockchain/vechain/vetgetcurrentblock.md new file mode 100644 index 00000000..fe982c28 --- /dev/null +++ b/v1.0/Blockchain/vechain/vetgetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get VeChain current block" +slug: "vetgetcurrentblock" +excerpt: "

5 credits per API call.


Get VeChain current block number.

" +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/vetgetenergy.md b/v1.0/Blockchain/vechain/vetgetenergy.md new file mode 100644 index 00000000..5f8fcf91 --- /dev/null +++ b/v1.0/Blockchain/vechain/vetgetenergy.md @@ -0,0 +1,8 @@ +--- +title: "Get VeChain Account energy (VTHO)" +slug: "vetgetenergy" +excerpt: "

5 credits per API call.


Get VeChain Account energy in VTHO. VTHO is used for paying for the transaction fee.

" +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/vechain/vetgettransaction.md b/v1.0/Blockchain/vechain/vetgettransaction.md new file mode 100644 index 00000000..3c7be5b2 --- /dev/null +++ b/v1.0/Blockchain/vechain/vetgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get VeChain Transaction" +slug: "vetgettransaction" +excerpt: "

10 credits per API call.


Get VeChain Transaction by transaction hash.

" +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/vechain/vetgettransactionreceipt.md b/v1.0/Blockchain/vechain/vetgettransactionreceipt.md new file mode 100644 index 00000000..7aa8f98b --- /dev/null +++ b/v1.0/Blockchain/vechain/vetgettransactionreceipt.md @@ -0,0 +1,8 @@ +--- +title: "Get VeChain Transaction Receipt" +slug: "vetgettransactionreceipt" +excerpt: "

5 credits per API call.


\n

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.

" +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/xdcgenerateaddressprivatekey.md b/v1.0/Blockchain/xinfin/xdcgenerateaddressprivatekey.md new file mode 100644 index 00000000..1ee4c8e6 --- /dev/null +++ b/v1.0/Blockchain/xinfin/xdcgenerateaddressprivatekey.md @@ -0,0 +1,8 @@ +--- +title: "Generate XDC private key" +slug: "xdcgenerateaddressprivatekey" +excerpt: "

1 credit per API call

\n

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.

" +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/xdcgeneratewallet.md b/v1.0/Blockchain/xinfin/xdcgeneratewallet.md new file mode 100644 index 00000000..b040aed1 --- /dev/null +++ b/v1.0/Blockchain/xinfin/xdcgeneratewallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate XDC wallet" +slug: "xdcgeneratewallet" +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.\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.

" +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/xdcgetbalance.md b/v1.0/Blockchain/xinfin/xdcgetbalance.md new file mode 100644 index 00000000..8a26d7d8 --- /dev/null +++ b/v1.0/Blockchain/xinfin/xdcgetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get XDC Account balance" +slug: "xdcgetbalance" +excerpt: "

1 credit per API call

\n

Get account balance in XDC. This method does not prints any balance of the ERC20 or ERC721 tokens on the account.

" +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/xdcgetblock.md b/v1.0/Blockchain/xinfin/xdcgetblock.md new file mode 100644 index 00000000..d6c57806 --- /dev/null +++ b/v1.0/Blockchain/xinfin/xdcgetblock.md @@ -0,0 +1,8 @@ +--- +title: "Get XDC block by hash" +slug: "xdcgetblock" +excerpt: "

1 credit per API call

\n

Get XDC block by block hash or block number.

" +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/xdcgetcurrentblock.md b/v1.0/Blockchain/xinfin/xdcgetcurrentblock.md new file mode 100644 index 00000000..cccb14fc --- /dev/null +++ b/v1.0/Blockchain/xinfin/xdcgetcurrentblock.md @@ -0,0 +1,8 @@ +--- +title: "Get current block number" +slug: "xdcgetcurrentblock" +excerpt: "

1 credit per API call

\n

Get XDC current block number. This is the number of the latest block in 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/xinfin/xdcgettransaction.md b/v1.0/Blockchain/xinfin/xdcgettransaction.md new file mode 100644 index 00000000..072e1965 --- /dev/null +++ b/v1.0/Blockchain/xinfin/xdcgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get XDC Transaction" +slug: "xdcgettransaction" +excerpt: "

2 credits per API call

\n

Get XDC transaction by transaction hash.

" +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/xdcgettransactioncount.md b/v1.0/Blockchain/xinfin/xdcgettransactioncount.md new file mode 100644 index 00000000..621c635a --- /dev/null +++ b/v1.0/Blockchain/xinfin/xdcgettransactioncount.md @@ -0,0 +1,8 @@ +--- +title: "Get count of outgoing XDC transactions" +slug: "xdcgettransactioncount" +excerpt: "

1 credit per API call

\n

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.

" +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/xdcweb3driver.md b/v1.0/Blockchain/xinfin/xdcweb3driver.md new file mode 100644 index 00000000..237f4382 --- /dev/null +++ b/v1.0/Blockchain/xinfin/xdcweb3driver.md @@ -0,0 +1,8 @@ +--- +title: "Web3 HTTP driver" +slug: "xdcweb3driver" +excerpt: "

2 credits per API call

\n

This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.


\n

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.

" +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/xrp.md b/v1.0/Blockchain/xrp.md new file mode 100644 index 00000000..134d6a23 --- /dev/null +++ b/v1.0/Blockchain/xrp.md @@ -0,0 +1,8 @@ +--- +title: "XRP" +slug: "xrp" +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/xrp/xrpaccountsettings.md b/v1.0/Blockchain/xrp/xrpaccountsettings.md new file mode 100644 index 00000000..9b7470ec --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpaccountsettings.md @@ -0,0 +1,8 @@ +--- +title: "Modify XRP account" +slug: "xrpaccountsettings" +excerpt: "

10 credits per API call.


\n

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

" +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/xrpbroadcast.md b/v1.0/Blockchain/xrp/xrpbroadcast.md new file mode 100644 index 00000000..67052fc5 --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpbroadcast.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed XRP transaction" +slug: "xrpbroadcast" +excerpt: "

5 credits per API call.


\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.

" +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/xrp/xrpgetaccountbalance.md b/v1.0/Blockchain/xrp/xrpgetaccountbalance.md new file mode 100644 index 00000000..70c75fc9 --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpgetaccountbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get Account Balance" +slug: "xrpgetaccountbalance" +excerpt: "

5 credits per API call.


Get XRP Account Balance. Obtain balance of the XRP and other assets on the account.

" +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/xrpgetaccountinfo.md b/v1.0/Blockchain/xrp/xrpgetaccountinfo.md new file mode 100644 index 00000000..73b3ad83 --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpgetaccountinfo.md @@ -0,0 +1,8 @@ +--- +title: "Get Account info" +slug: "xrpgetaccountinfo" +excerpt: "

5 credits per API call.


Get XRP Account info.

" +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/xrp/xrpgetaccounttx.md b/v1.0/Blockchain/xrp/xrpgetaccounttx.md new file mode 100644 index 00000000..d238872f --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpgetaccounttx.md @@ -0,0 +1,8 @@ +--- +title: "Get Account transactions" +slug: "xrpgetaccounttx" +excerpt: "

5 credits per API call.


List all Account transactions.

" +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/xrpgetfee.md b/v1.0/Blockchain/xrp/xrpgetfee.md new file mode 100644 index 00000000..c47d2aee --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpgetfee.md @@ -0,0 +1,8 @@ +--- +title: "Get actual Blockchain fee" +slug: "xrpgetfee" +excerpt: "

5 credits per API call.


\n

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:51 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Blockchain/xrp/xrpgetlastclosedledger.md b/v1.0/Blockchain/xrp/xrpgetlastclosedledger.md new file mode 100644 index 00000000..2253bd96 --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpgetlastclosedledger.md @@ -0,0 +1,8 @@ +--- +title: "Get XRP Blockchain Information" +slug: "xrpgetlastclosedledger" +excerpt: "

5 credits per API call.


Get XRP Blockchain last closed ledger index and hash.

" +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/xrp/xrpgetledger.md b/v1.0/Blockchain/xrp/xrpgetledger.md new file mode 100644 index 00000000..81f0f3ef --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpgetledger.md @@ -0,0 +1,8 @@ +--- +title: "Get Ledger" +slug: "xrpgetledger" +excerpt: "

5 credits per API call.


Get ledger by sequence.

" +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/xrp/xrpgettransaction.md b/v1.0/Blockchain/xrp/xrpgettransaction.md new file mode 100644 index 00000000..cdfb7fe6 --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpgettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get XRP Transaction by hash" +slug: "xrpgettransaction" +excerpt: "

5 credits per API call.


Get XRP Transaction by transaction hash.

" +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

" +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/xrp/xrptrustlineblockchain.md b/v1.0/Blockchain/xrp/xrptrustlineblockchain.md new file mode 100644 index 00000000..703e558e --- /dev/null +++ b/v1.0/Blockchain/xrp/xrptrustlineblockchain.md @@ -0,0 +1,8 @@ +--- +title: "Create / Update / Delete XRP trust line" +slug: "xrptrustlineblockchain" +excerpt: "

10 credits per API call.


\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.

" +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/xrpwallet.md b/v1.0/Blockchain/xrp/xrpwallet.md new file mode 100644 index 00000000..9465aeb7 --- /dev/null +++ b/v1.0/Blockchain/xrp/xrpwallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate XRP account" +slug: "xrpwallet" +excerpt: "

5 credits per API call.


\n

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.

\n Get started for free\n
"}[/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: "

2 credits per API call

\n

Get an estimated gas price and the number of gas units needed for a Celo transaction. The gas price is obtained from https://explorer.bitquery.io/celo_rc1/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/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: "

2 credits per API call

\n

Get an estimated gas price and the number of gas units needed for an Elrond transaction. The gas price is obtained from https://gateway.elrond.com/network/config. The gas limit is obtains from https://gateway.elrond.com/transaction/cost.

" +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.

" +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/oneestimategas.md b/v1.0/Fee estimation/blockchain-fees/oneestimategas.md new file mode 100644 index 00000000..3cd874d6 --- /dev/null +++ b/v1.0/Fee estimation/blockchain-fees/oneestimategas.md @@ -0,0 +1,8 @@ +--- +title: "Estimate Harmony transaction fees" +slug: "oneestimategas" +excerpt: "

2 credits per API call

\n

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: "

2 credits per API call

\n

Get an estimated gas price and the number of gas units needed for a Polygon transaction. The gas price is obtained from https://gasstation-mainnet.matic.network/.

\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/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.

" +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/virtual-account-blockchain-fees.md b/v1.0/Fee estimation/virtual-account-blockchain-fees.md new file mode 100644 index 00000000..b7c30a7d --- /dev/null +++ b/v1.0/Fee estimation/virtual-account-blockchain-fees.md @@ -0,0 +1,8 @@ +--- +title: "Virtual account blockchain fees" +slug: "virtual-account-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/virtual-account-blockchain-fees/offchainestimatefee.md b/v1.0/Fee estimation/virtual-account-blockchain-fees/offchainestimatefee.md new file mode 100644 index 00000000..a55a8b67 --- /dev/null +++ b/v1.0/Fee estimation/virtual-account-blockchain-fees/offchainestimatefee.md @@ -0,0 +1,8 @@ +--- +title: "Estimate ledger to blockchain transaction fee" +slug: "offchainestimatefee" +excerpt: "

2 credits per API call.


\n

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({network: Network.BITCOIN}) + +const result = await tatum.rpc.getDifficulty() + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolancestors.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolancestors.md new file mode 100644 index 00000000..6be74a11 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolancestors.md @@ -0,0 +1,56 @@ +--- +title: "getmempoolancestors" +slug: "rpc-btc-getmempoolancestors" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 06:41:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:55:52 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getmempoolancestors` is a Bitcoin RPC method that returns information about the ancestors of a transaction in the memory pool. This method can be used to analyze the dependency relationships between unconfirmed transactions and to investigate potential transaction issues, such as chains of unconfirmed transactions or transactions that depend on others with a low fee. + +## Parameters + +- `txid`: The transaction ID (string, required) of the transaction for which you want to retrieve the ancestors. +- `verbose`: Whether to return a JSON object with detailed information about the ancestors (bool, optional, default = false). If `false`, only the transaction IDs of the ancestors are returned. + +## Returns + +The return object depends on the `verbose` parameter: + +If `verbose` is `false`, the return object is an array of strings, each representing the transaction ID of an ancestor. + +If `verbose` is `true`, the return object is a JSON object, where the keys are the transaction IDs of the ancestors, and the values are JSON objects containing detailed information about the ancestors. + +\## 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": "getmempoolancestors", + "params": [ + "3b3c3bc559deddb0991e1fe9fb6d9f10c1c4a0dab4a18c12e8566b37ad4f06e4" + ] +} +' +``` +```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.getMempoolAncestors("3b3c3bc559deddb0991e1fe9fb6d9f10c1c4a0dab4a18c12e8566b37ad4f06e4") + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempooldescendants.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempooldescendants.md new file mode 100644 index 00000000..385ce3e5 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempooldescendants.md @@ -0,0 +1,55 @@ +--- +title: "getmempooldescendants" +slug: "rpc-btc-getmempooldescendants" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 06:45:56 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:55:59 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getmempooldescendants` RPC method allows you to retrieve information about the descendant transactions of a specified transaction in the memory pool. This method is useful for understanding the relationships between unconfirmed transactions and the possible effects of their confirmation on the overall transaction fees and network congestion. + +## Parameters + +- `txid`: The transaction ID of the transaction for which you want to get its descendants. +- `verbose`: If set to `true`, detailed information about each descendant transaction will be returned, otherwise only the transaction IDs will be returned. + +## Returns + +The return object depends on the `verbose` parameter: + +If `verbose` is `false`, the return object is an array of strings, each representing the transaction ID of a descendant. + +If `verbose` is `true`, the return object is a JSON object, where the keys are the transaction IDs of the descendants, and the values are JSON objects containing detailed information about the descendants. + +## 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": "getmempooldescendants", + "params": [ + "3b3c3bc559deddb0991e1fe9fb6d9f10c1c4a0dab4a18c12e8566b37ad4f06e4" + ] +}' +``` +```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.getMempoolDescendants("3b3c3bc559deddb0991e1fe9fb6d9f10c1c4a0dab4a18c12e8566b37ad4f06e4") + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolentry.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolentry.md new file mode 100644 index 00000000..bed0b015 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolentry.md @@ -0,0 +1,66 @@ +--- +title: "getmempoolentry" +slug: "rpc-btc-getmempoolentry" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 06:49:30 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:56:04 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getmempoolentry` RPC method allows you to retrieve information about a specific transaction in the memory pool. This method is useful for tracking the status of unconfirmed transactions and for gathering additional details about their current state. + +## Parameters + +- `txid`: The transaction ID of the transaction you want to retrieve information about. + +## Returns + +The return object will be an object containing information about the specified transaction. + +| Name | Description | +| :----------------- | :----------------------------------------------------------------------------------------------- | +| size | The transaction size in bytes. | +| fee | The transaction fee in BTC. | +| modifiedfee | The transaction fee with fee deltas used for mining priority. | +| time | The local time the transaction entered the memory pool. | +| height | The block height when the transaction entered the memory pool. | +| descendantcount | The number of descendant transactions. | +| descendantsize | he virtual transaction size of all descendant transactions combined. | +| descendantfees | The total fees of all descendant transactions. | +| ancestorcount | The number of ancestor transactions. | +| ancestorsize | he virtual transaction size of all ancestor transactions combined. | +| ancestorfees | The total fees of all ancestor transactions. | +| wtxid | The witness transaction ID of the transaction. | +| depends | An array containing the witness transaction IDs of the transactions this transaction depends on. | +| spentby | An array containing the witness transaction IDs of the transactions that spend this transaction. | +| bip125-replaceable | Whether the transaction is BIP125 replaceable. Possible values are "yes", "no", or "unknown". | + +## 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": "getmempoolentry", + "params": ["c7ad51e46a39d136adc2bb7536a236136cc206ab3c8dabcd4277d4cadcf674f2"], + "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.getMempoolEntry("c7ad51e46a39d136adc2bb7536a236136cc206ab3c8dabcd4277d4cadcf674f2") + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolinfo.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolinfo.md new file mode 100644 index 00000000..aac813d0 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getmempoolinfo.md @@ -0,0 +1,56 @@ +--- +title: "getmempoolinfo" +slug: "rpc-btc-getmempoolinfo" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 06:56:15 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:56:10 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getmempoolinfo` RPC method allows you to retrieve general information about the current memory pool. This method is useful for monitoring the state of the memory pool, such as its size, the total transaction fees, and the minimum fee rate required for transactions to be included in the next block. + +## Parameters + +This method does not require any parameters. + +## Returns + +The return object will be an object containing general information about the current memory pool. + +| Name | Description | +| :------------ | :-------------------------------------------------------------------------------------------- | +| size | The number of transactions in the memory pool. | +| bytes | The total size of all transactions in the memory pool, in bytes. | +| usage | The total memory usage of the memory pool, in bytes. | +| maxmempool | The maximum memory usage of the memory pool, in bytes. | +| mempoolminfee | The minimum fee rate (in BTC/kB) required for transactions to be included in the memory pool. | +| minrelaytxfee | The minimum fee rate (in BTC/kB) required for transactions to be relayed across the network. | + +## 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": "getmempoolinfo", + "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.getMempoolInfo() + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getrawmempool.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getrawmempool.md new file mode 100644 index 00000000..bafaa1b8 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-getrawmempool.md @@ -0,0 +1,72 @@ +--- +title: "getrawmempool" +slug: "rpc-btc-getrawmempool" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 07:01:48 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:56:16 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getrawmempool` RPC method provides information on the transactions currently in the memory pool. This method is useful for getting details about unconfirmed transactions that have not yet been included in a block. + +## Parameters + +`verbose`: Set to true to receive a detailed JSON object for each transaction in the memory pool. Set to false to receive a simple array of transaction IDs. + +- Example: `verbose`: `true` + +## Returns + +The return object will depend on the value of the verbose parameter. + +If `verbose` is set to `false`, the method will return an array of transaction IDs. + +If `verbose` is set to `true`, the method will return an object with transaction IDs as keys and detailed transaction information as values. + +Fields (when verbose is true): + +| Name | Description | +| :-------------- | :----------------------------------------------------------------------------- | +| size | The transaction size in bytes. | +| fee | The transaction fee in BTC. | +| modifiedfee | The transaction fee with descendants in BTC. | +| time | The local time when the transaction entered the memory pool. | +| height | The block height when the transaction entered the memory pool. | +| descendantcount | The number of descendant transactions in the memory pool. | +| descendantsize | The total size of all descendant transactions in the memory pool, in bytes. | +| descendantfees | The total fees of all descendant transactions in the memory pool, in satoshis. | +| ancestorcount | The number of ancestor transactions in the memory pool. | +| ancestorsize | The total size of all ancestor transactions in the memory pool, in bytes. | +| ancestorfees | The total fees of all ancestor transactions in the memory pool, in satoshis. | +| wtxid | The transaction witness ID. | +| depends | An array of unconfirmed transactions that this transaction depends on. | + +## 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": "getrawmempool", + "params": [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.getRawMemPool(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-gettxout.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-gettxout.md new file mode 100644 index 00000000..25fb172e --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-gettxout.md @@ -0,0 +1,83 @@ +--- +title: "gettxout" +slug: "rpc-btc-gettxout" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 06:07:03 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:55:35 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `gettxout` RPC method returns details about an unspent transaction output (UTXO). This method can be used to check if a specific transaction output is still unspent and obtain its details such as the value and scriptPubKey. + +## Parameters + +- `txid`: The transaction ID of the output. + - Example: "a12345abcdef67890bcdef1234567890abcdef1234567890abcdef1234567890" +- `n`: The index of the output within the transaction (vout). + - Example: `1` +- `include_mempool`: Whether to include the mempool. Set to false to only check for outputs confirmed in the blockchain. + - Example: `True` + +## Returns + +The return object contains the following fields: + +[block:parameters] +{ + "data": { + "h-0": "Name", + "h-1": "Description", + "0-0": "bestblock", + "0-1": "The hash of the block at the tip of the blockchain.", + "1-0": "confirmations", + "1-1": "The number of confirmations for the transaction. -1 if the transaction is not yet confirmed and in the mempool.", + "2-0": "value", + "2-1": "The value of the output in BTC.", + "3-0": "scriptPubKey", + "3-1": "Information about the output's scriptPubKey: \n`asm`: The assembly representation of the script. \n`hex`: The hex representation of the script. \n`type`: The type of the script (e.g., pubkeyhash, scripthash). \n`addresses`: The Bitcoin addresses associated with this output.", + "4-0": "coinbase", + "4-1": "Whether the transaction is a coinbase transaction.", + "5-0": "version", + "5-1": "The transaction version.", + "6-0": "height", + "6-1": "The height of the block containing this output." + }, + "cols": 2, + "rows": 7, + "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": "gettxout", + "params": ["c7ad51e46a39d136adc2bb7536a236136cc206ab3c8dabcd4277d4cadcf674f2", 1], + "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.getTxOut("c7ad51e46a39d136adc2bb7536a236136cc206ab3c8dabcd4277d4cadcf674f2", 1) + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-gettxoutproof.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-gettxoutproof.md new file mode 100644 index 00000000..b531932b --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-gettxoutproof.md @@ -0,0 +1,51 @@ +--- +title: "gettxoutproof" +slug: "rpc-btc-gettxoutproof" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 06:34:41 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:55:41 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `gettxoutproof` RPC method returns a hex-encoded proof that the specified transaction(s) were included in a block. This method can be used to provide proof of inclusion for one or more transactions in the blockchain. + +## Parameters + +- `txids`: An array of transaction IDs to create a proof for. + - txids: ["c7ad51e46a39d136adc2bb7536a236136cc206ab3c8dabcd4277d4cadcf674f2"] +- `blockhash`: The hash of the block that contains the transactions. If not provided, the method will search for the transactions in the most recent blocks. + - Example: "00000000000000000004c6125026f00b76e7b762e645a0b0b7ecfa7a7dafdba2" + +## Returns + +`hex`: The hex-encoded proof of the transaction(s) inclusion in the 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": "gettxoutproof", + "params": [["c7ad51e46a39d136adc2bb7536a236136cc206ab3c8dabcd4277d4cadcf674f2"], "00000000000000000004c6125026f00b76e7b762e645a0b0b7ecfa7a7dafdba2"], + "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.getTxOutProof(["c7ad51e46a39d136adc2bb7536a236136cc206ab3c8dabcd4277d4cadcf674f2"], "00000000000000000004c6125026f00b76e7b762e645a0b0b7ecfa7a7dafdba2") + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-validateaddress.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-validateaddress.md new file mode 100644 index 00000000..3a78630a --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-validateaddress.md @@ -0,0 +1,66 @@ +--- +title: "validateaddress" +slug: "rpc-btc-validateaddress" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 07:09:40 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:56:23 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `validateaddress` is a Bitcoin RPC method that enables users to verify if a given Bitcoin address is valid. This method provides important information about the address, such as its type and whether it's a spendable or watch-only address. It can be particularly useful in applications where address validation is necessary before performing transactions or when dealing with user-generated addresses to ensure their validity. + +## Parameters + +The `validateaddress` method accepts one required parameter: + +`address` : The Bitcoin address to be validated. + +## Returns + +The validateaddress method returns an object with the following fields: + +| Name | Description | +| :-------------- | :------------------------------------------------------------------------------------------ | +| isvalid | Indicates if the supplied address is valid. | +| address | The validated Bitcoin address. | +| scriptPubKey | The hex-encoded scriptPubKey generated by the address. | +| isscript | Indicates if the address is a script address (P2SH). | +| iswitness | Indicates if the address is a witness address (P2WPKH or P2WSH). | +| witness_version | The version number of the witness program, if applicable. | +| witness_program | The hex value of the witness program, if applicable. | +| isspendable | Indicates if the address is spendable (has the private key). | +| iswatchonly | Indicates if the address is watch-only (wallet has the public key but not the private key). | +| iscompressed | Indicates if the associated public key is compressed. | +| account | DEPRECATED. The account associated with the address, if any. | + +## 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", + "id": 1, + "method": "validateaddress", + "params": [ + "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" + ] +}' +``` +```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.validateAddress("1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa") + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-verifymessage.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-verifymessage.md new file mode 100644 index 00000000..d99ac37f --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-verifymessage.md @@ -0,0 +1,60 @@ +--- +title: "verifymessage" +slug: "rpc-btc-verifymessage" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 07:17:22 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:56:29 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `verifymessage` is a Bitcoin RPC method that allows users to verify a signed message using a Bitcoin address. This method can be used to confirm the authenticity of a message by verifying that the signature was created by the owner of the address, without revealing the private key. Use cases include proving ownership of an address, verifying the content of a message, or validating communications within a trustless system. + +## Parameters + +The `verifymessage` method accepts three required parameters: + +`address`: The Bitcoin address that supposedly signed the message. + +`signature`: The base64-encoded signature of the message. + +`message`: The message that was signed. + +## Returns + +The `verifymessage` method returns a single boolean value: + +`isvalid`: Indicates if the signature is valid for the given message and address + +## 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", + "id": 1, + "method": "verifymessage", + "params": [ + "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", +"HxK7Mw0K6Uox7iGcOe9v9Ll+OZzG7TjTkeTJCD7VHw4yKP4O4a4gFtgm9XNmxfH1tK7JRgYrP/+20xP/ek8iQ2E=", + "Hello, this is a signed message." + ] +}' +``` +```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.verifyMessage( "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", "HxK7Mw0K6Uox7iGcOe9v9Ll+OZzG7TjTkeTJCD7VHw4yKP4O4a4gFtgm9XNmxfH1tK7JRgYrP/+20xP/ek8iQ2E=", "Hello, this is a signed message.") + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-verifytxoutproof.md b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-verifytxoutproof.md new file mode 100644 index 00000000..3b4769e4 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/bitcoin-1/rpc-btc-verifytxoutproof.md @@ -0,0 +1,50 @@ +--- +title: "verifytxoutproof" +slug: "rpc-btc-verifytxoutproof" +excerpt: "Bitcoin RPC" +hidden: false +metadata: + image: [] + keywords: "bitcoin, rpc" + robots: "index" +createdAt: "Wed Mar 27 2024 06:39:07 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Apr 03 2024 08:55:46 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `verifytxoutproof` RPC method verifies the given transaction proof (in the form of a Merkle block) and returns an array of transaction hashes contained in the verified Merkle block. This method can be used to confirm that specific transactions are included in a block without having to download the entire block. + +## Parameters + +- `proof`: The hex-encoded proof generated by the gettxoutproof RPC method. + +## Returns + +An array of transaction hashes contained in the verified Merkle 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", + "id": 1, + "method": "verifytxoutproof", + "params": [ + "00000020fc61cc9f1bda9ef9e5d6bcccc7f210a0e87e7ccbc017d8487031b91d0000000047451bc9b84a546eafbe39baedb3cda967ea57cf1ab650b24d88395f2e4e3d413e4f22e8d9d9ea1c000000000102000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0100f2052a01000000434104e70b81e35e7cf03f6238471f7d9c903d48aea7c1d067e3010b9000000000000" + ] +}' +``` +```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.verifyTxOutProof("") + +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +``` diff --git a/v1.0/RPC Nodes/rpc-utxo/doge.md b/v1.0/RPC Nodes/rpc-utxo/doge.md new file mode 100644 index 00000000..2b7e71bf --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/doge.md @@ -0,0 +1,8 @@ +--- +title: "Doge" +slug: "doge" +excerpt: "" +hidden: false +createdAt: "Wed Mar 06 2024 10:39:38 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Mar 06 2024 10:39:38 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/RPC Nodes/rpc-utxo/doge/getbestblockhash-1.md b/v1.0/RPC Nodes/rpc-utxo/doge/getbestblockhash-1.md new file mode 100644 index 00000000..e1203c3c --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/doge/getbestblockhash-1.md @@ -0,0 +1,37 @@ +--- +title: "getbestblockhash" +slug: "getbestblockhash-1" +excerpt: "" +hidden: false +createdAt: "Wed Mar 06 2024 10:41:39 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Mar 06 2024 10:41:39 GMT+0000 (Coordinated Universal Time)" +--- +How to use it +// yarn add @tatumio/tatum +​ +import { TatumSDK, Dogecoin, Network } from '@tatumio/tatum' +​ +const tatum = await TatumSDK.init({network: DOGECOIN}) +​ +const result = await tatum.rpc.getBestBlockHash() +​ +await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs +Overview +getbestblockhash is a Dogecoin RPC method that returns the hash of the best (tip) block in the longest blockchain. This method is useful for obtaining the latest block hash, which can be used to fetch block details or confirmations for transactions. +Parameters +This method does not have any parameters. +Return Object +The returned object is a string containing the hash of the best block. +JSON Examples +Request example: +{ + "id": 1, + "jsonrpc": "2.0", + "method": "getbestblockhash" +} +Response example: +{ + "id": 1, + "result": "0000000000000000000ef0e1f703b56f2b0d6724e4eeccf00e4f8d55b9c3c3f6e", + "error": null +} diff --git a/v1.0/RPC Nodes/rpc-utxo/doge/getblock-copy-1.md b/v1.0/RPC Nodes/rpc-utxo/doge/getblock-copy-1.md new file mode 100644 index 00000000..c4153897 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/doge/getblock-copy-1.md @@ -0,0 +1,45 @@ +--- +title: "getblockhash" +slug: "getblock-copy-1" +excerpt: "" +hidden: true +createdAt: "Wed Mar 27 2024 07:23:01 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Mar 27 2024 07:30:11 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getblockhash` is a Dogecoin RPC method that returns the block hash for a specified block height in the local best blockchain. This method is useful for obtaining the hash of a specific block, which can then be used to query for more detailed information about that block using other RPC methods, such as `getblock`. + +## Parameters + +- `height`: The height of the block for which the hash is requested. This is an integer parameter. + - Example: `587123` + +## Returns + +The return object is a string representing the hash of the block at the specified height. + +## 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, Dogecoin, Network } from '@tatumio/tatum' + +const tatum = await TatumSDK.init({network: Network.DOGECOIN}) + +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/doge/getblock-copy-2.md b/v1.0/RPC Nodes/rpc-utxo/doge/getblock-copy-2.md new file mode 100644 index 00000000..6db48495 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/doge/getblock-copy-2.md @@ -0,0 +1,39 @@ +--- +title: "getblockcount" +slug: "getblock-copy-2" +excerpt: "" +hidden: true +createdAt: "Wed Mar 27 2024 07:42:46 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Mar 27 2024 07:58:31 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getblockcount` is a Dogecoin 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/doge/getblockcount-copy-1.md b/v1.0/RPC Nodes/rpc-utxo/doge/getblockcount-copy-1.md new file mode 100644 index 00000000..b6a1d6ee --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/doge/getblockcount-copy-1.md @@ -0,0 +1,39 @@ +--- +title: "getblockchaininfo" +slug: "getblockcount-copy-1" +excerpt: "" +hidden: true +createdAt: "Wed Mar 27 2024 07:57:29 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Mar 27 2024 07:58:08 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getblockcount` is a Dogecoin 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/doge/getblockhash-copy-1.md b/v1.0/RPC Nodes/rpc-utxo/doge/getblockhash-copy-1.md new file mode 100644 index 00000000..f3d78b33 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/doge/getblockhash-copy-1.md @@ -0,0 +1,75 @@ +--- +title: "getblock" +slug: "getblockhash-copy-1" +excerpt: "" +hidden: true +createdAt: "Wed Mar 27 2024 07:26:08 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Wed Mar 27 2024 07:44:28 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +The `getblock` is a Dogecoin 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 + +- `hashOrHeight`: The hash or height of the block to be retrieved. + - Example: "0000000000000000000ef0e1f703b56f2b0d6724e4eeccf00e4f8d55b9c3c3f6e" +- `verbose`: true for a json object, false for the hex encoded 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 hash of the block. | +| confirmations | The number of confirmations for the block. | +| strippedsize | The block size without witness data. | +| size | The block size. | +| weight | The block weight. | +| height | The block height. | +| version | The 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 | The 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/doge/getblockheader-1.md b/v1.0/RPC Nodes/rpc-utxo/doge/getblockheader-1.md new file mode 100644 index 00000000..1a9c2d05 --- /dev/null +++ b/v1.0/RPC Nodes/rpc-utxo/doge/getblockheader-1.md @@ -0,0 +1,11 @@ +--- +title: "getblockheader" +slug: "getblockheader-1" +excerpt: "" +hidden: true +createdAt: "Tue Apr 02 2024 07:53:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Apr 02 2024 07:53:18 GMT+0000 (Coordinated Universal Time)" +--- +## Overview + +
diff --git a/v1.0/Security/custodial-managed-wallets.md b/v1.0/Security/custodial-managed-wallets.md new file mode 100644 index 00000000..582dda09 --- /dev/null +++ b/v1.0/Security/custodial-managed-wallets.md @@ -0,0 +1,8 @@ +--- +title: "Custodial managed wallets" +slug: "custodial-managed-wallets" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/custodial-managed-wallets/custodialcreatewallet.md b/v1.0/Security/custodial-managed-wallets/custodialcreatewallet.md new file mode 100644 index 00000000..e0249b4b --- /dev/null +++ b/v1.0/Security/custodial-managed-wallets/custodialcreatewallet.md @@ -0,0 +1,8 @@ +--- +title: "Create managed address" +slug: "custodialcreatewallet" +excerpt: "

2 credits per API call, 10 credits for each managed wallet every day.


\n

Create new managed address for a specific chain. If the address is mainnet or testnet one depends on the API Key - testnet API Key manages testnet addresses, mainnet API Key manages mainnet addresses.\nResult of the operation is address and walletId, which is used for identifying the wallet later on and/or exporting the private key if needed.
\nFree users can manage only 10 addresses per API Key.\n

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:00 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/custodial-managed-wallets/custodialdeletewallet.md b/v1.0/Security/custodial-managed-wallets/custodialdeletewallet.md new file mode 100644 index 00000000..578a09d6 --- /dev/null +++ b/v1.0/Security/custodial-managed-wallets/custodialdeletewallet.md @@ -0,0 +1,8 @@ +--- +title: "Delete managed address" +slug: "custodialdeletewallet" +excerpt: "

1 credit per API call.


\n

Delete managed address. Once deleted, the address won't be charged in a daily credit usage, but it won't be possible to get the private key for it.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:00 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/custodial-managed-wallets/custodialgetwallet.md b/v1.0/Security/custodial-managed-wallets/custodialgetwallet.md new file mode 100644 index 00000000..0ba01f39 --- /dev/null +++ b/v1.0/Security/custodial-managed-wallets/custodialgetwallet.md @@ -0,0 +1,8 @@ +--- +title: "Get managed address" +slug: "custodialgetwallet" +excerpt: "

1 credit per API call.


\n

Get managed address for an API Key. It's possible to export the private key, if query parameter export is set to true.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:00 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/custodial-managed-wallets/custodialgetwallets.md b/v1.0/Security/custodial-managed-wallets/custodialgetwallets.md new file mode 100644 index 00000000..bf1a2384 --- /dev/null +++ b/v1.0/Security/custodial-managed-wallets/custodialgetwallets.md @@ -0,0 +1,8 @@ +--- +title: "Get managed addresses" +slug: "custodialgetwallets" +excerpt: "

1 credit per API call.


\n

Get all managed addresses for an API Key.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/custodial-managed-wallets/custodialtransfermanagedaddress.md b/v1.0/Security/custodial-managed-wallets/custodialtransfermanagedaddress.md new file mode 100644 index 00000000..f944dc4e --- /dev/null +++ b/v1.0/Security/custodial-managed-wallets/custodialtransfermanagedaddress.md @@ -0,0 +1,8 @@ +--- +title: "Sign and transfer using managed address" +slug: "custodialtransfermanagedaddress" +excerpt: "

2 credits per API call, additional credits are charged for each gas covered operation.


\n

Sign transaction and transfer assets from a custodial managed address.
\nSupported chains:\n

    \n
  • Solana
  • \n
\n
\nLogic for Solana
\nIn Solana, it's possible to cover the fees connected to any arbitrary transaction by a third party.\nTatum can cover these fees for any transaction on the Solana blockchain - transfer of SOL, SPL tokens, minting or transferring NFTs or invoking programs.\nIn order to do this, Tatum fee address must be used as a feePayer address during transaction creation:\n\n\n\n
Mainnet addressDevnet address
AddressDSpHmb7hLnetoybammcJBJiyqMVR3pDhCuW6hqVg9eBFDSpHmb7hLnetoybammcJBJiyqMVR3pDhCuW6hqVg9eBF
\nOnce transaction is constructed using Solana SDK, it can be serialized to HEX data string, which is then passed to the API and signed.
\nTransaction could require multiple private keys for signing - fee payer, sender of the SOL assets, minting key during NFT mint operation etc.\nSome of the keys are used in Tatum - fee payer, or, in case of managed wallet holding SOL assets, the key of that managed wallet - those must be referenced in a list of walletIds to be used.\nFor external keys, which are not managed by Tatum, those could either sign the transaction before it's serialization, or could be passed to the API in it's raw form - this is OK only for keys, which could be exposed and there is no harm of loosing assets on them.
\nHow to partially sign the transaction could be found here.
\nFee payer key is used by default, doesn't have to be mentioned in the list of wallets used for signing.

\nExamples of different transaction payloads.

\n1. Send SOL from account HrJtQTy2RW9c6y41RvN8x3bEiD6Co74AuhER2MGCpa58 to FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU\n
\nimport { LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction, Connection } from '@solana/web3.js'\n\nconst connection = new Connection('https://api.tatum.io/v3/blockchain/node/SOL')\nconst from = 'HrJtQTy2RW9c6y41RvN8x3bEiD6Co74AuhER2MGCpa58'\nconst to = 'FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU'\nconst amount = '0.000001'\nconst devnet_fee_payer = '5zPr5331CtBjgVeLedhmJPEpFaUsorLCnb3aCQPsUc9w'\nconst fromPubkey = new PublicKey(from)\nconst transaction = new Transaction({ feePayer: new PublicKey(devnet_fee_payer) })\ntransaction.add(\n  SystemProgram.transfer({\n    fromPubkey: fromPubkey,\n    toPubkey: new PublicKey(to),\n    lamports: new BigNumber(amount).multipliedBy(LAMPORTS_PER_SOL).toNumber(),\n  }),\n)\nconst { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('finalized')\ntransaction.recentBlockhash = blockhash\ntransaction.lastValidBlockHeight = lastValidBlockHeight\ntransaction.partialSign(...signers)\nreturn transaction.serialize({ requireAllSignatures: false }).toString('hex')\n
\nFor the above example, developer have 2 options how to sign transaction - if the sender address HrJtQTy2RW9c6y41RvN8x3bEiD6Co74AuhER2MGCpa58 is managed using a Tatum managed wallet with id 0b1eae3d-2520-4903-8bbf-5dec3ad2a5d4,\nthe final payload to the custodial/transaction endpoint should look like this:\n
\n{\n  \"chain\": \"SOL\",\n  \"txData\": \"020001044a22af97a838a504e6f7c0b18d779afcea612da50794cc1dac641861fc1ab14afa5cacaf91c298694e64bb5496916c3c68a32affb92d4bcd2736fbb00169d57bd840de2a454960308f688cd3ee308c1fa01ecfa0b03770aaaf3b52d71d46c31d000000000000000000000000000000000000000000000000000000000000000060d38e0da20dc5900b7e902c918eae6a95e2d90af154b53a422f4ab26b050f4f01030201020c02000000e803000000000000\",\n  \"walletIds\": [\n    {\n      \"key\": \"0b1eae3d-2520-4903-8bbf-5dec3ad2a5d4\",\n      \"type\": \"MANAGED\"\n    }\n  ]\n}\n
\nIf the sender address is not managed, the transaction could be signed with the private key of that address before the serialization and the payload will look like this:\n
\n{\n  \"chain\": \"SOL\",\n  \"txData\": \"020001044a22af97a838a504e6f7c0b18d779afcea612da50794cc1dac641861fc1ab14afa5cacaf91c298694e64bb5496916c3c68a32affb92d4bcd2736fbb00169d57bd840de2a454960308f688cd3ee308c1fa01ecfa0b03770aaaf3b52d71d46c31d000000000000000000000000000000000000000000000000000000000000000060d38e0da20dc5900b7e902c918eae6a95e2d90af154b53a422f4ab26b050f4f01030201020c02000000e803000000000000\",\n  \"walletIds\": []\n}\n
\n

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:00 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/key-management-system.md b/v1.0/Security/key-management-system.md new file mode 100644 index 00000000..96bb692d --- /dev/null +++ b/v1.0/Security/key-management-system.md @@ -0,0 +1,8 @@ +--- +title: "Key Management System" +slug: "key-management-system" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/key-management-system/completependingsignature.md b/v1.0/Security/key-management-system/completependingsignature.md new file mode 100644 index 00000000..bbff2c3a --- /dev/null +++ b/v1.0/Security/key-management-system/completependingsignature.md @@ -0,0 +1,8 @@ +--- +title: "Complete pending transaction to sign" +slug: "completependingsignature" +excerpt: "

2 credits per API call.


\n

Mark pending transaction to sign as a complete and update it with a transactionID from the blockchain.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:00 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/key-management-system/deletependingtransactiontosign.md b/v1.0/Security/key-management-system/deletependingtransactiontosign.md new file mode 100644 index 00000000..901e2b91 --- /dev/null +++ b/v1.0/Security/key-management-system/deletependingtransactiontosign.md @@ -0,0 +1,8 @@ +--- +title: "Delete transaction" +slug: "deletependingtransactiontosign" +excerpt: "

2 credits per API call.


Delete transaction to be signed. When deleting offchain transaction, linked withdrawal will be cancelled automatically.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:00 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/key-management-system/getpendingtransactionstosign.md b/v1.0/Security/key-management-system/getpendingtransactionstosign.md new file mode 100644 index 00000000..541b7d7d --- /dev/null +++ b/v1.0/Security/key-management-system/getpendingtransactionstosign.md @@ -0,0 +1,8 @@ +--- +title: "Get pending transactions to sign" +slug: "getpendingtransactionstosign" +excerpt: "

1 credit per API call

\n

Get the list of pending transactions to sign and broadcast using KMS.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/key-management-system/getpendingtransactiontosign.md b/v1.0/Security/key-management-system/getpendingtransactiontosign.md new file mode 100644 index 00000000..4219495c --- /dev/null +++ b/v1.0/Security/key-management-system/getpendingtransactiontosign.md @@ -0,0 +1,8 @@ +--- +title: "Get transaction details" +slug: "getpendingtransactiontosign" +excerpt: "

1 credit per API call.


Get detail of transaction to be signed / that was already signed and contains transactionId.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:00 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/key-management-system/receivependingtransactionstosign.md b/v1.0/Security/key-management-system/receivependingtransactionstosign.md new file mode 100644 index 00000000..04f9c7bb --- /dev/null +++ b/v1.0/Security/key-management-system/receivependingtransactionstosign.md @@ -0,0 +1,8 @@ +--- +title: "Get pending transactions to sign" +slug: "receivependingtransactionstosign" +excerpt: "

1 credit for every 500 signature IDs per API call

\n

Get the list of pending transactions to sign and broadcast using KMS.

\n

NOTE: This API works only in KMS v5.0 or later. If you use KMS older than v5.0, use this API instead.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/malicious-address.md b/v1.0/Security/malicious-address.md new file mode 100644 index 00000000..b0984a3e --- /dev/null +++ b/v1.0/Security/malicious-address.md @@ -0,0 +1,8 @@ +--- +title: "Malicious address" +slug: "malicious-address" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Security/malicious-address/checkmalicousaddress.md b/v1.0/Security/malicious-address/checkmalicousaddress.md new file mode 100644 index 00000000..7889f3a5 --- /dev/null +++ b/v1.0/Security/malicious-address/checkmalicousaddress.md @@ -0,0 +1,8 @@ +--- +title: "Check malicous address" +slug: "checkmalicousaddress" +excerpt: "

1 credit per API call.


\n

Check, if the blockchain address is malicous. Malicous address can contain assets from the DarkWeb, is connected to the scam projects or contains stolen funds.


\n

Supported Chains: ETH, BTC, LTC

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:00 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction.md b/v1.0/Smart Contracts/auction.md new file mode 100644 index 00000000..5c655cd9 --- /dev/null +++ b/v1.0/Smart Contracts/auction.md @@ -0,0 +1,8 @@ +--- +title: "Auction" +slug: "auction" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/approvenftauctionspending.md b/v1.0/Smart Contracts/auction/approvenftauctionspending.md new file mode 100644 index 00000000..2d5aa68d --- /dev/null +++ b/v1.0/Smart Contracts/auction/approvenftauctionspending.md @@ -0,0 +1,8 @@ +--- +title: "Allow the NFT auction or marketplace to transfer an asset" +slug: "approvenftauctionspending" +excerpt: "

2 credits per API call

\n

Allow the NFT auction/marketplace smart contract to transfer the asset (NFT or Multi Token) that is listed for selling.
The auction/marketplace smart contract will transfer the asset to the buyer after the asset is purchased.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

Signing a transaction
\nWhen allowing the NFT auction/marketplace smart contract to transfer the asset, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/bidonauction.md b/v1.0/Smart Contracts/auction/bidonauction.md new file mode 100644 index 00000000..c8f1b76d --- /dev/null +++ b/v1.0/Smart Contracts/auction/bidonauction.md @@ -0,0 +1,8 @@ +--- +title: "Bid for an asset at the NFT auction" +slug: "bidonauction" +excerpt: "

2 credits per API call

\n

Bid for an asset listed on the NFT auction.

\n

You can buy the asset either for the native blockchain assets (for example, ETH, BSC, and so on) or for the fungible tokens of the blockchain.

\n
    \n
  • If you want to pay for the asset with the native assets, send the required amount of the assets with the API call.
  • \n
  • If you want to pay with the fungible tokens, allow the auction smart contract to access your tokens before bidding for the asset. When you make the API call, the auction smart contract will deduct the required amount of the tokens from the smart contract where you hold the tokens.
  • \n
\n

After you have purchased the asset, it is in a pending state until the auction is settled. Settling the auction means that the asset is transferred to the buyer, the amount is transferred to the seller, and the fee is transferred to the fee recipient of the auction.

\n

For the complete information about how the bidding/purchase process at an auction works, see the API for creating an NFT auction.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

The \"execution reverted\" message
\nWhen making this API call, you may get the following message:
\nAlthough one or more Error Occurred [execution reverted] Contract Execution Completed
\nThis message is a result of the auction version check and has no impact on completing the API call. You can safely ignore it.

\n

Signing a transaction
\nWhen bidding for an asset at the NFT auction, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/cancelauction.md b/v1.0/Smart Contracts/auction/cancelauction.md new file mode 100644 index 00000000..97368726 --- /dev/null +++ b/v1.0/Smart Contracts/auction/cancelauction.md @@ -0,0 +1,8 @@ +--- +title: "Cancel the selling of an asset at the NFT auction" +slug: "cancelauction" +excerpt: "

2 credits per API call

\n

Cancel the selling of an asset at the NFT auction.

\n

You can cancel the selling only if you are the seller of the asset or the auction operator. Once the selling is canceled, the asset is returned to the seller.

\n

You cannot cancel the selling if the asset has already been purchased.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

The \"execution reverted\" message
\nWhen making this API call, you may get the following message:
\nAlthough one or more Error Occurred [execution reverted] Contract Execution Completed
\nThis message is a result of the auction version check and has no impact on completing the API call. You can safely ignore it.

\n

Signing a transaction
\nWhen cancelling the selling of an asset at the NFT auction, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/createauction.md b/v1.0/Smart Contracts/auction/createauction.md new file mode 100644 index 00000000..18abb6ad --- /dev/null +++ b/v1.0/Smart Contracts/auction/createauction.md @@ -0,0 +1,8 @@ +--- +title: "Sell an asset at the NFT auction" +slug: "createauction" +excerpt: "

2 credits per API call

\n

Create new auction on the auction contract. Before operation, seller must approve spending of the NFT token for the Auction contract using Approve NFT.\nAfter auction is created, auction contract transfers the asset to the auction smart contract.\nOnly auction for existing NFTs can be created - seller must be owner of the NFT asset.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

A known issue on Harmony
\nOn Harmony, when you are viewing a transaction in the Harmony Blockchain Explorer, the transaction status may be displayed as the following:
\nError reverted:x0
\nThis is a known issue with the Harmony Blockchain Explorer. This status does not mean that the transaction failed. You can safely ignore it.

\n

Signing a transaction
\nWhen selling an asset at the NFT auction, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/generateauction.md b/v1.0/Smart Contracts/auction/generateauction.md new file mode 100644 index 00000000..e8c23103 --- /dev/null +++ b/v1.0/Smart Contracts/auction/generateauction.md @@ -0,0 +1,8 @@ +--- +title: "Create an NFT auction" +slug: "generateauction" +excerpt: "

2 credits per API call

\n

Deploy new smart contract for NFT auction logic. Smart contract enables auction operator to create new auction for NFT (ERC-721/1155).\nOperator can set a fee in percentage, which will be paid on top of the price of the asset.\ncan be offered for native asset - ETH, BSC, etc. - or any ERC20 token - this is configurable during auction creation.\nBefore auction is created, seller must approve transfer of the NFT to the auction contract.\nBuyer will bid for the asset from the auction using native asset - send assets along the gid() smart contract call, or via ERC20 token.\nBuyer of the auction must perform approval for the smart contract to access ERC20 token, before the actual bid() method is called.\nOnce 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.\nWhen auction ends, anyone can settle the auction - NFT will be sent to the bidder, assets to the seller and fee to the operator.
\nThis operation deploys a smart contract on the blockchain.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

Signing a transaction
\nWhen creating an NFT auction, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/getauction.md b/v1.0/Smart Contracts/auction/getauction.md new file mode 100644 index 00000000..c07c15a6 --- /dev/null +++ b/v1.0/Smart Contracts/auction/getauction.md @@ -0,0 +1,8 @@ +--- +title: "Get information about an auctioned asset at the NFT auction" +slug: "getauction" +excerpt: "

1 credit per API call

\n

Get information about a specific auctioned asset at the NFT auction.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/getauctionfee.md b/v1.0/Smart Contracts/auction/getauctionfee.md new file mode 100644 index 00000000..ea557833 --- /dev/null +++ b/v1.0/Smart Contracts/auction/getauctionfee.md @@ -0,0 +1,8 @@ +--- +title: "Get the NFT auction fee" +slug: "getauctionfee" +excerpt: "

1 credit per API call

\n

Get the NFT auction fee.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/getauctionfeerecipient.md b/v1.0/Smart Contracts/auction/getauctionfeerecipient.md new file mode 100644 index 00000000..8b8230a4 --- /dev/null +++ b/v1.0/Smart Contracts/auction/getauctionfeerecipient.md @@ -0,0 +1,8 @@ +--- +title: "Get the recipient of the NFT auction fee" +slug: "getauctionfeerecipient" +excerpt: "

1 credit per API call

\n

Get the recipient of the NFT auction fee.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/settleauction.md b/v1.0/Smart Contracts/auction/settleauction.md new file mode 100644 index 00000000..40dd6ecd --- /dev/null +++ b/v1.0/Smart Contracts/auction/settleauction.md @@ -0,0 +1,8 @@ +--- +title: "Settle an NFT auction" +slug: "settleauction" +excerpt: "

2 credits per API call

\n

Settle an auction once it has ended and there is a buyer of the asset at this auction. Settling the auction means that the asset is transferred to the buyer, the amount is transferred to the seller, and the fee is transferred to the fee recipient of the auction.
Both seller and buyer can settle the auction.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

The \"execution reverted\" message
\nWhen making this API call, you may get the following message:
\nAlthough one or more Error Occurred [execution reverted] Contract Execution Completed
\nThis message is a result of the auction version check and has no impact on completing the API call. You can safely ignore it.

\n

Signing a transaction
\nWhen settling the NFT auction, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/updateauctionfee.md b/v1.0/Smart Contracts/auction/updateauctionfee.md new file mode 100644 index 00000000..c91406cf --- /dev/null +++ b/v1.0/Smart Contracts/auction/updateauctionfee.md @@ -0,0 +1,8 @@ +--- +title: "Update the NFT auction fee" +slug: "updateauctionfee" +excerpt: "

2 credits per API call

\n

Update the NFT auction fee.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

Signing a transaction
\nWhen updating the NFT auction fee, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/auction/updateauctionfeerecipient.md b/v1.0/Smart Contracts/auction/updateauctionfeerecipient.md new file mode 100644 index 00000000..f458967d --- /dev/null +++ b/v1.0/Smart Contracts/auction/updateauctionfeerecipient.md @@ -0,0 +1,8 @@ +--- +title: "Update the recipient of the NFT auction fee" +slug: "updateauctionfeerecipient" +excerpt: "

2 credits per API call

\n

Update the recipient of the NFT auction fee.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

Signing a transaction
\nWhen updating the recipient of the NFT auction, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible.md new file mode 100644 index 00000000..442d6058 --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible.md @@ -0,0 +1,8 @@ +--- +title: "Fungible Tokens (ERC-20 or compatible)" +slug: "fungible-tokens-erc-20-or-compatible" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20approve.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20approve.md new file mode 100644 index 00000000..8b03ac1f --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20approve.md @@ -0,0 +1,8 @@ +--- +title: "Allow a blockchain address to transfer and burn fungible tokens" +slug: "erc20approve" +excerpt: "

2 credits per API call

\n

Allow a blockchain address (the spender parameter in the request body) to transfer and burn fungible tokens on behalf of the smart contract owner.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
\n

Signing a transaction
\nWhen allowing a blockchain address to transfer and burn fungible tokens, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20burn.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20burn.md new file mode 100644 index 00000000..85bdd092 --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20burn.md @@ -0,0 +1,8 @@ +--- +title: "Burn fungible tokens" +slug: "erc20burn" +excerpt: "

2 credits per API call

\n

Burn fungible tokens. Burning fungible tokens deletes the specified supply of the tokens (the amount parameter in the request body) from the smart contract (the contractAddress parameter in the request body).

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • XinFin
  • \n
\n

Signing a transaction
\nWhen burning fungible tokens, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20deploy.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20deploy.md new file mode 100644 index 00000000..b6ce79fd --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20deploy.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a fungible token smart contract" +slug: "erc20deploy" +excerpt: "

2 credits per API call

\n

Deploy a fungible token smart contract on the blockchain. In a deployed smart contract, you can mint and burn fungible tokens. The whole supply of fungible tokens (the supply parameter in the request body) will be transferred to the specified blockchain address (the address parameter in the request body).
\nSmart contracts are standardized and audited.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Solana
  • \n
  • XinFin
  • \n
\n

You can review the code of a deployed smart contract here.

\n

Signing a transaction
\nWhen deploying a fungible token 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20getbalance.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20getbalance.md new file mode 100644 index 00000000..b0b391b8 --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20getbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get the number of fungible tokens that a blockchain address holds in a smart contract" +slug: "erc20getbalance" +excerpt: "

1 credit per API call

\n

Get the number of the fungible tokens minted on a specific smart contract (the contractAddress path parameter in the request endpoint URL) that a blockchain address holds.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Elrond
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Solana
  • \n
  • XinFin
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20getbalanceaddress.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20getbalanceaddress.md new file mode 100644 index 00000000..4d1cc821 --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20getbalanceaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get the total number of fungible tokens that a blockchain address holds" +slug: "erc20getbalanceaddress" +excerpt: "

1 credit per API call

\n

Get the number of all fungible tokens that a blockchain address holds across a blockchain. The tokens are returned grouped by the smart contracts they were minted on.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Polygon
  • \n
  • Solana
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20gettransactionbyaddress.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20gettransactionbyaddress.md new file mode 100644 index 00000000..5e7514c2 --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20gettransactionbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get fungible token transactions on a blockchain address" +slug: "erc20gettransactionbyaddress" +excerpt: "

1 credit per API call

\n

Get incoming and outgoing transactions related to fungible tokens on a blockchain address.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20mint.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20mint.md new file mode 100644 index 00000000..4980e10c --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20mint.md @@ -0,0 +1,8 @@ +--- +title: "Mint fungible tokens" +slug: "erc20mint" +excerpt: "

2 credits per API call

\n

Create new fungible tokens in the smart contract (the contractAddress parameter in the request body) and transfer them to the specified blockchain address (the to parameter in the request body). You can mint new fungible tokens only if the current supply of tokens in the smart contract is lower than the total supply set for this contract.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • XinFin
  • \n
\n

Signing a transaction
\nWhen minting fungible tokens, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20transfer.md b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20transfer.md new file mode 100644 index 00000000..9402645a --- /dev/null +++ b/v1.0/Smart Contracts/fungible-tokens-erc-20-or-compatible/erc20transfer.md @@ -0,0 +1,8 @@ +--- +title: "Transfer fungible tokens" +slug: "erc20transfer" +excerpt: "

2 credits per API call

\n

Transfer a supply of fungible tokens existing in the smart contract (the contractAddress parameter in the request body) to the specified blockchain address (the to parameter in the request body).
\nTransferring fungible tokens invokes the transfer() method.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Solana
  • \n
  • XinFin
  • \n
\n

Transferring fungible tokens on Algorand
\nOn Algorand, the recipient has to agree in advance to receive your fungible tokens because Algorand charges users for storing the tokens on their addresses, and an Algorand blockchain address by default does not receive the tokens unless explicitly agreed. Before transferring the fungible tokens, make sure that the recipient has agreed to receive the NFT to their address.

\n

Blockchain-specific APIs to transfer fungible tokens
\nYou can also use blockchain-specific APIs for transferring fungible tokens on the following blockchains:\n

\n

Signing a transaction
\nWhen transferring fungible tokens, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump.md b/v1.0/Smart Contracts/gas-pump.md new file mode 100644 index 00000000..403a3c08 --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump.md @@ -0,0 +1,8 @@ +--- +title: "Gas pump" +slug: "gas-pump" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/activatednotactivatedgaspumpaddresses.md b/v1.0/Smart Contracts/gas-pump/activatednotactivatedgaspumpaddresses.md new file mode 100644 index 00000000..c7754a04 --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/activatednotactivatedgaspumpaddresses.md @@ -0,0 +1,8 @@ +--- +title: "Get the results of the address activation transaction" +slug: "activatednotactivatedgaspumpaddresses" +excerpt: "

1 credit per API call

\n

Get the results of the activation transaction after activating gas pump addresses.

\n

If the activation transaction got recorded into a block, the API returns two arrays:

\n
    \n
  • valid, with the activated gas pump addresses
  • \n
  • invalid, with the gas pump addresses that for some reason did not get activated together with the reason why
  • \n
\n

If the transaction is still being processed, the API returns an error message. In this case, repeat the call later.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • TRON
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/activategaspumpaddresses.md b/v1.0/Smart Contracts/gas-pump/activategaspumpaddresses.md new file mode 100644 index 00000000..34183850 --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/activategaspumpaddresses.md @@ -0,0 +1,8 @@ +--- +title: "Activate gas pump addresses" +slug: "activategaspumpaddresses" +excerpt: "

2 credits per API call

\n

Activate the precalulated gas pump addresses. Activating a gas pump address allows this address to send funds to other addresses.

\n

You can activate up to 270 addresses in one call. If you need to activate more than 270 addresses, make several API calls. For example, if you need to activate 500 addresses, make an API call with 270 addresses (set up the range of their index values accordingly in the from and to request body parameters) and then make another API call with the remaining 230 addresses.

\n

When to activate a gas pump address
\nBecause activating a gas pump address costs some amount of gas on a blockchain, you want to activate only those addresses that will be used for sending funds to other addresses. If you know that a gas pump address will not be used for sending funds, you can leave this address not activated. The customer who uses this address will still be able to receive funds.

\n

Depending on your business needs and requirements, you can choose when to activate the gas pump addresses. If you know for sure that all the precalculated addresses will be sending funds, you can activate all the addresses right after they have been precalculated.

\n

Alternatively, you can set up the activation in such a way so that a gas pump address gets activated only when a specific event is triggered. For example, you can activate a gas pump address:

\n
    \n
  • When it receives an asset for the first time
  • \n
  • When the customer tries to send an asset from this address for the first time
  • \n
\n

After you make an API call to activate gas pump addresses, use the API for getting the results of the address activation transaction.

\n

Paying the gas fee for activating gas pump addresses
\nYou can pay the gas fees for each activation transaction yourself, or Tatum can cover it for you.

\n
    \n
  • When paying the gas fees yourself, you must sign the transaction with either the private key of the blockchain address from which you want to pay the fees or the signature ID of that private key (if you use Key Management System, KMS).
    \nTo pay the fees yourself, use this API with any schema of the request body except for ActivateGasPumpTatum. For example, if you are activating gas pump addresses on Ethereum and you use KMS, use the ActivateGasPumpKMS schema.\n
  • \n
  • If you want Tatum to cover the fees, use this API with the ActivateGasPumpTatum schema of the request body.\n
      \n
    • On the mainnet, you have to have a paid pricing plan.
      \nTatum pays the fees from its own blockchain address. Then, the fee amount paid by Tatum is converted to the number of credits, and these credits are deducted from the monthly credit allowance of your paid pricing plan. The transaction fees and the corresponding numbers of credits deducted from your allowance vary depending on what blockchain you activate the addresses.
    • \n
    • On the testnet, only one credit is deducted from the monthly credit allowance for transaction fee. You can activate gas pump addresses regardless of your pricing plan.
    • \n
    \n
  • \n
\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • TRON
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/approvetransfercustodialwallet.md b/v1.0/Smart Contracts/gas-pump/approvetransfercustodialwallet.md new file mode 100644 index 00000000..a4aaf05e --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/approvetransfercustodialwallet.md @@ -0,0 +1,8 @@ +--- +title: "Approve the transfer of an asset from a gas pump address" +slug: "approvetransfercustodialwallet" +excerpt: "

2 credits per API call

\n

Allow another blockchain address (the spender parameter in the request body) to transfer the asset from a gas pump address on behalf of the master address.

\n

Use this API when the customer using the gas pump address sells assets on a marketplace or auction. After the customer creates a listing of the asset, they have to allow the marketplace/auction smart contract to transfer the asset to the buyer after the asset has been bought.

\n

The asset can be one of the following types:

\n
    \n
  • Fungible token (ERC-20 or equivalent)
  • \n
  • NFT (ERC-721 or equivalent)
  • \n
  • Multi Token (ERC-1155 or equivalent)
  • \n
\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • XinFin
  • \n
\n

Signing a transaction
\nWhen approving the transfer of an asset, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/gaspumpaddressesactivatedornot.md b/v1.0/Smart Contracts/gas-pump/gaspumpaddressesactivatedornot.md new file mode 100644 index 00000000..85373d4c --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/gaspumpaddressesactivatedornot.md @@ -0,0 +1,8 @@ +--- +title: "Check whether the gas pump address with a specified index is activated" +slug: "gaspumpaddressesactivatedornot" +excerpt: "

1 credit per API call

\n

Check whether the gas pump address with a specified index is activated and can send funds to other addresses.

\n

You can use this API when a customer initiates a fund transfer and you need to check whether their gas pump address is allowed to send funds.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • TRON
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/generatecustodialwallet.md b/v1.0/Smart Contracts/gas-pump/generatecustodialwallet.md new file mode 100644 index 00000000..9769fdac --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/generatecustodialwallet.md @@ -0,0 +1,8 @@ +--- +title: "Generate a custodial wallet address" +slug: "generatecustodialwallet" +excerpt: "

This API is deprecated.
To start with the gas pump, use the API for precalculating the gas pump addresses.

\n

If you built your gas pump solution using this API and the API for generating a gas pump wallet address, you can still use this API for creating more custodial addresses for your solution. However, we recommend that you switch to the API for precalculating the gas pump addresses.


\n

2 credits per API call

\n

Generate new gas pump smart contract address on the blockchain. It's possible to enable tokens, which should be detected and supported on that address. This address enables custodial providers to\nreceive native assets, ERC20 / ERC721 / ERC1155 tokens on behalf of their customers on dedicated blockchain address, but in the same time it can initiate transfer of those assets away.

\n

Gas required for the transfer from that address is going to be deducted from the providers address - the one, which was used to generate the address on the blockchain.

\n

There are multiple options, how this address can be setup - it cannot be changed in the future:

\n
    \n
  • Native assets only - ETH, BSC, CELO, MATIC, ONE, TRX
  • \n
  • Native assets + ERC20 tokens
  • \n
  • Native assets + ERC721 tokens
  • \n
  • Native assets + ERC1155 tokens - TRON does not support 1155 standard
  • \n
  • Native assets + ERC20 + ERC721 tokens
  • \n
  • Native assets + ERC20 + ERC1155 tokens - TRON does not support 1155 standard
  • \n
  • Native assets + ERC721 + ERC1155 tokens - TRON does not support 1155 standard
  • \n
  • Native assets + ERC20 + ERC721 + ERC1155 tokens - TRON does not support 1155 standard
  • \n
\n

All of these options could be enabled with a batch mode as well - in 1 transaction, it is possible to transfer multiple different assets from that address, e.g. ETH + USDC + ERC721 token.\nWithout batch mode, 3 separate transaction must have been performed.

\n

This operation deploys a smart contract on the blockchain. More assets you will support, more intial gas will be used for address creation. Batch mode adds more gas for every type.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Polygon
  • \n
  • TRON (except for Multi Tokens)
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/generatecustodialwalletbatch.md b/v1.0/Smart Contracts/gas-pump/generatecustodialwalletbatch.md new file mode 100644 index 00000000..54c4a503 --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/generatecustodialwalletbatch.md @@ -0,0 +1,8 @@ +--- +title: "Generate a gas pump wallet address" +slug: "generatecustodialwalletbatch" +excerpt: "

This API is deprecated.
To start with the gas pump, use the API for precalculating the gas pump addresses.


\n

2 credits per API call

\n

Generate new gas pump smart contract address on the blockchain. This address enables custodial providers to receive native assets, ERC20 / ERC721 / ERC1155 tokens on behalf of their customers on dedicated blockchain address, but in the same time it can initiate transfer of those assets away. Gas required for the transfer from that address is going to be deducted from the providers address - the one, which was used to generate the address on the blockchain.

\n

This operation deploys a smart contract on the blockchain.

\n

For paid plans, it is possible to pay for the gas costs - you don't have to provide private key or signatureId. Blockchain fees will be covered by your credits.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • TRON
  • \n
  • XinFin
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/precalculategaspumpaddresses.md b/v1.0/Smart Contracts/gas-pump/precalculategaspumpaddresses.md new file mode 100644 index 00000000..492e4fa8 --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/precalculategaspumpaddresses.md @@ -0,0 +1,8 @@ +--- +title: "Precalculate gas pump addresses" +slug: "precalculategaspumpaddresses" +excerpt: "

2 credits per API call

\n

Precalculate (generate) gas pump addresses that you can assign to the customers of your custodial application.

\n

This API does not make any changes on the blockchain itself, just generates addresses that follow the blockchain's requirements for the address format; therefore, no gas fee is applied.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • TRON
  • \n
\n

Address index
\nEach address should be associated with its own index. Use the from and to request body parameters to set a range of index values for the addresses to precalculate. You can start with any number, but we recommend that you start from 0.

\n

In one API call, you can precalculate:

\n
    \n
  • Up to 4,000 addresses for Harmony
  • \n
  • Up to 500 addresses for TRON
  • \n
  • Up to 5,000 addresses for the other supported blockchains
  • \n
\n

If you need more addresses than one API call can precalculate, make several API calls. For example, if you need 10,000 addresses on Ethereum, make an API call with an index range from 0 through 4,999 and then make another API call with an index range from 5,000 through 9,999.

\n

The order in which the precalculated addresses are returned in the API response is the order of the values in the index range, and the index values are assigned to the addresses accordingly.
For example, you precalculated three gas pump addresses with a range of index values from 3 to 5. The first address in the returned arrray is assigned the index value \"3\", the second one - \"4\", and the third one - \"5\".

\n
\n[\n  \"0x8cb76aed9c5e336ef961265c6079c14e9cd3d2ea\", // index is 3\n  \"0x5c6079c14e9cd3d2ea8cb76aed9c5e336ef96126\", // index is 4\n  \"0xc5e336ef9612614e9cd3d2ea8cb76aed95c6079c\"  // index is 5\n]\n
\n

The owner of the gas pump addresses
\nThe owner (also referred to as \"master address\") is the blockchain address that will own the precalculated gas pump addresses. The owner will also be paying gas fees for operations made on the gas pump addresses. You have to make sure that the owner always has enough funds to cover these gas fees.

\n

Activated and not activated addresses
\nThe precalculated addresses can be immediately assigned to customers and can receive funds. However, they cannot be used to send funds to other addresses. This is because the addresses are not activated. To make the addresses be able to send funds, activate them.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/scgetcustodialaddresses.md b/v1.0/Smart Contracts/gas-pump/scgetcustodialaddresses.md new file mode 100644 index 00000000..4748504f --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/scgetcustodialaddresses.md @@ -0,0 +1,8 @@ +--- +title: "Get the custodial wallet address from the transaction" +slug: "scgetcustodialaddresses" +excerpt: "

This API is deprecated.
To start with the gas pump, use the API for precalculating the gas pump addresses.

\n

If you built your gas pump solution using the API for generating a gas pump wallet address and API for generating a custodial wallet address, you can still use this API for getting the custodial wallet address from the transaction. However, we recommend that you switch to the API for precalculating the gas pump addresses.


\n

1 credit per API call

\n

Get gas pump smart contract addresses from deploy transaction.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • TRON
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/transfercustodialwallet.md b/v1.0/Smart Contracts/gas-pump/transfercustodialwallet.md new file mode 100644 index 00000000..d85c4af1 --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/transfercustodialwallet.md @@ -0,0 +1,8 @@ +--- +title: "Transfer an asset from a gas pump address" +slug: "transfercustodialwallet" +excerpt: "

2 credits per API call

\n

Transfer (send) an asset from a gas pump address to the other address.

\n

This operation is usually performed by users in your custodial application: a user who has a gas pump address assigned wants to transfer an asset to some address on the blockchain.

\n

The gas fee for sending the asset will be covered by crypto funds on the master address. Make sure that the master address always has enough funds to cover gas fees.

\n

To be able to send the asset:

\n
    \n
  • The gas pump address must be activated.
    To check whether the gas pump address is activated, use this API.
  • \n
  • The gas pump address must be the owner of the asset.
  • \n
\n

With this API, you can send only one asset per API call. If you want to send multiple assets, use the API for transferring multiple assets from a gas pump account.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • TRON
  • \n
  • XinFin
  • \n
\n

Signing a transaction
\nWhen transferring an asset, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/gas-pump/transfercustodialwalletbatch.md b/v1.0/Smart Contracts/gas-pump/transfercustodialwalletbatch.md new file mode 100644 index 00000000..c5e7c195 --- /dev/null +++ b/v1.0/Smart Contracts/gas-pump/transfercustodialwalletbatch.md @@ -0,0 +1,8 @@ +--- +title: "Transfer multiple assets from a gas pump address" +slug: "transfercustodialwalletbatch" +excerpt: "

2 credits per API call

\n

Transfer (send) multiple assets from a gas pump address to one or more addresses.

\n

This operation is usually performed by users in your custodial application: a user who has a gas pump address assigned wants to transfer multiple assets to one or more addresses on the blockchain.

\n

The gas fee for sending the assets will be covered by crypto funds on the master address. Make sure that the master address always has enough funds to cover gas fees.

\n

To be able to send the assets:

\n
    \n
  • The gas pump address must be activated.
    To check whether the gas pump address is activated, use this API.
  • \n
  • The gas pump address must be the owner of the assets.
  • \n
\n

If you want to send only one asset, you can also use the API for transferring an asset from a gas pump account.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • TRON
  • \n
  • XinFin
  • \n
\n

Signing a transaction
\nWhen transferring assets, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/general.md b/v1.0/Smart Contracts/general.md new file mode 100644 index 00000000..d742b593 --- /dev/null +++ b/v1.0/Smart Contracts/general.md @@ -0,0 +1,8 @@ +--- +title: "General" +slug: "general" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 14:16:43 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 14:16:43 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/general/deploycontract.md b/v1.0/Smart Contracts/general/deploycontract.md new file mode 100644 index 00000000..fe639012 --- /dev/null +++ b/v1.0/Smart Contracts/general/deploycontract.md @@ -0,0 +1,8 @@ +--- +title: "Deploy smart contract" +slug: "deploycontract" +excerpt: "This operation is used to create a new smart contract on the blockchain. The operation is asynchronous and returns a transaction hash. The transaction hash can be used to query the status of the transaction.
\nYou can create the following types of contracts:\n
    \n
  • ERC-20 - Fungible token like USDT
  • \n
  • ERC-721 - NFT collection like BAYC
  • \n
  • ERC-1155 - MultiToken NFT collection
  • \n
\nYou can find more information about the contracts on our GitHub page with steps required for verification.
\nIf you deploy NFT collection contract (ERC-721), it is automatically enabled for NFT Express functionality.
" +hidden: false +createdAt: "Mon Feb 05 2024 14:13:45 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 14:16:43 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/general/minterc721.md b/v1.0/Smart Contracts/general/minterc721.md new file mode 100644 index 00000000..c2120540 --- /dev/null +++ b/v1.0/Smart Contracts/general/minterc721.md @@ -0,0 +1,8 @@ +--- +title: "Mint NFT" +slug: "minterc721" +excerpt: "This operation is used to mint NFT on existing NFT collection on the blockchain. The operation is asynchronous and returns a transaction hash. The transaction hash can be used to query the status of the transaction.
\nNFT will be minted as NFT Express. See more: NFT Express functionality.
" +hidden: false +createdAt: "Mon Feb 05 2024 14:13:45 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 14:16:43 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace.md b/v1.0/Smart Contracts/marketplace.md new file mode 100644 index 00000000..4608acda --- /dev/null +++ b/v1.0/Smart Contracts/marketplace.md @@ -0,0 +1,8 @@ +--- +title: "Marketplace" +slug: "marketplace" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/buyassetonmarketplace.md b/v1.0/Smart Contracts/marketplace/buyassetonmarketplace.md new file mode 100644 index 00000000..226e17e8 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/buyassetonmarketplace.md @@ -0,0 +1,8 @@ +--- +title: "Buy an asset on the NFT marketplace" +slug: "buyassetonmarketplace" +excerpt: "

2 credits per API call

\n

Buy an asset listed on the NFT marketplace.

\n

You can buy the asset either for the native blockchain currency (for example, ETH, MATIC, and so on) or for the fungible tokens of the blockchain.

\n
    \n
  • If you want to pay for the asset with the native blockchain currency, send the required amount plus the marketplace fee right in the API call (in the amount request body parameter).
  • \n
  • If you want to pay with the fungible tokens, allow the marketplace smart contract to access your tokens before making the purchase. When you make the API call, the marketplace smart contract will deduct the required amount of the tokens from the smart contract where you hold the tokens.
  • \n
\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
\n

The \"execution reverted\" message
\nWhen making this API call, you may get the following message:
\nAlthough one or more Error Occurred [execution reverted] Contract Execution Completed
\nThis message is a result of the marketplace version check and has no impact on completing the API call. You can safely ignore it.

\n

Signing a transaction
\nWhen buying an asset on the NFT marketplace, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/cancelsellmarketplacelisting.md b/v1.0/Smart Contracts/marketplace/cancelsellmarketplacelisting.md new file mode 100644 index 00000000..fb730056 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/cancelsellmarketplacelisting.md @@ -0,0 +1,8 @@ +--- +title: "Cancel the selling of an asset on the NFT marketplace" +slug: "cancelsellmarketplacelisting" +excerpt: "

2 credits per API call

\n

Cancel the selling of an asset on the NFT marketplace.

\n

You can cancel the selling only if you are the seller of the asset or the marketplace operator. Once the selling is canceled, the asset is returned to the seller.

\n

You cannot cancel the selling if the asset has already been purchased.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
\n

The \"execution reverted\" message
\nWhen making this API call, you may get the following message:
\nAlthough one or more Error Occurred [execution reverted] Contract Execution Completed
\nThis message is a result of the marketplace version check and has no impact on completing the API call. You can safely ignore it.

\n

Signing a transaction
\nWhen cancelling the selling of an asset, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/generatemarketplace.md b/v1.0/Smart Contracts/marketplace/generatemarketplace.md new file mode 100644 index 00000000..04d9a763 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/generatemarketplace.md @@ -0,0 +1,8 @@ +--- +title: "Create an NFT marketplace" +slug: "generatemarketplace" +excerpt: "

2 credits per API call

\n

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.

\n

The purchase process looks like the following:

\n
    \n
  1. The seller creates a listing for an asset on the NFT marketplace. The listing can be offered for the native blockchain assets (for example, ETH, BSC, and so on) or for the fungible tokens of the blockchain.
  2. \n
  3. The seller allows the marketplace smart contract to transfer the asset that they are selling.
  4. \n
  5. A buyer buys the asset.\n
    • If the buyer wants to pay with the native blockchain assets, they make the purchase (the buyAssetFromListing() method is called against the marketplace smart contract) and send the required amount of the native assets to the marketplace smart contract.
    • \n
    • If the buyer wants to pay with the fungible tokens:\n
      1. The buyer allows the marketplace smart contract to access their tokens and makes the purchase (the buyAssetFromListing() method is called against the marketplace smart contract).
      2. \n
      3. The marketplace smart contract deducts the required amount of tokens from the smart contract where the buyer holds the tokens.
  6. \n
  7. The marketplace smart contract transfers the asset to the buyer, transfers the asset price to the seller, and sends the fee to the marketplace fee recipient.
  8. \n
\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
\n

Signing a transaction
\nWhen deploying an NFT marketplace 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/getmarketplacefee.md b/v1.0/Smart Contracts/marketplace/getmarketplacefee.md new file mode 100644 index 00000000..251fe1c2 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/getmarketplacefee.md @@ -0,0 +1,8 @@ +--- +title: "Get the NFT marketplace fee" +slug: "getmarketplacefee" +excerpt: "

1 credit per API call

\n

Get the NFT marketplace fee.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/getmarketplacefeerecipient.md b/v1.0/Smart Contracts/marketplace/getmarketplacefeerecipient.md new file mode 100644 index 00000000..caf9a1d4 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/getmarketplacefeerecipient.md @@ -0,0 +1,8 @@ +--- +title: "Get the recipient of the NFT marketplace fee" +slug: "getmarketplacefeerecipient" +excerpt: "

1 credit per API call

\n

Get the recipient of the NFT marketplace fee.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/getmarketplaceinfo.md b/v1.0/Smart Contracts/marketplace/getmarketplaceinfo.md new file mode 100644 index 00000000..9b597a5c --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/getmarketplaceinfo.md @@ -0,0 +1,8 @@ +--- +title: "Get information about an NFT marketplace on Solana" +slug: "getmarketplaceinfo" +excerpt: "

1 credit per API call

\n

Get information about an NFT marketplace on Solana.

\n

This API is in alpha and is supported only for the mainnet on Solana.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/getmarketplacelisting.md b/v1.0/Smart Contracts/marketplace/getmarketplacelisting.md new file mode 100644 index 00000000..58b6abc0 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/getmarketplacelisting.md @@ -0,0 +1,8 @@ +--- +title: "Get information about a listing on the NFT marketplace" +slug: "getmarketplacelisting" +excerpt: "

1 credit per API call

\n

Get information about a specific listing on the NFT marketplace.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/getmarketplacelistings.md b/v1.0/Smart Contracts/marketplace/getmarketplacelistings.md new file mode 100644 index 00000000..ae3a196d --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/getmarketplacelistings.md @@ -0,0 +1,8 @@ +--- +title: "Get the listings of a certain type from the NFT marketplace" +slug: "getmarketplacelistings" +excerpt: "

1 credit per API call

\n

Get the open, sold, or cancelled listings from the NFT marketplace.

\n

This API is supported for the following blockchains:

\n
    \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/sellassetonmarketplace.md b/v1.0/Smart Contracts/marketplace/sellassetonmarketplace.md new file mode 100644 index 00000000..1ce28ae1 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/sellassetonmarketplace.md @@ -0,0 +1,8 @@ +--- +title: "Sell an asset on the NFT marketplace" +slug: "sellassetonmarketplace" +excerpt: "

2 credits per API call

\n

Create a new listing for an asset on the NFT marketplace. The listing can be offered for the native blockchain assets (for example, ETH, MATIC, and so on) or for any fungible tokens.

\n

After the listing is created, allow the marketplace smart contract to transfer the asset that you are selling.

\n

You can create a listing only for an existing asset that you own (you must be the owner of the asset).

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
\n

A known issue on Harmony
\nOn Harmony, when you are viewing a transaction in the Harmony Blockchain Explorer, the transaction status may be displayed as the following:
\nError reverted:x0
\nThis is a known issue with the Harmony Blockchain Explorer. This status does not mean that the transaction failed. You can safely ignore it.

\n

The \"execution reverted\" message
\nWhen making this API call, you may get the following message:
\nAlthough one or more Error Occurred [execution reverted] Contract Execution Completed
\nThis message is a result of the marketplace version check and has no impact on completing the API call. You can safely ignore it.

\n

Signing a transaction
\nWhen creating a new listing on the NFT marketplace, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/updatefee.md b/v1.0/Smart Contracts/marketplace/updatefee.md new file mode 100644 index 00000000..668b2887 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/updatefee.md @@ -0,0 +1,8 @@ +--- +title: "Update the NFT marketplace fee" +slug: "updatefee" +excerpt: "

2 credits per API call

\n

Update the NFT marketplace fee.

\n

You can update the marketplace fee only if you are the marketplace operator.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
\n

Signing a transaction
\nWhen updating the NFT marketplace fee, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/updatefeerecipient.md b/v1.0/Smart Contracts/marketplace/updatefeerecipient.md new file mode 100644 index 00000000..7a1ab477 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/updatefeerecipient.md @@ -0,0 +1,8 @@ +--- +title: "Update the recipient of the NFT marketplace fee" +slug: "updatefeerecipient" +excerpt: "

2 credits per API call

\n

Update the recipient of the NFT marketplace fee.

\n

You can update the fee recipient only if you are the marketplace operator.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana (in alpha)
  • \n
\n

Signing a transaction
\nWhen updating the recipient of the NFT marketplace fee, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/updatemarketplace.md b/v1.0/Smart Contracts/marketplace/updatemarketplace.md new file mode 100644 index 00000000..ecdd3dbc --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/updatemarketplace.md @@ -0,0 +1,8 @@ +--- +title: "Update an NFT marketplace on Solana" +slug: "updatemarketplace" +excerpt: "

2 credits per API call

\n

Update an NFT marketplace on Solana.

\n

You can update it only if you are the marketplace operator.

\n

This API is in alpha and is supported only for the mainnet on Solana.

\n

Signing a transaction
\nWhen updating an NFT marketplace, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/withdrawfeefrommarketplace.md b/v1.0/Smart Contracts/marketplace/withdrawfeefrommarketplace.md new file mode 100644 index 00000000..082141e3 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/withdrawfeefrommarketplace.md @@ -0,0 +1,8 @@ +--- +title: "Withdraw funds from the marketplace fee account on Solana" +slug: "withdrawfeefrommarketplace" +excerpt: "

2 credits per API call

\n

Withdraw funds from the NFT marketplace fee account on Solana.

\n

You can withdraw the funds only if you are the marketplace fee recipient.

\n

This API is in alpha and is supported only for the mainnet on Solana.

\n

Signing a transaction
\nWhen withdrawing the funds, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/marketplace/withdrawtreasuryfrommarketplace.md b/v1.0/Smart Contracts/marketplace/withdrawtreasuryfrommarketplace.md new file mode 100644 index 00000000..e755e808 --- /dev/null +++ b/v1.0/Smart Contracts/marketplace/withdrawtreasuryfrommarketplace.md @@ -0,0 +1,8 @@ +--- +title: "Withdraw funds from the marketplace treasury account on Solana" +slug: "withdrawtreasuryfrommarketplace" +excerpt: "

2 credits per API call

\n

Withdraw funds from the NFT marketplace treasury account on Solana.

\n

You can withdraw the funds only if you are the marketplace fee recipient.

\n

This API is in alpha and is supported only for the mainnet on Solana.

\n

Signing a transaction
\nWhen withdrawing the funds, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:27 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible.md new file mode 100644 index 00000000..1e55b26a --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible.md @@ -0,0 +1,8 @@ +--- +title: "Multi Tokens (ERC-1155 or compatible)" +slug: "multi-tokens-erc-1155-or-compatible" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/addmultitokenminter.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/addmultitokenminter.md new file mode 100644 index 00000000..fe0b74ba --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/addmultitokenminter.md @@ -0,0 +1,8 @@ +--- +title: "Add a Multi Token minter" +slug: "addmultitokenminter" +excerpt: "

2 credits per API call

\n

Add Multi Token minter.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
\n

Signing a transaction

\n

When adding a Multi Token minter, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/burnmultitoken.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/burnmultitoken.md new file mode 100644 index 00000000..b8817c4a --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/burnmultitoken.md @@ -0,0 +1,8 @@ +--- +title: "Burn a Multi Token" +slug: "burnmultitoken" +excerpt: "

2 credits per API call

\n

Burn a fixed amount of Multi Tokens by id. This method destroys Multi Tokens from smart contract defined in contractAddress.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
\n

Signing a transaction

\n

When burning a Multi 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/burnmultitokenbatch.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/burnmultitokenbatch.md new file mode 100644 index 00000000..cb97680b --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/burnmultitokenbatch.md @@ -0,0 +1,8 @@ +--- +title: "Burn multiple Multi Tokens" +slug: "burnmultitokenbatch" +excerpt: "

2 credits per API call

\n

Burn multiple Multi Token Tokens by id assigned to same address in one transaction. This method destroys any Multi Tokens token from smart contract defined in contractAddress.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
\n

Signing a transaction

\n

When burning multiple Multi Tokens, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/deploymultitoken.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/deploymultitoken.md new file mode 100644 index 00000000..3590101d --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/deploymultitoken.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a Multi Token smart contract" +slug: "deploymultitoken" +excerpt: "

2 credits per API call

\n

Deploy Multi Token Smart Contract. This method creates new ERC1155 Smart Contract (Multi Tokens) on the blockchain. Smart contract is standardized and audited.\nIt is possible to mint, burn and transfer tokens. It is also possible to mint multiple tokens at once.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
\n

Signing a transaction

\n

When deploying a Multi Token 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/mintmultitoken.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/mintmultitoken.md new file mode 100644 index 00000000..94d6ac3e --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/mintmultitoken.md @@ -0,0 +1,8 @@ +--- +title: "Mint a Multi Token" +slug: "mintmultitoken" +excerpt: "

2 credits per API call

\n

Mint a fixed amount of Multi Token and transfer it to destination account. Create and transfer any Multi Token token from smart contract defined in contractAddress. It is possible to add Metadata to the created token with a more detailed information about instead.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
\n

Signing a transaction

\n

When minting a Multi 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/mintmultitokenbatch.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/mintmultitokenbatch.md new file mode 100644 index 00000000..29358082 --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/mintmultitokenbatch.md @@ -0,0 +1,8 @@ +--- +title: "Mint multiple Multi Tokens" +slug: "mintmultitokenbatch" +excerpt: "

2 credits per API call

\n

Create a fixed amount of multiple Multi Tokens Tokens and transfer them to destination account in one transaction. Create and transfer Multi Tokens tokens from smart contract defined in contractAddress.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
\n

Signing a transaction

\n

When minting multiple Multi Tokens, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetaddressbalance.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetaddressbalance.md new file mode 100644 index 00000000..021f089c --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetaddressbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get all Multi Tokens that a blockchain address holds" +slug: "multitokengetaddressbalance" +excerpt: "

1 credit per API call

\n

Get all Multi Tokens that a blockchain address holds. The Multi Tokens are returned grouped by the smart contracts they were minted on.

\n

This API is supported for the following blockchains:

\n
    \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetbalance.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetbalance.md new file mode 100644 index 00000000..46235634 --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get the amount of a specific MultiToken that a blockchain address holds" +slug: "multitokengetbalance" +excerpt: "

1 credit per API call

\n

Get the amount of a specific Multi Token (minted on the smart contract specified by the contractAddress path parameter in the request endpoint URL) that a blockchain address holds.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetbalancebatch.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetbalancebatch.md new file mode 100644 index 00000000..baacefff --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetbalancebatch.md @@ -0,0 +1,8 @@ +--- +title: "Get the amount of one or multiple Multi Tokens for multiple blockchain addresses" +slug: "multitokengetbalancebatch" +excerpt: "

1 credit per API call

\n

For multiple blockchain addresses, get the amount of one or multiple Multi Tokens (minted on the smart contract specified by the contractAddress path parameter in the request endpoint URL) that those addresses hold.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetcontractaddress.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetcontractaddress.md new file mode 100644 index 00000000..02d6f4f4 --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetcontractaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get the address of a Multi Token smart contract by its transaction hash" +slug: "multitokengetcontractaddress" +excerpt: "

This endpoint is deprecated. Do not use it.
\nInstead, use this API.


\n

1 credit per API call

\n

Get Multi Token contract address from deploy transaction.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetmetadata.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetmetadata.md new file mode 100644 index 00000000..5c6488ec --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengetmetadata.md @@ -0,0 +1,8 @@ +--- +title: "Get Multi Token metadata" +slug: "multitokengetmetadata" +excerpt: "

1 credit per API call

\n

Get Multi Token metadata.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengettransaction.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengettransaction.md new file mode 100644 index 00000000..4f4d9996 --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengettransaction.md @@ -0,0 +1,8 @@ +--- +title: "Get a Multi Token transaction by its hash" +slug: "multitokengettransaction" +excerpt: "

1 credit per API call

\n

Get Multi Token transaction by transaction hash.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengettransactionbyaddress.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengettransactionbyaddress.md new file mode 100644 index 00000000..165d5926 --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/multitokengettransactionbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get Multi Token transactions on a blockchain address" +slug: "multitokengettransactionbyaddress" +excerpt: "

1 credit per API call

\n

Get incoming and outgoing Multi Token transactions on a blockchain address.

\n

This API is supported for the following blockchains:

\n
    \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/transfermultitoken.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/transfermultitoken.md new file mode 100644 index 00000000..b0076db8 --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/transfermultitoken.md @@ -0,0 +1,8 @@ +--- +title: "Transfer a Multi Token" +slug: "transfermultitoken" +excerpt: "

2 credits per API call

\n

Transfer a certain amount of Multi Token from account to another account. Transfer Multi Tokens token from smart contract defined in contractAddress.

\n

Only 1 specific token with specified tokenId and value can be transferred. This method invokes ERC1155 method safeTransfer() to transfer the token in case of ETH, Celo and blockchains.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
\n

Signing a transaction

\n

When transferring a Multi 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/transfermultitokenbatch.md b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/transfermultitokenbatch.md new file mode 100644 index 00000000..8b06bb93 --- /dev/null +++ b/v1.0/Smart Contracts/multi-tokens-erc-1155-or-compatible/transfermultitokenbatch.md @@ -0,0 +1,8 @@ +--- +title: "Transfer multiple Multi Tokens" +slug: "transfermultitokenbatch" +excerpt: "

2 credits per API call

\n

Transfer Multi Token Batch from account to various other accounts in one transaction. Transfer multiple Multi Tokens token from smart contract defined in contractAddress.

\n

Multiple token with specified tokenIds and values can be transferred. This method invokes ERC1155 method safeTransfer() to transfer the token in case of ETH, Celo and BSC.\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
\n

Signing a transaction

\n

When transferring multiple Multi Tokens, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:28 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible.md new file mode 100644 index 00000000..793f2e2c --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible.md @@ -0,0 +1,8 @@ +--- +title: "NFT (ERC-721 or compatible)" +slug: "nft-erc-721-or-compatible" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftaddminter.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftaddminter.md new file mode 100644 index 00000000..8b5ab576 --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftaddminter.md @@ -0,0 +1,8 @@ +--- +title: "Add a blockchain address as an NFT minter to an NFT smart contract" +slug: "nftaddminter" +excerpt: "

2 credits per API call

\n

Allow a blockchain address (the minter parameter in the request body) to mint NFTs on your NFT smart contract (the contractAddress parameter in the request body).

\n

NOTE: Use this API only when you are using NFT Express with your own smart contract. For more information, see \"Use your own smart contract to mint NFTs\" in Mint an NFT.
\nDo not use this API in any other case.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Horizen Eon
  • \n
\n

Signing a transaction
\nWhen allowing a blockchain address to mint NFTs, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftburnerc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftburnerc721.md new file mode 100644 index 00000000..88a69885 --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftburnerc721.md @@ -0,0 +1,8 @@ +--- +title: "Burn an NFT" +slug: "nftburnerc721" +excerpt: "

100 credits per API call on Flow
\n2 credits per API call on the other blockchains

\n

Destroy an NFT. Burning the NFT transfers it to an un-spendable blockchain address that no one can access.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Solana
  • \n
  • TRON
  • \n
  • Tezos
  • \n
  • Horizen Eon
  • \n
\n

Burning NFTs on Algorand
\nYou can burn only the NFTs that were minted with the address of the manager account specified in the manager parameter in the minting call (see the MintNftExpressAlgorand, MintNftAlgorand, and MintNftAlgorandKMS schemas of the request body).

\n

Burning NFTs on Tezos
\nYou can burn only the NFTs if you are admin or minter of the contract

\n

Signing a transaction
\nWhen burning an NFT, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftdeployerc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftdeployerc721.md new file mode 100644 index 00000000..4c34b570 --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftdeployerc721.md @@ -0,0 +1,8 @@ +--- +title: "Deploy an NFT smart contract" +slug: "nftdeployerc721" +excerpt: "

100 credits per API call on Flow
\n2 credits per API call on the other blockchains

\n

Deploy an NFT smart contract on the blockchain. In a deployed NFT smart contract, you can mint NFTs (one NFT at a time or multiple NFTs at once), burn, and transfer NFTs.

\n

Smart contracts are standardized and audited. You can review the code of a deployed NFT smart contract here (if the contract is deployed on Flow) or here (if the contract is deployed on any other supported blockchain).

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • TRON
  • \n
  • Tezos
  • \n
  • Horizen Eon
  • \n
\n

General NFT smart contracts
\nBy default, an NFT smart contract is deployed as a general NFT smart contract compatible with OpenSea royalties. This is a standard NFT contract with AccessControl and Ownable, enhanced with NFT batch minting. NFTs minted on this smart contract are compatible with OpenSea and its royalty structure.

\n

You can enable public minting for smart contracts. By default, public minting is disabled, which means that only the blockchain address whose private key was used to create the smart contract or the blockchain addresses added to the smart contract as NFT minters will be able to mint NFTs for the contract. To enable public minting and allow anyone to mint NFTs on top of the smart contract, deploy the contract with the publicMint parameter set to true in the request body.

\n

NFT smart contracts and NFT Express
\nIf you want to use NFT Express to mint NFTs on the deployed smart contract, deploy the smart contract as a general NFT smart contract.
\nAfter you have deployed the NFT smart contract, add the Tatum minter address as an NFT minter to your smart contract.

\n

For the complete information about using NFT Express on your smart contract, see \"Use your own smart contract to mint NFTs\" in Mint an NFT.

\n

Signing a transaction
\nWhen deploying an NFT 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetbalanceerc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetbalanceerc721.md new file mode 100644 index 00000000..6c1e4558 --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetbalanceerc721.md @@ -0,0 +1,8 @@ +--- +title: "Get the NFTs from a specific smart contract that a blockchain address holds" +slug: "nftgetbalanceerc721" +excerpt: "

1 credit per API call

\n

Get the NFTs minted on a specific smart contract (the contractAddress path parameter in the request endpoint URL) that a blockchain address holds.

\n

NOTE: This API works only for the NFT smart contracts deployed using the Tatum smart contract API.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Elrond
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Solana
  • \n
  • TRON
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:30 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetcontractaddress.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetcontractaddress.md new file mode 100644 index 00000000..e7d6952a --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetcontractaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get the address of an NFT smart contract by its transaction hash" +slug: "nftgetcontractaddress" +excerpt: "

This endpoint is deprecated. Do not use it.
\nInstead, use this API.


\n

1 credit per API call

\n

Get NFT contract address from deploy transaction.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • TRON
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:30 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetmetadataerc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetmetadataerc721.md new file mode 100644 index 00000000..76ec42d3 --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgetmetadataerc721.md @@ -0,0 +1,8 @@ +--- +title: "Get NFT metadata" +slug: "nftgetmetadataerc721" +excerpt: "

1 credit per API call

\n

Get metadata of an NFT.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Solana
  • \n
  • TRON
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:30 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettokensbyaddresserc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettokensbyaddresserc721.md new file mode 100644 index 00000000..5250790b --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettokensbyaddresserc721.md @@ -0,0 +1,8 @@ +--- +title: "Get NFT balance of the wallet" +slug: "nftgettokensbyaddresserc721" +excerpt: "

1 credit per API call + 5 credits for each owned NFT

\n

Get all NFTs that a blockchain address holds. The NFTs are returned grouped by the smart contracts they were minted on.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain - mainnet only
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Polygon
  • \n
  • Solana
  • \n
\n

On Solana and Algorand, if a blockchain address holds fewer than 50 NFTs, the API also returns each NFT's metadata. If the metadata is not returned, you can obtain it using the API for getting NFT metadata.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:30 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettokensbycollectionerc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettokensbycollectionerc721.md new file mode 100644 index 00000000..25557a3e --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettokensbycollectionerc721.md @@ -0,0 +1,8 @@ +--- +title: "Get all NFTs from a collection" +slug: "nftgettokensbycollectionerc721" +excerpt: "

1 credit per API call + 5 credits for each listed NFT

\n

Get all NFTs from a collection (all the NFTs that were minted on the smart contract).

\n

This API is supported for the following blockchains:

\n
    \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransacterc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransacterc721.md new file mode 100644 index 00000000..582230ac --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransacterc721.md @@ -0,0 +1,8 @@ +--- +title: "Get an NFT transaction by its hash" +slug: "nftgettransacterc721" +excerpt: "

1 credit per API call

\n

Get an NFT transaction by its hash.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • TRON
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:30 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransactionbyaddress.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransactionbyaddress.md new file mode 100644 index 00000000..cddbd7cd --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransactionbyaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get NFT transactions on a blockchain address" +slug: "nftgettransactionbyaddress" +excerpt: "

1 credit per API call

\n

Get incoming and outgoing NFT transactions on a blockchain address.

\n

This API is supported for the following blockchains:

\n
    \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Polygon
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransactionbytoken.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransactionbytoken.md new file mode 100644 index 00000000..c8274f4c --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftgettransactionbytoken.md @@ -0,0 +1,8 @@ +--- +title: "Get transactions for a specific NFT" +slug: "nftgettransactionbytoken" +excerpt: "

1 credit per API call

Get incoming and outgoing transactions for an NFT.

This API is supported for the following blockchains:

  • Celo
  • Ethereum
  • Polygon
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftminterc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftminterc721.md new file mode 100644 index 00000000..2a9152c2 --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftminterc721.md @@ -0,0 +1,8 @@ +--- +title: "Mint an NFT" +slug: "nftminterc721" +excerpt: "

100 credits per API call on Flow
\n2 credits per API call on the other blockchains

\n

You can mint NFTs using either of the following methods:

\n\n

Minting NFTs using NFT Express

\n

NFT Express is Tatum's feature that helps you mint NFTs easier than minting natively on a blockchain.

\n
    \n
  • You do not need to enter your private key or signature ID.
    NFT Express uses the private key provided by Tatum.
  • \n
  • You do not need to hold crypto or keep addresses topped up with crypto to pay for minting transactions.\n
      \n
    • To use NFT Express on the mainnet, you have to have a paid pricing plan.
      Tatum covers your transaction fees for NFT minting and pays for them from its own blockchain address. Then, the fee amount paid by Tatum is converted to the number of credits, and these credits are deducted from the monthly credit allowance of your paid pricing plan.
      The transaction fees and the corresponding numbers of credits deducted from your allowance vary depending on what blockchain you mint NFTs on.
    • \n
    • On the testnet, only one credit is deducted from the monthly credit allowance for transaction fee. You can mint NFTs with NFT Express regardless of your pricing plan.
    • \n
    \n
  • \n
\n

With NFT Express, you can choose whether to mint NFTs on the pre-built NFT smart contract provided by Tatum or on your own smart contract.

\n

Use the pre-built smart contract provided by Tatum to mint NFTs

\n

If you want to mint NFTs using the pre-built smart contract, you do not need to deploy your own NFT smart contract. You do not need to provide the address of the NFT smart contract and the token ID in the request body either. The address of the smart contract and the token ID are provided automatically by Tatum.
The token ID is autogenerated. It starts with 0 and is increased by 1 for each new NFT. The token ID is calculated separately for each supported blockchain and its mainnet and testnet.
\nFor more information, see our user documentation.

\n

You can mint NFTs on the pre-built smart contract provided by Tatum on the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Solana
  • \n
\n

Depending on what blockchain you use, choose the request body schema to use in the API call.

\n
    \n
  • To mint NFTs on BNB Smart Chain, Celo, Ethereum, Harmony, Klaytn, or Polygon, use this API with the MintNftExpress schema of the request body.
  • \n
  • To mint NFTs on Algorand, use this API with the MintNftExpressAlgorand schema of the request body.
    To be able to burn the minted NFTs any time later, specify the address of the manager account in the manager parameter.
    An NFT minted 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 because Algorand charges users for storing NFTs on their addresses, and an Algorand blockchain address by default does not receive NFTs unless explicitly agreed.
    This how it works:\n
  • To mint NFTs on Tezos, use this API with the MintNftExpressTezos schema of the request body. In order to use this function, it is necessary to deploy the contract using NFT Express
  • \n
      \n
    1. The recipient agrees to receive the NFT to their address.
    2. \n
    3. You transfer the NFT to the recipient's address (use the transferNftAlgoExpress schema of the request body).
      NOTE: On the mainnet, Tatum covers your transaction fees for the NFT transfer and pays for them from its own blockchain address. Then, the fee amount paid by Tatum is converted to the number of credits, and these credits are deducted from the monthly credit allowance of your paid pricing plan. On the testnet, only one credit is deducted from the monthly credit allowance for transaction fee.
    4. \n
    \n
  • To mint NFTs on Solana, use this API with the MintNftExpressSolana schema of the request body.
    Solana uses the Metaplex Protocol, a smart contract and metadata standard for creating and working with NFTs. When you mint an NFT on Solana with NFT Express, the pre-built smart contract based on the Metaplex Protocol is used.
    When an NFT is minted on Solana, a new blockchain address is created to receive the NFT under the recipient's account address (the one in the to parameter of the request body). This address is returned in the nftAccountAddress parameter in the response body, is owned by the recipient's address, and has the same private key.
    The response body also returns the address of the minted NFT itself, which is held in the nftAddress parameter.
\n

Use your own smart contract to mint NFTs

\n

If you want to mint NFTs using your own smart contract, you are going to use an NTF minter, a special blockchain address provided by Tatum that will cover the minting fees. The number of credits equivalent to the fees will be then deducted from the monthly credit allowance of your paid pricing plan.
\n

For more information, see our user documentation and the article in the Tatum blog.

\n

You can mint NFTs on your own smart contract on the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • Horizen Eon
  • \n
\n

To mint NFTs using your own smart contract, do the following:

\n
    \n
  1. In the table located under this section, find the blockchain address of the Tatum NFT minter for your blockchain and network (mainnet or testnet).
  2. \n
  3. Add the minter address as an NFT minter to your smart contract.
  4. \n
  5. Use this API with the MintNftMinter schema of the request body.
    In the request body, enter the following information:\n
      \n
    • chain is the blockchain that you use.
    • \n
    • to is the blockchain address where to send the minted NFT to.
    • \n
    • url is the URL of the NFT metadata.
    • \n
    • minter is the address of the NFT minter that you found in Step 1.
    • \n
    • contractAddress is the address of your NFT smart contract.
    • \n
    • tokenId is the the token ID of the NFT.
      For example:\n
      \n{\n  \"chain\": \"CELO\",\n  \"to\": \"0x8ce4e40889a13971681391aad29e88efaf91f784\",\n  \"url\": \"ipfs://QmXJJ6UF5WkF4WTJvsdhiA1etGwBLfpva7Vr9AudGMe3pj\",\n  \"contractAddress\": \"0x687422eEA2cB73B5d3e242bA5456b782919AFc85\",\n  \"tokenId\": \"0123\",\n  \"minter\": \"0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F\"\n}\n
      \nWhen you make an API call with this request body, the private key of the NFT minter will be added to the request body automatically:\n
      \n{\n  \"chain\": \"CELO\",\n  \"to\": \"0x8ce4e40889a13971681391aad29e88efaf91f784\",\n  \"url\": \"ipfs://QmXJJ6UF5WkF4WTJvsdhiA1etGwBLfpva7Vr9AudGMe3pj\",\n  \"contractAddress\": \"0x687422eEA2cB73B5d3e242bA5456b782919AFc85\",\n  \"tokenId\": \"0123\",\n  \"minter\": \"0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F\",\n  \"fromPrivateKey\": \"0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2\"\n}\n
      \n
  6. \n
\n

The following table lists the blockchain addresses of the Tatum NFT minters for the testnet and mainnet of the supported blockchains:

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
BlockchainMinter address - testnet*Minter address - mainnet**
BNB Smart Chain0xc16ae5e8c985b906935a0cadf4e24f04005318830x49678AAB11E001eb3cB2cBD9aA96b36DC2461A94
Celo0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F0x49678AAB11E001eb3cB2cBD9aA96b36DC2461A94
Ethereum0x53e8577C4347C365E4e0DA5B57A589cB6f2AB8480x49678AAB11E001eb3cB2cBD9aA96b36DC2461A94
Harmony0x8906f62d40293ddca77fdf6714c3f63265deddf00x49678AAB11E001eb3cB2cBD9aA96b36DC2461A94
Klaytn0x80d8bac9a6901698b3749fe336bbd1385c1f98f20x49678AAB11E001eb3cB2cBD9aA96b36DC2461A94
Polygon0x542b9ac4945a3836fd12ad98acbc76a0c8b743f50x49678AAB11E001eb3cB2cBD9aA96b36DC2461A94
Horizen Eon0x53e8577c4347c365e4e0da5b57a589cb6f2ab8480x625805bf8fe714589ea8c90dbc294e656104c7b3
\n

*If a minter blockchain address on the testnet does not have sufficient funds to cover the transaction fee, add some amount to it using a crypto faucet of the blockchain.

\n

**To be able to use NFT Express on the mainnet, you have to have a paid pricing plan.
For Ethereum specifically, we recommend an Enterprise Plan because transaction fees on Ethereum are very high.

\n

Minting NFTs natively on a blockchain

\n

When minting an NFT natively on a blockchain, you are using your own 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.

\n

You can mint NFTs natively on the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Solana
  • \n
  • TRON
  • \n
  • Tezos
  • \n
  • Horizen Eon
  • \n
\n

Depending on what blockchain you use, choose the request body schema to use in the API call.

\n
    \n
  • To mint NFTs natively on Algorand and:\n
    • To sign the transaction with your private key, use this API with the MintNftAlgorand schema of the request body.
    • \n
    • To sign the transaction with your signature ID, use this API the MintNftAlgorandKMS schema of the request body.
      NOTE:
      • To be able to burn the minted NFTs any time later, specify the address of the manager account in the manager parameter.
      • An NFT minted 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 because Algorand charges users for storing NFTs on their addresses, and an Algorand blockchain address by default does not receive NFTs unless explicitly agreed. For more information about how it works, see the section about minting NFTs on Algorand using the pre-built NFT smart contract provided by Tatum.
  • \n
  • To mint NFTs natively on BNB Smart Chain, Ethereum, Harmony, Klaytn, KuCoin Community Chain, Polygon or Horizen Eon, and:\n
    • To sign the transaction with your private key, use this API with the MintNft schema of the request body.
    • \n
    • To sign the transaction with your signature ID, use this API the MintNftKMS schema of the request body.
  • \n
  • To mint NFTs natively on Celo and:\n
    • To sign the transaction with your private key, use this API with the MintNftCelo schema of the request body.
    • \n
    • To sign the transaction with your signature ID, use this API the MintNftKMSCelo schema of the request body.
  • \n
  • To mint NFTs natively on Flow and:\n
    • To sign the transaction with your private key, use this API with the MintNftFlowPK schema of the request body.
    • \n
    • To sign the transaction with your signature ID, use this API the MintNftFlowMnemonic schema of the request body.
    • \n
    • To sign the transaction with your wallet mnemonic, use this API the MintNftFlowKMS schema of the request body.
  • \n
  • To mint NFTs natively on Solana and:\n
    • To sign the transaction with your private key, use this API with the MintNftSolana schema of the request body.
    • \n
    • To sign the transaction with your signature ID, use this API the MintNftSolanaKMS schema of the request body.
      NOTE: When an NFT is minted on Solana, a new blockchain address is created to receive the NFT under the recipient's account address. After the NFT is minted, you have to transfer it to the recipient's address. For more information about how it works, see the section about minting NFTs on Solana using the pre-built NFT smart contract provided by Tatum.
  • \n
  • To mint NFTs natively on TRON and:\n
    • To sign the transaction with your private key, use this API with the MintNftTron schema of the request body.
    • \n
    • To sign the transaction with your signature ID, use this API the MintNftKMSTron schema of the request body.
  • \n
  • To mint NFTs natively on Tezos and:\n
    • To sign the transaction with your private key, use this API with the MintNftTezos schema of the request body.
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftmintmultipleerc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftmintmultipleerc721.md new file mode 100644 index 00000000..764adce0 --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftmintmultipleerc721.md @@ -0,0 +1,8 @@ +--- +title: "Mint multiple NFTs" +slug: "nftmintmultipleerc721" +excerpt: "

100 credits per API call on Flow
\n2 credits per API call on the other blockchains

\n

Create multiple NFT Tokens and transfer them to destination account. Create and transfer any NFT tokens from smart contract defined in contractAddress.

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • TRON
  • \n
\nThis operation works in two modes.\n\nFirst mode works just like other NFT endpoints. 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\nSecond mode enables you to mint on any custom NFT ERC-721 smart contract, on which specified minter address is approved as a minter. You don't specify private key or signatureId, only minter address, from which the NFT will be minted.
\nIt means you perform mint multiple NFT request with following body:\n
{\n   \"to\": [\"0x80d8bac9a6901698b3749fe336bbd1385c1f98f2\"],\n   \"url\": [\"ipfs://QmXJJ6UF5WkF4WTJvsdhiA1etGwBLfpva7Vr9AudGMe3pj\"],\n   \"tokenId\": [\"9876541124516\"],\n   \"contractAddress\":\"0xcd2ada00c48a27faa5cc67f9a1ed55b89ddf7f77\",\n   \"minter\": \"0x542b9ac4945a3836fd12ad98acbc76a0c8b743f5\",\n   \"chain\": \"MATIC\"\n}
\nThe blockchain fee of the performed transaction is paid from the address connected with built-in private key and is debited in form of credits. The credits are debited only if NFT mint requests are performed with paid API key plan.\nWe transform fee to the credits in accordance to the rates provided by the Tatum.\nIf you want to batch mint on ERC-721 contract which is not deployed via Tatum API, your smart contract must contain this method:\n
mintMultiple(address[] to, uint256[] tokenId, string[] uri): boolean
\nYou can use addresses specified in the bellow table to be used as a minter.\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
ChainTestnet addressMainnet Address
MATIC0x542b9ac4945a3836fd12ad98acbc76a0c8b743f50xcf9e127455d28e7362380aec1b92ddee8200b295
BSC0xc16ae5e8c985b906935a0cadf4e24f04005318830xcf9e127455d28e7362380aec1b92ddee8200b295
ONE0x8906f62d40293ddca77fdf6714c3f63265deddf00xcf9e127455d28e7362380aec1b92ddee8200b295
ETH0x53e8577C4347C365E4e0DA5B57A589cB6f2AB8480xcf9e127455d28e7362380aec1b92ddee8200b295
CELO0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F0xcf9e127455d28e7362380aec1b92ddee8200b295
KLAY0x80d8bac9a6901698b3749fe336bbd1385c1f98f20xcf9e127455d28e7362380aec1b92ddee8200b295
\nIf there are not enough coins on any testnet address, feel free to send coins there.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nfttransfererc721.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nfttransfererc721.md new file mode 100644 index 00000000..5cfbc9cd --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nfttransfererc721.md @@ -0,0 +1,8 @@ +--- +title: "Transfer an NFT" +slug: "nfttransfererc721" +excerpt: "

100 credits per API call on Flow
\n2 credits per API call on the other blockchains

\n

Transfer an NFT from the smart contract (the contractAddress parameter in the request body) to the specified blockchain address (the to parameter in the request body).

\n

In one API call, you can transfer only one NFT.

\n

This API is supported for the following blockchains:

\n
    \n
  • Algorand
  • \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Ethereum
  • \n
  • Flow
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • KuCoin Community Chain
  • \n
  • Polygon
  • \n
  • Solana
  • \n
  • TRON
  • \n
  • Tezos
  • \n
  • Horizen Eon
  • \n
\n

For Ethereum, Celo, and BNB Smart Chain, transferring NFTs invokes the safeTransfer() method.

\n

Transferring NFTs on Algorand

\n
    \n
  • On Algorand, the recipient has to agree in advance to receive your NFT because Algorand charges users for storing NFTs on their addresses, and an Algorand blockchain address by default does not receive NFTs unless explicitly agreed. Before transferring an NFT, make sure that the recipient has agreed to receive the NFT to their address.
  • \n
  • If you want to transfer an NFT that was minted using NFT Express, use the transferNftAlgoExpress schema of the request body.
    NOTE: On the mainnet, Tatum covers your transaction fees for the NFT transfer and pays for them from its own blockchain address. Then, the fee amount paid by Tatum is converted to the number of credits, and these credits are deducted from the monthly credit allowance of your paid pricing plan. On the testnet, only one credit is deducted from the monthly credit allowance for transaction fee.
  • \n
\n

Transferring NFTs on Solana
\nIf you want to transfer an NFT that was minted using NFT Express, use the transferNftSolana or transferNftSolanaKMS schema of the request body. In the request body:\n

    \n
  • Set the from parameter to the address that you used in the to parameter in the request body of the minting call.
  • \n
  • Set the to parameter to the recipient's address.
  • \n
  • Set the contractAddress parameter to the address from the nftAddress parameter returned in the response body of the minting call.
  • \n
  • Set the fromPrivateKey/signatureId parameter to the private key/signature ID of the blockchain address that you specified in the from parameter.
  • \n
\n

Signing a transaction
\nWhen transferring an NFT, 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

NOTE: This does not apply to transferring NFTs that were minted on Algorand using NFT Express (see earlier in this section).

" +hidden: false +createdAt: "Mon Feb 05 2024 11:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftverifyincollection.md b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftverifyincollection.md new file mode 100644 index 00000000..08beb2bf --- /dev/null +++ b/v1.0/Smart Contracts/nft-erc-721-or-compatible/nftverifyincollection.md @@ -0,0 +1,8 @@ +--- +title: "Verify an NFT in an NFT collection on Solana" +slug: "nftverifyincollection" +excerpt: "

2 credits per API call

\n

Verify an NFT in an NFT collection on Solana. Verifying an NFT sets the Verified parameter to true for the NFT, which means that the NFT is really a part of the collection. To know more about Solana collections and verification, refer to the Solana user documentation.

\n

The collection must be a sized collection that was introduced in Version 1.3 of the Metaplex Token Metadata program. The NFT must have been minted in this collection.

\n

This API is supported only for Solana.

\n

Signing a transaction
\nWhen verifying an NFT, 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:36:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:36:29 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Storage/blockchain-storage.md b/v1.0/Storage/blockchain-storage.md new file mode 100644 index 00000000..fc32c0b7 --- /dev/null +++ b/v1.0/Storage/blockchain-storage.md @@ -0,0 +1,8 @@ +--- +title: "Blockchain storage" +slug: "blockchain-storage" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Storage/blockchain-storage/getlog.md b/v1.0/Storage/blockchain-storage/getlog.md new file mode 100644 index 00000000..3113d2a7 --- /dev/null +++ b/v1.0/Storage/blockchain-storage/getlog.md @@ -0,0 +1,8 @@ +--- +title: "Get a log record" +slug: "getlog" +excerpt: "

1 credit per API call

\n

Get a log data record from the Ethereum blockchain (only the mainnet or the Sepolia testnet).

" +hidden: false +createdAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Storage/blockchain-storage/storelog.md b/v1.0/Storage/blockchain-storage/storelog.md new file mode 100644 index 00000000..c9f94197 --- /dev/null +++ b/v1.0/Storage/blockchain-storage/storelog.md @@ -0,0 +1,8 @@ +--- +title: "Store a log record" +slug: "storelog" +excerpt: "

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

\n

Store data on the blockchain.

\n

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

\n

This API is supported for the following blockchains:

\n
    \n
  • BNB Smart Chain
  • \n
  • Celo
  • \n
  • Elrond
  • \n
  • Ethereum (only the mainnet or the Sepolia testnet)
  • \n
  • Harmony
  • \n
  • Klaytn
  • \n
  • Polygon
  • \n
  • XDC
  • \n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Storage/ipfs.md b/v1.0/Storage/ipfs.md new file mode 100644 index 00000000..30acac32 --- /dev/null +++ b/v1.0/Storage/ipfs.md @@ -0,0 +1,8 @@ +--- +title: "IPFS" +slug: "ipfs" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Storage/ipfs/getipfsdata.md b/v1.0/Storage/ipfs/getipfsdata.md new file mode 100644 index 00000000..9efdaa67 --- /dev/null +++ b/v1.0/Storage/ipfs/getipfsdata.md @@ -0,0 +1,8 @@ +--- +title: "Get file from IPFS" +slug: "getipfsdata" +excerpt: "

1 credit per API call.


Gets data from the IPFS.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Storage/ipfs/storeipfs.md b/v1.0/Storage/ipfs/storeipfs.md new file mode 100644 index 00000000..6edc2069 --- /dev/null +++ b/v1.0/Storage/ipfs/storeipfs.md @@ -0,0 +1,8 @@ +--- +title: "Store data to IPFS" +slug: "storeipfs" +excerpt: "

2 credits per API call. Only files up to 50MB are available for storing.


\n

Stores file on the IPFS. We are leveraging web3.storage from Protocol Labs for free storage on the IPFS.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:37:22 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions.md b/v1.0/Subscriptions/notification-subscriptions.md new file mode 100644 index 00000000..60f72751 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions.md @@ -0,0 +1,8 @@ +--- +title: "Notification subscriptions" +slug: "notification-subscriptions" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/createsubscription.md b/v1.0/Subscriptions/notification-subscriptions/createsubscription.md new file mode 100644 index 00000000..adc55a9a --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/createsubscription.md @@ -0,0 +1,8 @@ +--- +title: "Create a subscription" +slug: "createsubscription" +excerpt: "Please expand below notification types to see more details.\n\n---\n\n
\n ADDRESS_EVENT\n \nMonitoring 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Bitcoin | Network.BITCOIN | Network.BITCOIN_TESTNET |\n| Litecoin | Network.LITECOIN | Network.LITECOIN_TESTNET |\n| Dogecoin | Network.DOGECOIN | Network.DOGECOIN_TESTNET |\n| Bitcoin Cash | Network.BITCOIN_CASH | Network.BITCOIN_CASH_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tezos | Network.TEZOS | - |\n| Tron | Network.TRON | Network.TRON_SHASTA |\n| XRP | Network.XRP | Network.XRP_TESTNET |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"amount\": \"0.001\",\n \"asset\": \"ETH\",\n \"blockNumber\": 2913059,\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6\",\n \"type\": \"native\",\n \"chain\": \"ethereum-mainnet\",\n \"subscriptionType\": \"ADDRESS_EVENT\"\n}\n```\n\n
\n\n---\n\n
\n INCOMING_NATIVE_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Bitcoin | Network.BITCOIN | Network.BITCOIN_TESTNET |\n| Litecoin | Network.LITECOIN | Network.LITECOIN_TESTNET |\n| Dogecoin | Network.DOGECOIN | Network.DOGECOIN_TESTNET |\n| Bitcoin Cash | Network.BITCOIN_CASH | Network.BITCOIN_CASH_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tezos | Network.TEZOS | - |\n| Tron | Network.TRON | Network.TRON_SHASTA |\n| XRP | Network.XRP | Network.XRP_TESTNET |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"amount\": \"0.001\",\n \"blockNumber\": 2913059,\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6\",\n \"chain\": \"ethereum-mainnet\"\n}\n```\n\n
\n\n---\n\n
\n OUTGOING_NATIVE_TX\n\nMonitoring 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Bitcoin | Network.BITCOIN | Network.BITCOIN_TESTNET |\n| Litecoin | Network.LITECOIN | Network.LITECOIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tezos | Network.TEZOS | - |\n| Tron | Network.TRON | Network.TRON_SHASTA |\n| XRP | Network.XRP | Network.XRP_TESTNET |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"amount\": \"-0.001\",\n \"blockNumber\": 2913059,\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6\",\n \"chain\": \"ethereum-mainnet\"\n}\n```\n\n
\n\n---\n\n
\n INCOMING_INTERNAL_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ---------- | ---------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"amount\": \"0.001\",\n \"blockNumber\": 2913059,\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6\",\n \"chain\": \"ethereum-mainnet\"\n}\n```\n\n
\n\n---\n\n
\n OUTGOING_INTERNAL_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ---------- | ---------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"amount\": \"-0.001\",\n \"blockNumber\": 2913059,\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6\",\n \"chain\": \"ethereum-mainnet\"\n}\n```\n\n
\n\n---\n\n
\n OUTGOING_FAILED_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"amount\": \"-0.001\",\n \"blockNumber\": 2913059,\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0x062d236ccc044f68194a04008e98c3823271dc26160a4db9ae9303f9ecfc7bf6\",\n \"chain\": \"ethereum-mainnet\"\n}\n```\n\n
\n\n---\n\n
\n FAILED_TXS_PER_BLOCK\n\nIn the fast-paced world of blockchain, keeping track of failed transactions is crucial for maintaining a secure and efficient platform. Tatum's FAILED_TXS_PER_BLOCK 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"txId\": \"2rdy3YCZHSwvpWtuDom1d4Jjy5UU9STLxF3ffXau6GToReDkfw8wEgX541fvzvh6btVC5D8iNapcKTXfPsoDBk7A\",\n \"blockNumber\": 110827114,\n \"chain\": \"ethereum-mainnet\"\n}\n```\n\n
\n\n---\n\n
\n PAID_FEE\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"txId\": \"0x7d3dda0430471fe460c07b1ecab35670ef4ce85b\",\n \"blockNumber\": 110827114,\n \"amount\": \"1\",\n \"mempool\": true,\n \"chain\": \"ethereum-mainnet\"\n}\n```\n\n
\n\n---\n\n
\n INCOMING_FUNGIBLE_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Bitcoin Cash | Network.BITCOIN_CASH | Network.BITCOIN_CASH_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tron | Network.TRON | Network.TRON_SHASTA |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0x7d3dda0430471fe460c07b1ecab35670ef4ce85b\",\n \"blockNumber\": 110827114,\n \"amount\": \"1\",\n \"chain\": \"ethereum-mainnet\",\n \"contractAddress\": \"0x7D3Dda0430471Fe460C07b1ecaB35670eF4ce85b\"\n}\n```\n\n
\n\n---\n\n
\n OUTGOING_FUNGIBLE_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tron | Network.TRON | Network.TRON_SHASTA |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0x7d3dda0430471fe460c07b1ecab35670ef4ce85b\",\n \"blockNumber\": 110827114,\n \"amount\": \"1\",\n \"chain\": \"ethereum-mainnet\",\n \"contractAddress\": \"0x7D3Dda0430471Fe460C07b1ecaB35670eF4ce85b\"\n}\n```\n\n
\n\n---\n\n
\n INCOMING_NFT_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tron | Network.TRON | Network.TRON_SHASTA |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0xe118976ba31815f81301341b4e211825bce1393cac1c4215075177b0a6b98930\",\n \"blockNumber\": 110827114,\n \"amount\": \"1\",\n \"chain\": \"ethereum-mainnet\",\n \"contractAddress\": \"0x7d3dda0430471fe460c07b1ecab35670ef4ce85b\",\n \"tokenId\": \"1450000023306\",\n \"metadataURI\": \"https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json\"\n}\n```\n\n
\n\n---\n\n
\n OUTGOING_NFT_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Solana | Network.SOLANA | Network.SOLANA_DEVNET |\n| Tron | Network.TRON | Network.TRON_SHASTA |\n| Tezos | Network.TEZOS | - |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0xe118976ba31815f81301341b4e211825bce1393cac1c4215075177b0a6b98930\",\n \"blockNumber\": 110827114,\n \"amount\": \"1\",\n \"chain\": \"ethereum-mainnet\",\n \"contractAddress\": \"0x7d3dda0430471fe460c07b1ecab35670ef4ce85b\",\n \"tokenId\": \"1450000023306\",\n \"metadataURI\": \"https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json\"\n}\n```\n\n
\n\n---\n\n
\n INCOMING_MULTITOKEN_TX\n\nIn 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.\n\n### Which blockchain networks are supported?\n\n| Blockchain | Mainnet | Testnet |\n| ------------------- | --------------------------- | ------------------------------------------------ |\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0xe118976ba31815f81301341b4e211825bce1393cac1c4215075177b0a6b98930\",\n \"blockNumber\": 110827114,\n \"amount\": \"1\",\n \"chain\": \"ethereum-mainnet\",\n \"contractAddress\": \"0x7d3dda0430471fe460c07b1ecab35670ef4ce85b\",\n \"tokenId\": \"1450000023306\",\n \"metadataURI\": \"https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json\"\n}\n```\n\n
\n\n---\n\n
\n OUTGOING_MULTITOKEN_TX\n \nIn 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.\n \n### Which blockchain networks are supported?\n| Blockchain | Mainnet | Testnet |\n|---------------------|-----------------------------|--------------------------------------------------|\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\n```json\n{\n \"address\": \"0xF64E82131BE01618487Da5142fc9d289cbb60E9d\",\n \"counterAddress\": \"0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990\",\n \"txId\": \"0xe118976ba31815f81301341b4e211825bce1393cac1c4215075177b0a6b98930\",\n \"blockNumber\": 110827114,\n \"amount\": \"1\",\n \"chain\": \"ethereum-mainnet\",\n \"contractAddress\": \"0x7d3dda0430471fe460c07b1ecab35670ef4ce85b\",\n \"tokenId\": \"1450000023306\",\n \"metadataURI\": \"https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json\"\n}\n```\n\n
\n\n---\n\n
\n CONTRACT_ADDRESS_LOG_EVENT\n \nIn the fast-paced world of blockchain, keeping track of contract events is essential for maintaining a secure and efficient platform. Tatum's CONTRACT_ADDRESS_LOG_EVENT notification type offers a powerful solution to help you stay informed about nft mints, transfers or any other contract events.\n \n### Which blockchain networks are supported?\n| Blockchain | Mainnet | Testnet |\n|---------------------|-----------------------------|--------------------------------------------------|\n| Ethereum | Network.ETHEREUM | Network.ETHEREUM_SEPOLIA,Network.ETHEREUM_GOERLI |\n| Polygon | Network.POLYGON | Network.POLYGON_MUMBAI |\n| Binance Smart Chain | Network.BINANCE_SMART_CHAIN | Network.BINANCE_SMART_CHAIN_TESTNET |\n| Celo | Network.CELO | Network.CELO_ALFAJORES |\n| Klaytn | Network.KLAYTN | Network.KLATN_BAOBAB |\n| Tezos | Network.TEZOS | N/A |\n\n### What does the fired webhook look like?\n\nThe fired notification webhook you will receive in your webhook listener will have the following format.\n\nExample for EVM chains:\n\n```json\n{\n \"events\": [\n {\n \"txId\": \"0xbcf42229dbd97a7c1554f0451a8d4ba6653593de06d4ea62691ce314d036d19e\",\n \"logIndex\": 3,\n \"timestamp\": 1696945197000,\n \"address\": \"0xeb0a4ee3cdfffe0ef29f967a34137dea3b529c89\",\n \"topic_0\": \"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\",\n \"topic_1\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n \"topic_2\": \"0x000000000000000000000000cacdddf3c123b133cb36b0ee17925c7a70a1ea93\",\n \"topic_3\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n \"data\": \"0x\"\n }\n ],\n \"blockNumber\": 20312334,\n \"chain\": \"celo-testnet\",\n \"subscriptionType\": \"CONTRACT_ADDRESS_LOG_EVENT\"\n}\n```\n\nExample for Tezos. The `tag` and `payload` in the event object depend on what the contract emits:\n\n```json\n{\n \"events\": [\n {\n \"txId\": \"op6Hu4iUV9bRxxGkc5qVexN1NXFYENpKEovyh41cC3W9a9voX2k\",\n \"tag\": \"swap\",\n \"payload\": [\n {\n \"int\": \"130\"\n },\n {\n \"int\": \"0\"\n },\n {\n \"int\": \"67034\"\n },\n {\n \"int\": \"118138\"\n }\n ],\n \"address\": \"KT1V5XKmeypanMS9pR65REpqmVejWBZURuuT\"\n }\n ],\n \"blockNumber\": 4376363,\n \"chain\": \"tezos-mainnet\",\n \"subscriptionType\": \"CONTRACT_ADDRESS_LOG_EVENT\"\n}\n```\n\n
" +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 14:20:41 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/createsubscriptionold.md b/v1.0/Subscriptions/notification-subscriptions/createsubscriptionold.md new file mode 100644 index 00000000..486be5c7 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/createsubscriptionold.md @@ -0,0 +1,8 @@ +--- +title: "Create a subscription (old)" +slug: "createsubscriptionold" +excerpt: "

2 credits per API call + credits spent on subscriptions themselves
\nEach subscription type consumes a different number of credits.

\n

For Free plans, there is a monthly limit of sent webhooks, which is 1000.

\n

If the webhook is sent unsuccessfully, it will be retried. The number of retries depends on the plan.

\n
    \n
  • Free Plan - 3 retries
  • \n
  • Paid plans - 10 retries
  • \n
\n

Create a subscription as an HTTP web hook.

\n

The following subscription types are available:

\n
    \n
  • ADDRESS_TRANSACTION - Enable HTTP POST JSON notifications for any blockchain transaction (both incoming and outgoing) at a specified address. This notification applies to transactions in the native blockchain currency or with any type of blockchain tokens.
    \n- For EVM-based blockchains (ETH), this web hook might be first invoked when a transaction appears in the mempool. In that case the webhook has a field \"mempool\" set to \"true\". Then it is invoked again once the transaction is added to a block.
    \n- For the other blockchains, this webhook is invoked when a transaction is added to a block.
    \nFree community plans can monitor up to 10 addresses per plan.
    \nThe following table describes the availability of this notification type on different blockchains and the credit consumption:
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    ChainTestnet/MainnetToken assets supportPlan limitationCredit consumption / day / address
    SolanaYes/YesSOL, SPL and NFTsFree plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains50 credits / day / address
    EthereumYes (Sepolia, Goerli)/YesETH, Internal transfers, ERC20, ERC721, ERC1155Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains25 credits / day / address
    PolygonYes/YesMATIC, ERC20, ERC721, ERC1155Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains40 credits / day / address
    CeloYes/YesCELO, Internal transfers, ERC20, ERC721, ERC1155Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains25 credits / day / address
    KlaytnYes/YesKlay, ERC20, ERC721, ERC1155Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains25 credits / day / address
    BitcoinYes/YesBTCFree plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains5 credits / day / address
    LitecoinYes/YesLTCFree plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains7 credits / day / address
    Bitcoin CashYes/YesBCH, only incoming transactionsFree plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains5 credits / day / address
    DogecoinYes/YesDOGE, only incoming transactionsFree plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains7 credits / day / address
    TronYes/YesTron, TRC10/TRC20Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains30 credits / day / address
    Binance Smart ChainYes/YesBSC, BEP20, ERC721, ERC1155Free plans - 10 addresses across all blockchains, Paid plans - unlimited addresses across all blockchains40 credits / day / address
    \nThe request body of the POST request is a JSON object with the following structure:
    \n
    {\n  \"address\": \"FykfMwA9WNShzPJbbb9DNXsfgDgS3XZzWiFgrVXfWoPJ\", // the address on which the transaction occurs; for EVM-based chains, this is the sender's address\n  \"txId\": \"2rdy3YCZHSwvpWtuDom1d4Jjy5UU9STLxF3ffXau6GToReDkfw8wEgX541fvzvh6btVC5D8iNapcKTXfPsoDBk7A\", // the transaction ID\n  \"blockNumber\": 110827114, // the block number; does not appear if the transaction is in the mempool (for EVM-based blockchains)\n  \"asset\": \"3gUeeR3BfVhukYJMwtHownRtRkGcf1bvwiV8TbKMZBVz\", // the asset of the transaction: for token assets, this is the token address; for native blochckain assets, this is the name of the asset (for example, SOL)\n  \"amount\": \"1\", // the amount of the asset that was credited to (+) or debited from (-) the address; for EVM-based chains, when \"counterAddress\" is present, the amount is always positive\n  \"tokenId\": \"1\", // (ERC-721 / ERC-1155 only) the ID of the transferred token\n  \"type\": \"token\", // the type of the transaction; can be either \"native\" or \"token\"\n  \"mempool\": true, // (EVM-based blockchains only) if appears and set to \"true\", the transaction is in the mempool; if set to \"false\" or does not appear at all, the transaction has been added to a block\n  \"counterAddress\": undefined // an optional counter party address of the transaction; for EVM-based blockchains, this is the recipient's address\n  \"addressesRiskRatio\": [ // (optional, subject to change; for Solana mainnet only) risk levels assigned to the addresses with which the address communicated within the transaction; the addresses are assessed using the AML/CFT solution by blockmate.io, see https://docs.blockmate.io/docs/risk-API/sources\n    {\"vTEfAhXTmvgFmepgfhzBbRrJ4EtUP9adbMJjpzLsDMk\": 0},\n    {\"zBbRrJ4EtUP9adbMJjpzLsDMkvTEfAhXTmvgFmepgfh\": 100}\n  ]\n}
    \n5 credits are debited for each fired web hook.
  • \n
  • CONTRACT_NFT_TXS_PER_BLOCK - Enable HTTP POST JSON notifications for any event of minting, transferring, or burning an NFT that was emitted from any smart contract. This notification is fired as a batch notification per block: it includes all NFT minting, transferring, or burning events from all smart contracts that got recorded into a block.
    \nFree community plans can monitor 1 event across all blockchains per plan.

    \nThe following table describes the availability of this notification type on different blockchains and the credit consumption:
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    ChainAvailable chains (the \"chain\" parameter in the response payload)Credit consumption / day
    Ethereumethereum-sepolia / ethereum-goerli / ethereum-mainnet500,000 credits / day
    Polygonpolygon-mumbai / polygon-mainnet500,000 credits / day
    Celocelo-testnet / celo-mainnet500,000 credits / day
    Klaytnklaytn-baobab / klaytn-cypress500,000 credits / day
    BNB Smart Chainbsc-testnet / bsc-mainnet500,000 credits / day
    \nThe request body of the POST request is a JSON object with the following structure:
    \n
    {\n \"events\": [\n   {\n     \"timestamp\": 1661961758000,\n     \"from\": \"0x0000000000000000000000000000000000000000\",\n     \"to\": \"0xfa4e7035b34294407e5df1603215983d65e5a773\",\n     \"tokenId\": \"14671\",\n     \"txId\": \"0x916fcf878656f7a3772317697e6d2740ac8b1b7dbe6d029aa79592fd72f3fb0b\",\n     \"contractAddress\": \"0x55a2430e32dcebc3649120f26f917d1f0686f74c\",\n     \"type\": \"erc721\",\n     \"amount\": \"1\",\n     \"logIndex\": 578,\n     \"metadataURI\": \"https://graphigo.prd.galaxy.eco/metadata/0x55a2430e32dcebc3649120f26f917d1f0686f74c/14671.json\"\n   }\n ],\n \"blockNumber\": 32522207,\n \"chain\": \"polygon-mainnet\",\n \"subscriptionType\": \"CONTRACT_NFT_TXS_PER_BLOCK\"\n }
    \n1 credit is debited for each fired web hook.
  • \n
  • CONTRACT_MULTITOKEN_TXS_PER_BLOCK - Enable HTTP POST JSON notifications for any event of minting, transferring, or burning a Multi-Token that was emitted from any smart contract. This notification is fired as a batch notification per block: it includes all Multi Token minting, transferring, or burning events from all smart contracts that got recorded into a block.
    \nFree community plans can monitor 1 event across all blockchains per plan.

    \nThe following table describes the availability of this notification type on different blockchains and the credit consumption:
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    ChainAvailable chains (the \"chain\" parameter in the response payload)Credit consumption / day
    Ethereumethereum-sepolia / ethereum-goerli / ethereum-mainnet500,000 credits / day
    Polygonpolygon-mumbai / polygon-mainnet500,000 credits / day
    Celocelo-testnet / celo-mainnet500,000 credits / day
    Klaytnklaytn-baobab / klaytn-cypress500,000 credits / day
    BNB Smart Chainbsc-testnet / bsc-mainnet500,000 credits / day
    \nThe request body of the POST request is a JSON object with the following structure:
    \n
    {\n \"events\": [\n   {\n     \"timestamp\": 1661961758000,\n     \"from\": \"0x85bd970cf0e49acd572f9c2d608713bc55b5ee0e\",\n     \"to\": \"0x9ab31230d5413e4af01af9bb697651a3c70c95c9\",\n     \"tokenId\": \"1450000023306\",\n     \"txId\": \"0x565b9ca6b7b5ff1b1ce0725acd785dbf5ff0930d5ff547bad044c0960291555f\",\n     \"contractAddress\": \"0xdb6290f355a528a7284bdd528b05a78fb05226ca\",\n     \"type\": \"erc1155\",\n     \"amount\": \"1\",\n     \"logIndex\": 571,\n     \"metadataURI\": \"https://touhao.bj.bcebos.com/nft/metadata/1450000023306.json\"\n   }\n ],\n \"blockNumber\": 32522207,\n \"chain\": \"polygon-mainnet\",\n \"subscriptionType\": \"CONTRACT_MULTITOKEN_TXS_PER_BLOCK\"\n}
    \n1 credit is debited for each fired web hook.
  • \n
  • CONTRACT_LOG_EVENT - Enable HTTP POST JSON notifications for any event that was emitted from any smart contract. This notification is fired as a batch notification per block: it includes all events from all smart contracts that got recorded into a block.
    \nFree community plans can monitor 1 event across all blockchains per plan.

    \nThe following table describes the availability of this notification type on different blockchains and the credit consumption:
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    ChainAvailable chains (the \"chain\" parameter in the response payload)Credit consumption / day
    Ethereumethereum-sepolia / ethereum-goerli / ethereum-mainnet50,000 credits / day
    Polygonpolygon-mumbai / polygon-mainnet50,000 credits / day
    Celocelo-testnet / celo-mainnet50,000 credits / day
    Klaytnklaytn-baobab / klaytn-cypress50,000 credits / day
    BNB Smart Chainbsc-testnet / bsc-mainnet50,000 credits / day
    \nThe request body of the POST request is a JSON object with the following structure:
    \n
    {\n \"events\": [\n   {\n     \"txId\": \"0xc98307f09ed527d5cff8305e8f65226b790e3317ded10b9e58f6f07286dcf8f1\",\n     \"logIndex\": 326,\n     \"timestamp\": 1661774265000,\n     \"address\": \"0xc2132d05d31c914a87c6611c10748aeb04b58e8f\",\n     \"topic_0\": \"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\",\n     \"topic_1\": \"0x000000000000000000000000a91ab7d77892a559d2a95baaf1d748fc97c65d29\",\n     \"topic_2\": \"0x0000000000000000000000009b08288c3be4f62bbf8d1c20ac9c5e6f9467d8b7\",\n     \"topic_3\": null,\n     \"data\": \"0x0000000000000000000000000000000000000000000000000000000002c9e3e4\"\n   }\n ],\n \"blockNumber\": 32447538,\n \"chain\": \"polygon-mumbai\",\n \"subscriptionType\": \"CONTRACT_LOG_EVENT\"\n}
    \n1 credit is debited for each fired web hook.
  • \n
  • ACCOUNT_INCOMING_BLOCKCHAIN_TRANSACTION - Enable HTTP POST JSON notifications about incoming blockchain transactions on virtual accounts.\nThis web hook is invoked when an incoming transaction is reflected on the balance of the virtual account (the balance is credited with the transaction amount). This happens when the transaction has the sufficient number of blockchain confirmations: two confirmations for BTC, LTC, BCH, and DOGE, and one confirmation for the other blockchains.
    \nThe request body of the POST request is a JSON object with the following structure:\n
    {\n  \"date\": 1619176527481,\n  \"amount\": \"0.005\",\n  \"currency\": \"BTC\",\n  \"subscriptionType\":\"ACCOUNT_INCOMING_BLOCKCHAIN_TRANSACTION\",\n  \"accountId\": \"6082ab462936b4478117c6a0\",\n  \"reference: \"c9875708-4ba3-41c9-a4cd-271048b41b9a\", // the reference of the transaction in the virtual account\n  \"txId\": \"45af182a0ffab58e5ba32fee57b297b2260c6e23a1de5ddc76c7ee22d72dea99\",\n  \"blockHash\": \"45af182a0ffab58e5ba32fee57b297b2260c6e23a1de5ddc76c7ee22d72dea99\", // the hash of the block, might not be present every time\n  \"blockHeight\": 12345,\n  \"from\": \"SENDER_ADDRESS\", // might not be present every time; not present for UTXO-based blockchains\n  \"to\": \"RECIPIENT_ADDRESS_CONNECTED_TO_LEDGER_ACCOUNT\", // the blockchain address of the recipient\n  \"index\": 5 // for UTXO-based blockchains (BCH, BTC, DOGE, LTC), this is the index of the output in the transaction\n}
    \n1 credit is debited for each monitored account every day.
  • \n
  • ACCOUNT_PENDING_BLOCKCHAIN_TRANSACTION - Enable HTTP POST JSON notifications about incoming blockchain transactions on virtual accounts.
    \nThis web hook is supported only for BCH, BTC, DOGE, ETH, and LTC accounts.
    \n- For BTC-based blockchains (BCH, BTC, DOGE, and LTC), this web hook is invoked when an incoming transaction appears in a block for the first time. At that time, the transaction has one confirmation but this is not enough for the transaction to be reflected on the balance of the virtual account yet. Instead, a deposit corresponding to the pending transaction with a status of \"in progress\" appears on the virtual account. Once the transaction is added to the block, the deposit's status changes to \"done\", and the account balance gets updated.
    \n- For EVM-based blockchains (ETH), this web hook is invoked when an incoming transaction appears in the mempool. The virtual account balance is not updated until the transaction is added to a block. Instead, a deposit corresponding to the pending transaction with a status of \"in progress\" appears on the virtual account. Once the transaction is added to the block, the deposit's status changes to \"done\", and the account balance gets updated.
    \nThe request body of the POST request is a JSON object with the following structure:
    \n
    {\n  \"date\": 1619176527481,\n  \"amount\": \"0.005\",\n  \"currency\": \"BTC\",\n  \"accountId\": \"6082ab462936b4478117c6a0\",\n  \"reference: \"c9875708-4ba3-41c9-a4cd-271048b41b9a\", // the reference of the transaction in the virtual account\n  \"txId\": \"45af182a0ffab58e5ba32fee57b297b2260c6e23a1de5ddc76c7ee22d72dea99\",\n  \"blockHash\": \"45af182a0ffab58e5ba32fee57b297b2260c6e23a1de5ddc76c7ee22d72dea99\", // the hash of the block, might not be present every time; if set to \"null\", the transaction is in the mempool (for EVM-based blockchains)\n  \"blockHeight\": 12345, // if set to \"null\", the transaction is in the mempool (for EVM-based blockchains)\n  \"from\": \"SENDER_ADDRESS\", // might not be present every time; not present for UTXO-based blockchains (BCH, BTC, DOGE, LTC)\n  \"to\": \"RECIPIENT_ADDRESS_CONNECTED_TO_LEDGER_ACCOUNT\", // the blockchain address of the recipient\n  \"index\": 5 // for UTXO-based blockchains (BCH, BTC, DOGE, LTC), this is the index of the output in the transaction\n}
    \n1 credit is debited for each monitored account every day.
  • \n
  • CUSTOMER_TRADE_MATCH - Enable HTTP POST JSON notifications on closed trade, which occurs on any customer account.\nThis web hook will be invoked, when the open trade is filled and closed. Works also for the Trade Futures. If is triggered by the futures, bool field expiredWithoutMatch is present.\nRequest body of the POST request will be JSON object with attributes:
    \n
    {\n  \"created\": 1619176527481,\n  \"amount\": \"0.005\",\n  \"price\": \"0.02\",\n  \"type\": \"SELL\",\n  \"pair\": \"VC_CHF/VC_CHF3\",\n  \"id\": \"6082ab462936b4478117c6a0\", // id of the trade\n  \"currency1AccountId\": \"6082ab462936b4478117c6a0\",\n  \"currency2AccountId\": \"6082ab512936b4478117c6a2\",\n  \"fee\": null,\n  \"feeAccountId\": null,\n  \"isMaker\": true,\n  \"expiredWithoutMatch\": false\n}
    \n10 credits will be debited for every monitored customer every day.
  • \n
  • CUSTOMER_PARTIAL_TRADE_MATCH - Enable HTTP POST JSON notifications on partialy filled trade, which occurs on any customer account.\nThis web hook will be invoked, when the open trade is partialy filled.\nRequest body of the POST request will be JSON object with attributes:
    \n
    {\n  \"created\": 1619176527481,\n  \"amount\": \"0.005\",\n  \"orderAmount\": \"0.1\",\n  \"price\": \"0.02\",\n  \"type\": \"SELL\",\n  \"pair\": \"VC_CHF/VC_CHF3\",\n  \"id\": \"6082ab462936b4478117c6a0\", // id of the trade\n  \"currency1AccountId\": \"6082ab462936b4478117c6a0\",\n  \"currency2AccountId\": \"6082ab512936b4478117c6a2\",\n  \"fee\": null,\n  \"feeAccountId\": null,\n  \"isMaker\": true,\n  \"expiredWithoutMatch\": false\n}
    \n10 credits will be debited for every monitored customer every day.
  • \n
  • TRANSACTION_IN_THE_BLOCK - Enable HTTP POST JSON notifications on ledger => blockchain transaction, when transaction is included in the block.\nThis web hook will be invoked, when the outgoing transaction is included in the block.\nRequest body of the POST request will be JSON object with attributes:
    \n
    \n  {\n    \"txId\": \"0x026f4f05b972c09279111da13dfd20d8df04eff436d7f604cd97b9ffaa690567\",\n    \"reference\": \"90270634-5b07-4fad-b17b-f82899953533\",\n    \"accountId\": \"6086ed0744c45b24d4fbd039\",\n    \"currency\": \"BSC\",\n    \"withdrawalId\": \"608fe5b73a893234ba379ab2\",\n    \"address\": \"0x8ce4e40889a13971681391AAd29E88eFAF91f784\",\n    \"amount\": \"0.1\",\n    \"blockHeight\": 8517664\n  }
    \n10 credits will be debited every day, 1 credit for every included transaction notified via web hook.
  • \n
  • KMS_FAILED_TX - Enable HTTP POST JSON notifications on error during KMS signature process.\nThis web hook will be invoked, when the Tatum KMS receives error during processing transactions.\nRequest body of the POST request will be JSON object with attributes:
    \n
    {\n  \"signatureId\": \"6082ab462936b4478117c6a0\",\n  \"error\": \"Error message from the KMS\"\n}
    \n10 credits will be debited every day.
  • \n
  • KMS_COMPLETED_TX - Enable HTTP POST JSON notifications on successful completion of KMS signature process.\nThis web hook will be invoked, when the Tatum KMS successfully completes the signature during processing transactions.\nRequest body of the POST request will be JSON object with attributes:
    \n
    {\n  \"signatureId\": \"6082ab462936b4478117c6a0\",\n  \"txId\": \"0x7bb7d3b90567e89f999f2e3d263bc3738a018dbbcfa9f5397678cf17cdf0235f\"\n}
    \n10 credits will be debited every day.
  • \n
  • ACCOUNT_BALANCE_LIMIT - Report with all account balances above desired limit.
  • \n
  • TRANSACTION_HISTORY_REPORT - Report with all ledger transactions for last X hours, where X is set by the subscription attribute as interval.\nMaximum number of transactions returned by this report is 20000. Transactions are obtained from the time of the invocation of the GET method to obtain report - X hours.
  • \n
\nIn case of unsuccesful web hook response status - other then 2xx - web hook is repeated 9 more times with exponential backoff.\nParameters are T = 15 * 2.7925^9, where 15 is interval in s, backoff rate is 2.7925 and 9 is current number of retries. Last web hook is fired after 24 hours approximatelly. After last failed attempt, web hook is deleted from our system. The 2xx response must be returned in 10 seconds after web hook is fired.
\nResult of the operation is subscription ID, which can be used to cancel subscription or obtain additional data connected to it like reports.

" +hidden: false +createdAt: "Mon Feb 05 2024 14:20:41 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 14:20:41 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/deletesubscription.md b/v1.0/Subscriptions/notification-subscriptions/deletesubscription.md new file mode 100644 index 00000000..8e0ec6f6 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/deletesubscription.md @@ -0,0 +1,8 @@ +--- +title: "Cancel existing subscription" +slug: "deletesubscription" +excerpt: "

1 credit for API call


Cancel existing subscription.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:19 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/disablewebhookhmac.md b/v1.0/Subscriptions/notification-subscriptions/disablewebhookhmac.md new file mode 100644 index 00000000..63513f69 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/disablewebhookhmac.md @@ -0,0 +1,8 @@ +--- +title: "Disable HMAC webhook digest" +slug: "disablewebhookhmac" +excerpt: "

2 credits per API call.


Disable HMAC hash ID on the fired webhooks from Tatum API.

" +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:19 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/enablewebhookhmac.md b/v1.0/Subscriptions/notification-subscriptions/enablewebhookhmac.md new file mode 100644 index 00000000..9d91cdb4 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/enablewebhookhmac.md @@ -0,0 +1,8 @@ +--- +title: "Enable HMAC webhook digest" +slug: "enablewebhookhmac" +excerpt: "

2 credits per API call.


Enable HMAC hash ID on the fired webhooks from Tatum API.\nIn order to make sure that a webhook is sent by us, we have the possibility to sign it with the HMAC Sha512 Hex algorithm.
\nTo verify that a webhook is sent by us\n

    \n
  1. Get a webhook x-payload-hash header value and payload as it is as a JSON file.
  2. \n
  3. Convert the HTTP webhook body to stringify JSON without any spaces. In JavaScript, you would do it like this
    JSON.stringify(req.body)
  4. \n
  5. Perform calculations on your side to create a digest using Secret Key, webhook payload in bytes and HMAC SHA512 algorithm. JavaScript example:\n
    require('crypto').createHmac('sha512', hmacSecret).update(JSON.stringify(req.body)).digest('base64')
    .
  6. \n
  7. Compare x-payload-hash header value with calculated digest as a Base64 string.
  8. " +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:19 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/getallwebhooks.md b/v1.0/Subscriptions/notification-subscriptions/getallwebhooks.md new file mode 100644 index 00000000..af413804 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/getallwebhooks.md @@ -0,0 +1,8 @@ +--- +title: "List all executed webhooks" +slug: "getallwebhooks" +excerpt: "

    1 credit per API call.


    List all webhooks.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:19 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/getallwebhookscount.md b/v1.0/Subscriptions/notification-subscriptions/getallwebhookscount.md new file mode 100644 index 00000000..9f6d9b0d --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/getallwebhookscount.md @@ -0,0 +1,8 @@ +--- +title: "Count of found entities for get webhook request" +slug: "getallwebhookscount" +excerpt: "

    1 credit per API call.


    Count of webhooks that were found from /v3/subscription/webhook

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:19 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/getsubscriptionreport.md b/v1.0/Subscriptions/notification-subscriptions/getsubscriptionreport.md new file mode 100644 index 00000000..48308b81 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/getsubscriptionreport.md @@ -0,0 +1,8 @@ +--- +title: "Obtain report for subscription" +slug: "getsubscriptionreport" +excerpt: "

    1 credit for API call. Based on the required report type, additional credits may be charged.


    \n

    Obtain report from subscription based on its type. Following reports are supported:\n

      \n
    • ACCOUNT_BALANCE_LIMIT - obtain list of all ledger accounts with account balance above the limit. 1 credit per 50 returned records is charged.
    • \n
    • TRANSACTION_HISTORY_REPORT - obtain list of all ledger transaction for last X hours from the time of invocation. 1 credit per 50 returned records is charged.
    • \n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/getsubscriptions.md b/v1.0/Subscriptions/notification-subscriptions/getsubscriptions.md new file mode 100644 index 00000000..658a9461 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/getsubscriptions.md @@ -0,0 +1,8 @@ +--- +title: "List all active subscriptions" +slug: "getsubscriptions" +excerpt: "

    1 credit per API call.


    List all active subscriptions.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:19 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Subscriptions/notification-subscriptions/getsubscriptionscount.md b/v1.0/Subscriptions/notification-subscriptions/getsubscriptionscount.md new file mode 100644 index 00000000..a82b14b8 --- /dev/null +++ b/v1.0/Subscriptions/notification-subscriptions/getsubscriptionscount.md @@ -0,0 +1,8 @@ +--- +title: "Count of subscriptions" +slug: "getsubscriptionscount" +excerpt: "

    1 credit per API call.


    Count of subscriptions that were found from /v3/subscription

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:34:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:34:19 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1.md new file mode 100644 index 00000000..a4b01521 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1.md @@ -0,0 +1,11 @@ +--- +title: "Blockchain Operations" +slug: "blockchain-operations-1" +excerpt: "" +hidden: false +createdAt: "Mon Jan 29 2024 07:39:43 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Feb 09 2024 08:53:08 GMT+0000 (Coordinated Universal Time)" +--- +This section covers all the error you might face when you are broadcasting a transaction on chain. + +Check this page if your transaction is stuck on chain. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/algorand-1.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/algorand-1.md new file mode 100644 index 00000000..265edbff --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/algorand-1.md @@ -0,0 +1,8 @@ +--- +title: "Algorand" +slug: "algorand-1" +excerpt: "" +hidden: false +createdAt: "Mon Feb 12 2024 12:12:33 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 12 2024 12:12:33 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/algorand-1/algo-get-account-transactions.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/algorand-1/algo-get-account-transactions.md new file mode 100644 index 00000000..90b7c37f --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/algorand-1/algo-get-account-transactions.md @@ -0,0 +1,39 @@ +--- +title: "Algo - Get Account Transactions" +slug: "algo-get-account-transactions" +excerpt: "" +hidden: false +createdAt: "Mon Feb 12 2024 12:13:05 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 12 2024 12:15:25 GMT+0000 (Coordinated Universal Time)" +--- +Getting all Account transactions in from an Algorand address is possible via an RPC node request. + +### Example request + +```curl cURL +curl --location --request GET 'https://api.tatum.io/v3/blockchain/node/ALGO/v2/accounts/MLD3LCNGOK2SXAVNUYMW3WVG5LBN4Z5HFARB3VLMZCENFW############/transactions?nodeType=INDEXER' \ +--header 'x-api-key: {API_KEY}' +//Response: +{ + "current-round": 26834617, + "next-token": "0DOZAQAAAAAMAAAA", + "transactions": [ + { + "asset-transfer-transaction": { + "amount": 0, + "asset-id": 27165954, + "close-amount": 0, + "receiver": "MLD3LCNGOK2SXAVNUYMW3WVG5LBN4Z5HFARB3VLMZCENFW############" + }, + "close-rewards": 0, + "closing-amount": 0, + "confirmed-round": 26834571, + "fee": 1000, + "first-valid": 26834569, +... +``` + +## Good to Know + +- Algorand RPC node method `/v2/accounts/{account-id}/transactions` looks up account transactions, returning newest to oldest. +- This request requires a redirect to the `INDEXER` node via `?nodeType=INDEXER` diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/cancel-or-replace-a-blockchain-transaction.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/cancel-or-replace-a-blockchain-transaction.md new file mode 100644 index 00000000..dc7fe70b --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/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/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1.md new file mode 100644 index 00000000..a5eb6b6a --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1.md @@ -0,0 +1,8 @@ +--- +title: "EVM (like Ethereum)" +slug: "evm-like-ethereum-1" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 16:35:09 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 16:35:23 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-beacon-chain-account-balance-attributes.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-beacon-chain-account-balance-attributes.md new file mode 100644 index 00000000..68182e38 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-beacon-chain-account-balance-attributes.md @@ -0,0 +1,15 @@ +--- +title: "BNB - Beacon Chain Account Balance Attributes" +slug: "bnb-beacon-chain-account-balance-attributes" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 11:44:34 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 11:44:39 GMT+0000 (Coordinated Universal Time)" +--- +BNB Beacon Chain Account balance comes with additional balance attributes + +- **Available**: the amount of tokens that can be transferred, and spent to swap (buy) other assets +- **Locked**: the amount of tokens that has been used in any outstanding orders. Once the order terminates (either filled, canceled or expired), the locked amount will decrease. +- **Frozen**: the amount of tokens that has been frozen via Freeze transactions. + +> 📘 Additional information is available at [the following link](https://docs.bnbchain.org/docs/beaconchain/learn/accounts/#account-balance). diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-bep2-and-bep20-token-transfers.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-bep2-and-bep20-token-transfers.md new file mode 100644 index 00000000..c8a7e829 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-bep2-and-bep20-token-transfers.md @@ -0,0 +1,15 @@ +--- +title: "BNB - BEP2 and BEP20 Token Transfers" +slug: "bnb-bep2-and-bep20-token-transfers" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 11:48:13 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 11:48:18 GMT+0000 (Coordinated Universal Time)" +--- +It's possible to transfer NBN BEP2 and BEP20 tokens with Tatum: + +### v3 REST API endpoints: + +- [Send BEP2 over BNB](https://apidoc.tatum.io/tag/BNB-Beacon-Chain/#operation/BnbBlockchainTransfer) +- [Send BEP20 over BSC](https://apidoc.tatum.io/tag/BNB-Smart-Chain/#operation/BscBlockchainTransfer) + - Alternative: [Send BEP20 token via compatible ERC-20](https://apidoc.tatum.io/tag/Fungible-Tokens-(ERC-20-or-compatible)/#operation/Erc20Transfer) method, where **Request Body Schema** is `ChainTransferBscBep20` and chain is BSC diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-transactions-over-beacon-chain-and-smart-chain.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-transactions-over-beacon-chain-and-smart-chain.md new file mode 100644 index 00000000..9c70aac8 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/bnb-transactions-over-beacon-chain-and-smart-chain.md @@ -0,0 +1,32 @@ +--- +title: "BNB - Transactions over Beacon Chain and Smart Chain" +slug: "bnb-transactions-over-beacon-chain-and-smart-chain" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 11:56:01 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 11:56:05 GMT+0000 (Coordinated Universal Time)" +--- +Binance has two types of chains: + +1. BNB Beacon Chain +2. BSC Smart Chain. + +> 📘 BNB is the native asset of both chains. + +## BNB Smart Chain (BSC) - BEP20 + +- In the Tatum v3 REST API, we call its currency with the symbol "`BSC`". +- BSC chain supports smart contracts and decentralized applications (DApps) since it's EVM compatible. +- BSC chain addresses follow the EVM address format. BSC chain addresses start with the prefix `0x` +- [BSC Explorer](https://bscscan.com/) +- [BSC chain API documentation link](https://apidoc.tatum.io/tag/BNB-Smart-Chain/) +- v3 REST API endpoint to make a BSC transfer: "`/v3/bsc/transaction`" + +## BNB Beacon Chain (BNB) - BEP2 + +- In the Tatum v3 REST API, we call its currency with the symbol "`BNB`". +- The BNB chain is standalone, not EVM-compatible. +- BNB chain addresses start with the prefix `bnb` +- [BNB Explorer](https://explorer.bnbchain.org/) +- [BNB chain v3 REST API documentation link](https://apidoc.tatum.io/tag/BNB-Beacon-Chain/) +- v3 REST API endpoint to make a BNB transfer: "`/v3/bnb/transaction`" diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/fee-estimate-gasprice-and-insufficient-funds.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/fee-estimate-gasprice-and-insufficient-funds.md new file mode 100644 index 00000000..56bdd8a4 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/fee-estimate-gasprice-and-insufficient-funds.md @@ -0,0 +1,74 @@ +--- +title: "Fee Estimate, GasPrice and Insufficient funds Error" +slug: "fee-estimate-gasprice-and-insufficient-funds" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 11:04:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 11:05:14 GMT+0000 (Coordinated Universal Time)" +--- +When building a transaction over EVM chains (like Ethereum), a common pitfall in using manual fees is adding `gasPrice` in `Wei` instead of `Gwei`. When this happens, you will likely get an error looking as follows: + +```json +ERROR: { + statusCode: 403, + errorCode: 'eth.tx.preparation', + message: 'Transaction preparation failure.', + cause: 'Insufficient funds send transaction from account ####### -> available balance is 1800000000000000, required balance is 7.233615778886385e+23' +} + +``` + +## Fee Estimate + +Tatum Fee estimates endpoints return values in `Wei`. + +- Estimate the fee for an Ethereum transaction - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-fees#operation/EthEstimateGas) +- Estimate the fee for multiple Ethereum transactions - [v3 REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-fees#operation/EthEstimateGasBatch) + +### Example ETH Fee Estimate: + +```json cURL +curl --location 'https://api.tatum.io/v3/ethereum/gas' \ +--header 'Content-Type: application/json' \ +--header 'x-api-key: {API_KEY}' \ +--data '{ + "from": "0xBF5c7e33a316cf7D86eBF4014bCf798c6962####", + "to": "0xce864aaec47f07ee8ba7e60a37ff141298f7####", + "amount": "0.018" +}' +//response: +{ + "gasLimit": "21000", + "gasPrice": "43698096524", //The unit hereis in Wei! + "estimations": { + "safe": "43698096524", + "standard": "43698096524", + "fast": "43698096524", + "baseFee": "43914769922" + } +} +``` + +## Sending Ethereum with manual fees + +When building an Ethereum transaction, if you want to input the transaction fee manually, make sure the `gasPrice` is in `Gwei`. + +> 📘 1 Gwei (Giga-wei) is equal to 1,000,000,000 Wei. Therefore, to convert Wei to Gwei, you have to divide the amount in Wei by 1,000,000,000. Alternatively, you may use an online conversion such as [eth-converter.com](https://eth-converter.com/) + +### Example ETH transaction with Manual Fees: + +```json cURL +curl --location 'https://api.tatum.io/v3/ethereum/transaction' \ +--header 'Content-Type: application/json' \ +--header 'x-api-key: ##Mainnet_API_KEY' \ +--data '{ + "to": "0xd2c4b6434410e4af062ee3c280327c8ece11####", + "currency": "ETH", + "amount": "0.0017", + "fromPrivateKey": "****", + "fee": { + "gasLimit": "21000", + "gasPrice": "44" //unit in Gwei! -> Estimate returned "fast": "43698096524", + } +}' +``` diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/get-erc-20-or-compatibletoken-balance.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/get-erc-20-or-compatibletoken-balance.md new file mode 100644 index 00000000..c274c903 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/get-erc-20-or-compatibletoken-balance.md @@ -0,0 +1,9 @@ +--- +title: "Get ERC-20 (or compatible)Token Balance" +slug: "get-erc-20-or-compatibletoken-balance" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 11:49:44 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 11:50:57 GMT+0000 (Coordinated Universal Time)" +--- +[Getting the ERC-20 Token balance](https://apidoc.tatum.io/tag/Fungible-Tokens-(ERC-20-or-compatible)/#operation/Erc20GetBalance) of an address is possible via the following dedicated v3 REST API endpoint. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/getting-the-contractaddress-or-tokenaddress-from-a-transaction-hash.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/getting-the-contractaddress-or-tokenaddress-from-a-transaction-hash.md new file mode 100644 index 00000000..309e7e30 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/getting-the-contractaddress-or-tokenaddress-from-a-transaction-hash.md @@ -0,0 +1,28 @@ +--- +title: "Get the contractaddress or tokenaddress from a transaction hash" +slug: "getting-the-contractaddress-or-tokenaddress-from-a-transaction-hash" +excerpt: "" +hidden: false +createdAt: "Mon Feb 12 2024 12:21:27 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 07:26:39 GMT+0000 (Coordinated Universal Time)" +--- +When you deploy a Smart Contract, you get as a response a transaction hash. + +### Example response + +```json JSON +{ + "txId": "0x532cb74e9b5388a6ae46cf6d68e38f3ed28738c80949726b2b8b641bad58783f" +} +``` + +To get the `contractAddress`, you can use [the following REST API endpoint](https://apidoc.tatum.io/tag/Blockchain-utils#operation/SCGetContractAddress). + +### Example request (Polygon - testnet) + +```curl +curl --location 'https://api.tatum.io/v3/blockchain/sc/address/MATIC/0x532cb74e9b5388a6ae46cf6d68e38f3ed28738c80949726b2b8b641bad58783f' \ +--header 'x-api-key: {API_KEY}' +//response: +{"contractAddress":"0x5775f95675e23062e3e4a0683f03f22f012df7ce"} +``` diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/invoke-method-in-a-smart-contract.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/invoke-method-in-a-smart-contract.md new file mode 100644 index 00000000..d6900ea1 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/invoke-method-in-a-smart-contract.md @@ -0,0 +1,169 @@ +--- +title: "Invoke method in a Smart Contract" +slug: "invoke-method-in-a-smart-contract" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 20:44:37 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 20:44:37 GMT+0000 (Coordinated Universal Time)" +--- +You can [invoke a method in a Smart Contract (SC)](https://apidoc.tatum.io/tag/Ethereum/#operation/EthBlockchainSmartContractInvocation) to read or write. This is done through the ABI (Application Binary Interface) method. + +- **Read**: could be used to read the balance of a specific token on that smart contract. +- **Write**: could be used to do something like burning some of the total minted tokens when the contract was originally deployed. + +## Disclaimer + +Tatum ensures the endpoint "Invoke a method in an SC" works against the blockchain. + +> 🚧 Troubleshooting issues in successfully invoking a method in an SC is out of the scope of Tatum's staff. Users may check the related SC code, and ABI documentation and reach out to the SC creator. + +## How to invoke a Smart Contract + +Example with a minted smart contract for ERC20 on BSC. + +1. Deploy Smart Contract + ```json cURL + curl --location --request POST 'https://api.tatum.dev/v3/blockchain/token/deploy' \ + --header 'X-Api-Key: {API_KEY}' \ + --header 'Content-Type: application/json' \ + --data-raw '{ + "chain": "BSC", + "symbol": "invoke_Token", + "name": "invToken", + "totalCap": "10000000", + "supply": "10000000", + "digits": 18, + "address": "0x6b598e8be2629380c7dc0a95ca5b59923a136436", + "fromPrivateKey": "0x200cc2960b8b75e1fe4cf461e6e02d1b9da869c7d46995709671232b228e6346" + }' + //Response + { + "txId": "0x86fe1d7f65c7c80a67ad85aeb5ec92df4b5cbabae82955da1bf3eb1fae1eb2cb" + } + ``` +2. Get the SC address from the explorer. Example: [`0x3fc5facec56e5b40df4a8abcebf7873259e340b6`] +3. Click on the [Contract] tab: + + [block:image]{"images":[{"image":["https://files.readme.io/5ac2196-sc_code_1.png","",""],"align":"center"}]}[/block] + + [block:image]{"images":[{"image":["https://files.readme.io/cbf2ea6-sc_code_2.png","",""],"align":"center"}]}[/block] +4. On the "**Code Decompilation result**", grab the related info from decompiled code. If you know the type of SC, use its public ABI to figure out what the JSON body looks like for a specific method. +5. **READ** method example: `balanceOf` >> to get balance of that token. + ```json cURL + { + "contractAddress": "0x3fc5facec56e5b40df4a8abcebf7873259e340b6", + "methodName": "balanceOf", + "methodABI": { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + "params": [ + "{{address1}}" + ] + } + //Response + { + "data": "10000000000000000000000000" >> which matches the original minted tokens + } + ``` +6. **WRITE** method example: `burn` >> to decrease #original minted tokens + ```json cURL + { + "contractAddress": "0x3fc5facec56e5b40df4a8abcebf7873259e340b6", + "methodName": "burn", + "methodABI": { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + "params": [ + 10 + ], + "fromPrivateKey": "{{pk1}}" + } + //Response + { + "txId": "0x1d77e9ed8a8ed84444f0b818f666c488eb6de77aef7329e324685cd2e84fd968" + } + ``` + +- Check in the Explorer to find burn transaction: + + [block:image]{"images":[{"image":["https://files.readme.io/cd23957-cs_invoke_burn.png","",""],"align":"center"}]}[/block] + +## ERC-20 ABI Documentation + +- [ERC-20 ABI](https://gist.github.com/veox/8800debbf56e24718f9f483e1e40c35c) +- [ERC-20 OpenZeppelin](https://docs.openzeppelin.com/contracts/2.x/api/token/erc20) + +## About Smart Contract code format + +Smart Contracts are applications inside the blockchain with an interaction interface, where ABI can be described with JSON. + +For ERC-20 and using this interface, you can do some actions with it. Every entry of it shows the corresponding method available to call. The only difference compared to the usual method call in a programming language is that it has expanded definitions. + +### Example: + +```json cURL +{ + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + +//This is the same as this: +transferFrom(_from: address, _to: address, _value: uint256): bool +``` + +Other flags show if stateMutability is required (we may say tx on chain, for further reading - solidity state mutability), or if it is a constant of SC or more. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/multi-tokens-erc-1155-name-and-symbol.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/multi-tokens-erc-1155-name-and-symbol.md new file mode 100644 index 00000000..e2268060 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/multi-tokens-erc-1155-name-and-symbol.md @@ -0,0 +1,33 @@ +--- +title: "Multi tokens (ERC-1155) name and symbol" +slug: "multi-tokens-erc-1155-name-and-symbol" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 21:50:48 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 21:50:52 GMT+0000 (Coordinated Universal Time)" +--- +By definition, `name` and `symbol` found in the ERC-20 and ERC-721 standards are not available. + +### Name + +The name function (for human-readable asset names, on-chain) was removed from the standard to allow the Metadata JSON to be the definitive asset name and reduce duplication of data. + +### Symbol + +The symbol function was not included since creators did not believe this is a globally useful piece of data to identify a generic virtual item/asset and is also prone to collisions. Short-hand symbols are used in tickers and currency trading, but they aren’t as useful outside of that space. + +> 📘 Find additional information ar [the following link](https://eips.ethereum.org/EIPS/eip-1155#rationale). + +## Good to know + +To get `name` and `symbol`, you need to deploy and use your own smart contract via [the following endpoint](https://apidoc.tatum.io/tag/Multi-Tokens-(ERC-1155-or-compatible)/#operation/DeployMultiToken). + +The mentioned endpoint contains the parameter `URI` on which you will be able to enter an IPFS URL from an uploaded \*.json file in the same way you would do when minting an ERC-712 NFT. + +### Example: + +```json JSON +//Endpoint: /v3/multitoken/deploy, where: + +"uri": "https://bafkreiebg3ugqtumak2ueyf2j2sbggt47hxjvbozkxbgyssebufmbgp3fa", +``` diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/nonce-what-is-it-and-optional-use.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/nonce-what-is-it-and-optional-use.md new file mode 100644 index 00000000..0a590df4 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/nonce-what-is-it-and-optional-use.md @@ -0,0 +1,71 @@ +--- +title: "Nonce - What is it and optional use" +slug: "nonce-what-is-it-and-optional-use" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 17:43:30 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 26 2024 06:59:50 GMT+0000 (Coordinated Universal Time)" +--- +In blockchain technology, the `nonce` is a transaction counter that helps to prevent double-spending and replay attacks on a blockchain network. This value is attached to each Ethereum and EVM-compatible chain sender address. + +Ethereum and other EVM-compatible blockchains require the `nonce` value for each transaction to ensure that the same transaction is not executed twice and that no one can replay a previously sent transaction. + +With Tatum, when the `nonce` is not specified when making a transaction on Ethereum and other EVM-compatible chains, our Engine automatically adds it based on the sender's address. + +> 📘 The Tatum engine has a delay when automatically calculating the nonce. Users with a high transaction broadcast volume should use a manual nonce value. Otherwise, errors about "replacement transaction" will be common. + +## Finding the nonce value + +### v3 REST API + +You can get the current nonce value for their Ethereum sender address by making an API call. + +- Endpoint: + +**Example:** + +```json cURL +curl --location 'https://api.tatum.io/v3/ethereum/transaction/count/0x271ebc3C939Db4d0######' \ +--header 'x-api-key: {Mainnet_API_KEY}' +//response: +4887 // Current nonce value in decimals +``` + +### RPC node request + +You can also get the current nonce value using an Ethereum node's RPC call. + +**Example:** + +```json cURL +curl --location 'https://api.tatum.io/v3/blockchain/node/ETH/' \ +--header 'x-api-key: {Mainnet_API_KEY}' \ +--header 'Content-Type: application/json' \ +--data '{ + "jsonrpc":"2.0", + "method":"eth_getTransactionCount", + "params":[ + "0x271ebc3C939Db4d0######'", + "latest" + ], + "id":1 + }' +//response: +{ + "jsonrpc": "2.0", + "id": 1, + "result": "0x1316" //needs conversion to decimal +} +``` + +## Nonce value and dropped transactions + +### Single transaction + +If a transaction with nonce value X is dropped or doesn't get included in a block, the nonce value for that account doesn't increase. The nonce is only increased once a transaction is successfully included in a block. + +### Multiple transactions + +If you try to send multiple transactions at the same time, each transaction must have `nonce+1,` `nonce+2`, `nonce+3`, `nonce+4`, etc. If for some reason the transaction with `nonce+2` gets dropped (low gas price, network congestion, etc.), the transactions with values `nonce+3` and `nonce+4` will be stuck in the mempool and won't be mined until the transaction with `nonce+2` is mined. + +To solve this, you would need to re-send the transaction with `nonce+2` with enough gas for it to be mined. Once the transaction with `nonce+2` would be mined, any subsequent transactions with higher nonce value should be able to be mined too. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/smart-contract-verification.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/smart-contract-verification.md new file mode 100644 index 00000000..6b8a9d9e --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/smart-contract-verification.md @@ -0,0 +1,91 @@ +--- +title: "Smart Contract Verification" +slug: "smart-contract-verification" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 07:34:26 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 07:34:26 GMT+0000 (Coordinated Universal Time)" +--- +You can verify Smart Contracts deployed using the Tatum API on Blockchain Explorers. + +> 📘 The source is available at [the following link](https://github.com/tatumio/smart-contracts/blob/master/README.md). + +[block:parameters] +{ + "data": { + "h-0": "Type", + "h-1": "Compiler Version", + "h-2": "Optimized Enabled", + "h-3": "Source Code", + "h-4": "Link", + "0-0": "Tatum ERC-20", + "0-1": "EVM Chains: v0.8.18+commit.87f61d96", + "0-2": "Yes; 200 runs", + "0-3": "Single file, MIT licensed", + "0-4": "[TatumErc20CappedToken.sol](https://github.com/tatumio/smart-contracts/blob/master/verification/TatumErc20CappedToken.sol)", + "1-0": "Tatum ERC-20", + "1-1": "TRON: tron_v0.8.18+commit.f18bedfe", + "1-2": "Yes; 200 runs", + "1-3": "Single file, MIT licensed", + "1-4": "[TatumErc20CappedToken.sol](https://github.com/tatumio/smart-contracts/blob/master/verification/TatumErc20CappedToken.sol)", + "2-0": "Tatum ERC-721", + "2-1": "EVM Chains: v0.8.18+commit.87f61d96", + "2-2": "Yes; 200 runs", + "2-3": "Single file, MIT licensed", + "2-4": "[TatumTron721.sol](https://github.com/tatumio/smart-contracts/blob/master/verification/TatumTron721.sol)", + "3-0": "Tatum ERC-721", + "3-1": "TRON: tron_v0.5.18+commit.6124c56", + "3-2": "Yes; 200 runs", + "3-3": "Single file, MIT licensed", + "3-4": "[Tatum721General.sol](https://github.com/tatumio/smart-contracts/blob/master/verification/Tatum721General.sol)", + "4-0": "Tatum ERC-1155", + "4-1": "EVM Chains: 0.8.7+commit.e28d00a7 \nTRON: tron_v0.5.18+commit.6124c56", + "4-2": "Yes; 200 runs", + "4-3": "Single file, MIT licensed", + "4-4": "[Tatum1155.sol](https://github.com/tatumio/smart-contracts/blob/master/verification/Tatum1155.sol)", + "5-0": "Tatum NFT Auction", + "5-1": "EVM Chains: 0.8.7+commit.e28d00a7 \nTRON 0.5.5 or 0.6.12", + "5-2": "Yes; 200 runs", + "5-3": "Single file, MIT licensed", + "5-4": "[NftAuction.sol](https://github.com/tatumio/smart-contracts/blob/master/verification/NftAuction.sol)", + "6-0": "Tatum Marketplace Listing", + "6-1": "EVM Chains: 0.8.7+commit.e28d00a7 \nTRON tron_v0.5.18+commit.6124c56", + "6-2": "Yes; 200 runs", + "6-3": "Single file, MIT licensed", + "6-4": "[MarketplaceListing.sol](https://github.com/tatumio/smart-contracts/blob/master/verification/MarketplaceListing.sol)" + }, + "cols": 5, + "rows": 7, + "align": [ + "left", + "left", + "left", + "left", + "left" + ] +} +[/block] + + +### Example of a contract verified on BSC for BEP-20 + +[block:image] +{ + "images": [ + { + "image": [ + "https://files.readme.io/d9cd3cf-uida23TTw-qORrHtlSmGcO1feAM-r44BoA.png", + "", + "" + ], + "align": "center" + } + ] +} +[/block] + + +## Good to Know + +- **BSC** - Our contract uses the compiler available at the time of publication. Newer versions have fixed some minor bugs. The impact of these bugs, however, is low and not significant. +- **SOL** - Verifying an NFT on Solana means that the NFT is a part of the collection (setting the `Verified` parameter to `true` for the NFT). To know more about Solana collections and verification, refer to the [Solana user documentation](https://docs.metaplex.com/programs/token-metadata/certified-collections). diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/token-decimals-erc-20-or-compatible.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/token-decimals-erc-20-or-compatible.md new file mode 100644 index 00000000..5c27e4eb --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/evm-like-ethereum-1/token-decimals-erc-20-or-compatible.md @@ -0,0 +1,37 @@ +--- +title: "Token decimals (ERC-20 or compatible)" +slug: "token-decimals-erc-20-or-compatible" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 17:22:00 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 17:22:00 GMT+0000 (Coordinated Universal Time)" +--- +**Decimals** refer to how divisible a token can be, from 0 (not divisible at all) to 18 (very divisible), and could even be higher if required. + +At this time, we do not have a comprehensive list, by token, on what's the maximum amount of decimal places you need to consider. You may use the blockchain explorer and find the token you are interested in. The `symbol` and `decimal` should be accessible. + +If you still can't find the related token details, try going after the token's documentation via web search. + +### Example based on sending ERC-20 via JavaScript: + +```javascript JavaScript +import {sendEthOrErc20Transaction} from '@tatumio/tatum'; +/** + * Send Ethereum or supported ERC20 transaction to the blockchain. + * @param chain - chain to work with + * @param fromPrivateKey - private key of sender address. Private key, or signature Id must be present. + * @param contractAddress - address of ERC20 token + * @param digits - number of decimal points that ERC20 token has + * @param amount - amount to be sent + * @param to - blockchain address to send ERC20 token to + * @returns transaction id of the transaction in the blockchain + */ + const transaction = await sendEthOrErc20Transaction({ + chain: Currency.ETH, + fromPrivateKey: '##_related_pric_address_here_##', + contractAddress: '##_related_contract_address_here_##', + digits: 10, //This is the token decimals value + amount: "100000", + to: "##_destination_address_here_##" +}); +``` diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/mnemonic-derivation-path.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/mnemonic-derivation-path.md new file mode 100644 index 00000000..b20ddfbe --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/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/v1.0/TROUBLESHOOTING/blockchain-operations-1/security-malicious-address.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/security-malicious-address.md new file mode 100644 index 00000000..673e5d16 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/security-malicious-address.md @@ -0,0 +1,11 @@ +--- +title: "Security - Malicious Address" +slug: "security-malicious-address" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 21:53:44 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:49:45 GMT+0000 (Coordinated Universal Time)" +--- +Tatum provides a "[Malicious address](https://apidoc.tatum.io/tag/Malicious-address/)" endpoint to recognize blacklisted addresses. When a blacklisted address is detected, the endpoint response body will return `invalid`. + +> 📘 Malicious address leverages [blockmate.io](https://www.blockmate.io/) and [cryptoscamdb.org](https://cryptoscamdb.org/) as data sources. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/solana-2.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/solana-2.md new file mode 100644 index 00000000..1e84f6d0 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/solana-2.md @@ -0,0 +1,8 @@ +--- +title: "Solana" +slug: "solana-2" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:43:18 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:43:18 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/solana-2/solana-indexing-and-confirmation.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/solana-2/solana-indexing-and-confirmation.md new file mode 100644 index 00000000..bc515e1c --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/solana-2/solana-indexing-and-confirmation.md @@ -0,0 +1,29 @@ +--- +title: "Solana - Indexing and Confirmation" +slug: "solana-indexing-and-confirmation" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:45:22 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:49:13 GMT+0000 (Coordinated Universal Time)" +--- +For preflight checks and transaction processing, Solana nodes choose which bank state to query based on a commitment requirement set by the client. The commitment describes how finalized a block is at that point in time. + +## Solana blocks - state in descending order of commitment + +### Finalized + +The node will query the most recent block confirmed by supermajority of the cluster as having reached maximum lockout, meaning **the cluster has recognized this block as finalized**. + +### Confirmed + +The node will query the most recent block that has been voted on by supermajority of the cluster. + +- It incorporates votes from gossip and replay. +- It does not count votes on descendants of a block, only direct votes on that block. +- This confirmation level also upholds "optimistic confirmation" guarantees in release 1.3 and onwards. + +### Processed + +The node will query its most recent block. Note that the block may still be skipped by the cluster. + +> 📘 It's recommended to query blocks with a "finalized" state. These should take about 2-3 minutes. More information is avaialble at [the following link](https://solana.com/docs/rpc/http#configuring-state-commitment). diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron.md new file mode 100644 index 00000000..b5537791 --- /dev/null +++ b/v1.0/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/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/estimate-fee-and-feelimit-for-trx-trc10-and-trc20.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/estimate-fee-and-feelimit-for-trx-trc10-and-trc20.md new file mode 100644 index 00000000..17110940 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/estimate-fee-and-feelimit-for-trx-trc10-and-trc20.md @@ -0,0 +1,53 @@ +--- +title: "TRON - Estimate Fee and FeeLimit for TRX, TRC10 and TRC20" +slug: "estimate-fee-and-feelimit-for-trx-trc10-and-trc20" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 17:17:01 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Feb 09 2024 08:52:50 GMT+0000 (Coordinated Universal Time)" +--- +Transaction fees on the TRON network are calculated based on energy, bandwidth, and transaction type. + +## How Tron fees are calculated + +- **Normal TRX transactions** cost bandwidth points. Users can access the free daily bandwidth points (5000) or freeze their TRX to gain more. When bandwidth points aren’t enough, TRX will be given directly from the sending account. Required TRX is the number of bytes \* 10 SUN. (1 TRX = 1,000,000 SUN). +- **Smart contracts** cost energy but need bandwidth points to broadcast and confirm the transaction. The bandwidth cost is the same as above. +- **Query transactions** are free since they don’t cost energy or bandwidth. + +## Sending TRC-10, TRC-20 (like Tether USDT), and "FAILED - Out of Energy" + +Sending Tokens over the TRON network has a higher price in energy. + +### Good to know + +- Tron's latest [governance proposal](https://github.com/tronprotocol/tips/blob/master/tip-491.md) increased the price of energy. +- Make sure you have at least **50 TRX** on your available balance to pay for network fees. + +> 📘 The FeeLimit for TRC10 and TRC20 tokens over Tron is a [complex parameter to calculate](https://github.com/tronprotocol/java-tron/issues/2982). + +You can get an approximate idea about the `FeeLimit` via the following RPC query example: + +```json cURL +curl --location 'https://api.tatum.io/v3/blockchain/node/tron-mainnet/wallet/getchainparameters' \ +--header 'x-api-key:{Mainnet_API_KEY}' +//response: +{ + "chainParameter": [ + { + "key": "getMaintenanceTimeInterval", + "value": 21600000 + }, + { + "key": "getAccountUpgradeCost", + "value": 9999000000 + }, + { + "key": "getCreateAccountFee", + "value": 100000 + }, + { + "key": "getTransactionFee", // The value we are looking for + "value": 1000 + }, +... +``` diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-error-trontxexpired.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-error-trontxexpired.md new file mode 100644 index 00000000..303d97f9 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-error-trontxexpired.md @@ -0,0 +1,30 @@ +--- +title: "TRON - \"tron.tx.expired\" Error" +slug: "tron-error-trontxexpired" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 12:53:05 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 12:25:04 GMT+0000 (Coordinated Universal Time)" +--- +When working with the TRON blockchain, you may encounter the "`tron.tx.expired`" error, indicating that the transaction has expired and cannot be broadcast after a specific timestamp. + +The error occurs when a transaction is not broadcast within the specified expiration time: + +- **The default TRON transaction expiration time is 60 seconds**. +- If the period between transaction creation and broadcast exceeds 60 seconds, the transaction is considered expired. + +Example error: + +```json JSON +"response": { + "statusCode": 403, + "errorCode": "tron.tx.expired", + "message": "Transaction expired and cannot be broadcast after 1705324314000." +} +``` + +> 📘 Additional information is available at [the following link](https://developers.tron.network/docs/faq#12-broadcast-response-code). + +## Good to know + +- KMS users need to be mindful of their configuration to check pending transactions at a rate below 60 seconds. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-transaction-could-not-be-found.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-transaction-could-not-be-found.md new file mode 100644 index 00000000..34017e2a --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-transaction-could-not-be-found.md @@ -0,0 +1,17 @@ +--- +title: "TRON - Transaction could not be found" +slug: "tron-transaction-could-not-be-found" +excerpt: "" +hidden: false +createdAt: "Wed Jan 31 2024 11:45:32 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 08:36:15 GMT+0000 (Coordinated Universal Time)" +--- +When broadcasting a TRON transaction to the blockchain, even if you get a transaction hash from Tatum, the transaction can be dropped from the TRON blockchain mempool. + +If a successfully broadcasted transaction is reaching the TRON mempool, there can be many reasons for it to be dropped: + +- `mempool size limit` could have been reached (low-priority transactions fall victim to mempool pruning first) +- The transaction could have reached the set mempool expiration time (Time-To-Live) +- Double-spending + +Assuming the transaction is valid, if this issue happens to you only during certain periods during the day, it might be during higher traffic hours when fees get bloated. In this case, we recommend increasing the fee so that your transactions will be less likely to be dropped or timed out. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-troubleshooting-tapos-check-error.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-troubleshooting-tapos-check-error.md new file mode 100644 index 00000000..86e37e63 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-troubleshooting-tapos-check-error.md @@ -0,0 +1,32 @@ +--- +title: "TRON - Troubleshooting Tapos check error" +slug: "tron-troubleshooting-tapos-check-error" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:23:29 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:25:34 GMT+0000 (Coordinated Universal Time)" +--- +When utilizing the TRON network, you may encounter the error "`tron.blockchain.broadcast.error`" with the cause identified as "`Tapos check error.`" + +The Tapos error check specifically points to an issue with the "`ref_block_hash`" parameter in the transaction payload. + +> 📘 Additional information is available at [the following link](https://developers.tron.network/docs/faq#12-broadcast-response-code). + +## Example Payload + +```json JSON +"{\"visible\":false,\"txID\":\"d29228b006181447a75796953824fff1de55be30a964ffdba2a88ff####\",\"raw_data\":{\"contract\":[{\"parameter\":{\"value\":{\"data\":\"a9059cbb0000000000000000000000009f4e3eb9ae86450bd2ec4be7c88004d215b47b0900000000000000000000000000000000000000000000000000000000####\",\"owner_address\":\"4113c83df83b14e8ff33f9aa63c48e41d####\",\"contract_address\":\"#####\"},\"type_url\":\"#####\"},\"type\":\"TriggerSmartContract\"}],\"ref_block_bytes\":\"85c5\",\"ref_block_hash\":\"d06bf1458a2f###\",\"expiration\":1705324902000,\"fee_limit\":40000000,\"timestamp\":1705324843822},\"raw_data_hex\":\"0a0285c52208d06bf1458a2f760040f0eca3e######48913\",\"signature\":[\"58c2f618e1e888bdbca29e7f4243ccdb19216bfbd32a4b6f363d5242dfd7ffdb912d3af8e7c64399dcb72dcb3aac7c83c6cfa6f####\"]}" +``` + +The reference block specified by the "`ref_block_hash`" parameter needs to be on the same chain as the transaction. If these are not aligned, the Tapos check error may occur. + +## Example Error + +```json +{ + "statusCode": 403, + "errorCode": "tron.blockchain.broadcast.error", + "message": "Unable to broadcast transaction", + "cause": "Tapos check error." +} +``` diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-unable-to-find-account.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-unable-to-find-account.md new file mode 100644 index 00000000..a6cde571 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/tron/tron-unable-to-find-account.md @@ -0,0 +1,26 @@ +--- +title: "TRON - Unable to find account" +slug: "tron-unable-to-find-account" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 17:27:30 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 17:28:28 GMT+0000 (Coordinated Universal Time)" +--- +You may encounter the following error `tron.account.not.found` when you try to get the balance from a TRON address that has some tokens, like for example USDT. Getting this error, or similar, is related to an "`inactive account"`. + +> 📘 The affected TRON blockchain address requires getting a deposit of TRX or TRC-10 to activate the address on the TRON network. Additional information is available via TRON documentation at [the following link](https://developers.tron.network/docs/account#account-activation). + +### Error Example: + +```json cURL +{ + "statusCode": 403, + "errorCode": "tron.account.not.found", + "message": "No such account for address:
    " +} +``` + +## How to activate the address + +- Send any amount of TRX or TRC-10 tokens from an existing account to the new account. +- Call Java-tron's [wallet/createaccount] API to create a transaction from an existing account, then sign the transaction and broadcast it to the TRON network. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/unconfirmed-and-dropped-transactions.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/unconfirmed-and-dropped-transactions.md new file mode 100644 index 00000000..d0de11bb --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/unconfirmed-and-dropped-transactions.md @@ -0,0 +1,75 @@ +--- +title: "Transaction Unconfirmed, Pending or Dropped" +slug: "unconfirmed-and-dropped-transactions" +excerpt: "" +hidden: false +createdAt: "Sat Feb 10 2024 10:48:06 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 10:20:22 GMT+0000 (Coordinated Universal Time)" +--- +When a transaction is successfully broadcasted, you will get a transaction hash. At this stage, the transaction entered the mempool and remains "Pending", waiting for confirmation. + +Confirming a transaction can take from seconds, to minutes, to many hours. Factors such as the total network activity or congestion, hashrate, and transaction fees impact the time it takes for a transaction to get confirmed. + +For example, the usual average confirmation time for a BTC transaction is about 10 minutes. However, if the Bitcoin network is congested, there may be a backlog of transactions in the Mempool awaiting verification. The same applies to any other network. + +In most cases, your transactions will be confirmed. How long this takes depends on the chain network, based on how much fee was allocated and mempool congestion. + +### Two things can happen to unconfirmed transactions in the mempool: + +- The transaction is `confirmed`, eventually. +- The transaction is `dropped`. + +> 📘 Mempool: the "waiting room" for transactions that have not yet been validated by a miner and added to a next block on the blockchain. + +## Get transaction by hash + +### EVM (like Ethereum): + +- `Unconfirmed` transactions return an `error` +- `Dropped` transactions return an `error` + +**Example Error:** + +```json cURL +curl --location 'https://api.tatum.io/v3/ethereum/transaction/0xb491a90c665ab8a3bcebb42cbc30ded73bf40eae40d45a365895a33595d347dc' \ +--header 'x-api-key: {API_KEY}' +//response: +{ + "statusCode": 403, + "errorCode": "eth.tx.not.found", + "message": "Transaction 0xb491a90c665ab8a3bcebb42cbc30ded73bf40eae40d45a365895a33595d347dc not found. Possible not exists or is still pending.", + "dashboardLog": "https://dashboard.tatum.io/logs?id=65###315a" +} +``` + +### UTXO (like Bitcoin) + +- `Unconfirmed`: transactions return with the parameter `"blocknumber": null` +- `Dropped` transactions return an `error` + +**Example of BTC transaction waiting in mempool** + +```json cURL +curl --location 'https://api.tatum.io/v3/bitcoin/transaction/61749d00c59548b3b5c6f394a218a1c55b0f99020ca49cbec5c0a590c74ee89a' \ +--header 'x-api-key: {API_KEY}' +//response: +{ + "blockNumber": null, //Since the transaction is unconfirmed, there can't be a "blockNumber" + "fee": 4245, + "hash": "61749d00c59548b3b5c6f394a218a1c55b0f99020ca49cbec5c0a590c74ee89a", + "hex": "0200000000... +``` + +**Example of BTC transaction dropped** + +```json cURL +curl --location 'https://api.tatum.io/v3/bitcoin/transaction/61749d00c59548b3c5c6f394a218a1c55b0f99020ca49cbec5c0a590c74ee89a' \ +--header 'x-api-key: {API_KEY}' +//response: +{ + "statusCode": 403, + "errorCode": "btc.tx.not.found", + "message": "Transaction 61749d00c59548b3c5c6f394a218a1c55b0f99020ca49cbec5c0a590c74ee89a not found. Possible not exists or is still pending.", + "dashboardLog": "https://dashboard.tatum.io/logs?id=65c75###22ae3d3" +} +``` diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin.md new file mode 100644 index 00000000..4b9b84d4 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin.md @@ -0,0 +1,8 @@ +--- +title: "UTXO (like Bitcoin)" +slug: "utxo-like-bitcoin" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 16:35:30 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 16:35:30 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/bitcoin-cpfp-and-stuck-transactions-in-the-mempool.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/bitcoin-cpfp-and-stuck-transactions-in-the-mempool.md new file mode 100644 index 00000000..7a8d4ec9 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/bitcoin-cpfp-and-stuck-transactions-in-the-mempool.md @@ -0,0 +1,47 @@ +--- +title: "BTC - CPFP and stuck transactions in the mempool" +slug: "bitcoin-cpfp-and-stuck-transactions-in-the-mempool" +excerpt: "" +hidden: false +createdAt: "Mon Jan 29 2024 10:22:15 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Feb 09 2024 08:48:24 GMT+0000 (Coordinated Universal Time)" +--- +If your Bitcoin transaction is stuck, and you're the recipient, you can clear it using CPFP (child-pays-for-parent). This is an alternative to the sender's ability to do so with RBF when this has not been enabled in a transaction stuck in the mempool. + +## How does Child-Pays-for-Parent (CPFP) work? + +The idea of CPFP is that you "own" the privateKey of a recipient address of a transaction that hasn't been confirmed in a block yet and you want to use that coin ASAP. To achieve this, you will include that unconfirmed transaction in a new transaction and you will pay a high enough fee to encourage a miner to include both the original (parent) transaction and the new (child) transaction in a block. As a result, the parent and child transactions will clear simultaneously. + +> 📘 CPFP is just an incentive scheme that can be used for transaction selection by miners. There might be reasons that the child can't be selected to be put into a block, and this will prevent the parent UTXO from ever being put into a block. + +## Spending unconfirmed UTXOs + +1. Check Transaction Status: Use a blockchain explorer or wallet software to monitor the status of your original transaction. Make sure it is still unconfirmed and stuck. See [BTC mempool explorer](https://mempool.space/). +2. Find the `vout` of the unconfirmed transaction. Example: + +```json JSON +"vout": \[ + { + "value": 0.01000000, + "n": 0, + "scriptPubKey": { + "asm": "OP_HASH160 f079f77f2ef0ef1187093379d128ec28d0b4bf76 OP_EQUAL", + "hex": "a914f079f77f2ef0ef1187093379d128ec28d0b4bf7687", + "reqSigs": 1, + "type": "scripthash", + "addresses": [ + "2NFAkGiwnp8wvCodRBx3smJwxncuG3hndn5" + ] + } + }, +``` + +3. Find in the `vout` the object the one that matches your address. (Here, it's the only one.) The `n` value is your `vout`. +4. Create a raw transaction using your unconfirmed transaction as input. +5. Double the transaction fees (or more). + +> 📘 More information about CPFP is available at [the following link](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/blob/master/05_3_Funding_a_Transaction_with_CPFP.md). + +## Good to know + +To accelerate a CPFP transaction, you will have to estimate a fee high enough to get both parent and child transactions processed. The Tatum JS SDK has a public extension facilitating the estimate - [CPFP Fee Estimator](https://www.npmjs.com/package/@tatumio/cpfp-fee-estimator). diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/bitcoin-replace-by-fee-and-stuck-transactions-in-the-mempool.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/bitcoin-replace-by-fee-and-stuck-transactions-in-the-mempool.md new file mode 100644 index 00000000..555fbccd --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/bitcoin-replace-by-fee-and-stuck-transactions-in-the-mempool.md @@ -0,0 +1,29 @@ +--- +title: "BTC - RBF and stuck transactions in the mempool" +slug: "bitcoin-replace-by-fee-and-stuck-transactions-in-the-mempool" +excerpt: "" +hidden: false +createdAt: "Mon Jan 29 2024 11:06:09 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Feb 09 2024 08:48:40 GMT+0000 (Coordinated Universal Time)" +--- +Bitcoin Replace-By-Fee (RBF) is a feature that allows you to replace a stuck or unconfirmed Bitcoin transaction in the mempool - a temporary storage area for pending transactions, with a new one that includes a higher transaction fee. + +RBF is particularly useful during times of network congestion when transactions might take longer to get confirmed due to high demand. + +## How Does Replace-By-Fee (RBF) Work? + +When you broadcast a Bitcoin transaction, a transaction fee comes along with it to incentivize miners to include the transaction in the next block. + +However, if the network becomes congested, or if the initial fee is too low, the transaction might get stuck in the mempool. With RBF, you have the option to increase the transaction fee on an unconfirmed transaction, making it more attractive for miners to prioritize it. + +## Replacing a Stuck Transaction using RBF + +To replace a transaction that's stuck in the mempool using RBF, follow these steps: + +1. **Check Transaction Status**: Use a blockchain explorer or wallet software to monitor the status of your original transaction. Make sure it is still unconfirmed and stuck. +2. **Confirm RBF is enabled**: Look for the RBF flag in the tx on a BTC mempool explorer. +3. **Create a Replacement Transaction**: Create a new transaction with the same inputs as the stuck transaction but with a higher fee. This is essentially a "double-spend" transaction but with a higher fee. The higher fee incentivizes miners to prioritize the new transaction. +4. **Broadcast the Replacement Transaction**: Once the replacement transaction is created, broadcast it to the Bitcoin network. Miners will see the higher fee and prioritize it. +5. **Wait for Confirmation**: Monitor the replacement transaction to see if it gets confirmed in a block. If miners prioritize the new transaction, it should confirm relatively quickly. + +> 📘 Via Tatum, only transactions submitted through RPC calls can enable RBF. For additional information on RBF, check [the following guide.](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/blob/master/05_2_Resending_a_Transaction_with_RBF.md) Alternatively, see our CPFP article. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-fee-estimate-copy.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-fee-estimate-copy.md new file mode 100644 index 00000000..8baa4b39 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-fee-estimate-copy.md @@ -0,0 +1,66 @@ +--- +title: "BCASH - Fee Estimate" +slug: "btc-fee-estimate-copy" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:15:27 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:18:32 GMT+0000 (Coordinated Universal Time)" +--- +Bitcoin Cash (BCH) is a UTXO-based chain, where the Fee estimate for a transaction fee comes from two main parameters: + +- Approximate fee per kilobyte +- Transaction size + +## BTC Fee Estimate Formula + +**Estimated Fee** == "`approximate fee per kilobyte`" x "`transaction size`" + +### Calculating the approximate fee per kilobyte + +To estimate the fee for a BCH transaction, you can use the RPC API cURL `estimatefee` method: + +```json cURL +curl --location 'https://api.tatum.io/v3/blockchain/node/BCH' \ +--header 'Content-Type: application/json' \ +--header 'x-api-key: {API_KEY}' \ +--data '{ + "jsonrpc": "1.0", + "id":"1", + "method": "estimatefee", + "params": [] +}' +//response: +{ + "result": 0.00001, // This is the value you are looking for + "error": null, + "id": "1" +} +``` + +> 📘 More information at [the following link](https://docs.bitcoincashnode.org/doc/json-rpc/estimatefee/). + +### Calculating the Transaction Size + +**Transaction Size (in bytes) = (Number of Inputs x 148) + (Number of Outputs x 34) + 10** + +- **Number of Inputs**: The number of transaction inputs (unspent transaction outputs or UTXOs) that your transaction is spending. +- **Number of Outputs**: The number of transaction outputs, including the recipient's address and any change addresses. +- **10 bytes**: A fixed overhead for the transaction header. + +**Let's break it down:** + +- **Number of Inputs x 148 bytes**: Each input typically takes 148 bytes. This includes the previous transaction's reference (36 bytes) plus a scriptSig (typically 110 bytes) for unlocking the UTXO and some additional bytes for metadata. +- **Number of Outputs x 34 bytes**: Each output typically takes 34 bytes. This includes 8 bytes for the amount in satoshis, 1 byte for the OP_RETURN code (if used), and 25 bytes for the recipient's public key or address. + +## Example BCH transaction + +- Number of Inputs = 2 +- Number of Outputs = 2 + +### Using the formula: + +1. Transaction Size (in bytes) = (2 x 148) + (2 x 34) + 10 +2. Transaction Size (in bytes) = 296 + 68 + 10 +3. Transaction Size (in bytes) = 374 bytes + +So, the transaction size in this example is 374 bytes. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-fee-estimate.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-fee-estimate.md new file mode 100644 index 00000000..9c4090ad --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-fee-estimate.md @@ -0,0 +1,84 @@ +--- +title: "BTC - Fee Estimate" +slug: "btc-fee-estimate" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:11:59 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:14:14 GMT+0000 (Coordinated Universal Time)" +--- +Bitcoin (BTC) is a UTXO-based chain, where the Fee estimate for a transaction fee comes from two main parameters: + +- Approximate fee per kilobyte +- Transaction size + +## BTC Fee Estimate Formula + +**Estimated Fee** == "`approximate fee per kilobyte`" x "`transaction size`" + +### Calculating the approximate fee per kilobyte + +To estimate the fee for a BTC transaction, you can use the Tatum endpoint for BTC "fee estimate" + +```json cURL +curl --location 'https://api.tatum.io/v3/blockchain/fee/BTC' \ +--header 'x-api-key: {API_KEY}' \ +--data '' +//response: +{ + "fast": 13.5, // Satoshis per byte == 0.0135 satoshis per kilobyte. + "medium": 5, + "slow": 4, + "block": 813488, //last used to calculate fee from + "time": "2023-10-23T12:14:42.817Z" // last time when calculation was executed +} +``` + +> 📘 More information at [the following link](https://apidoc.tatum.io/tag/Blockchain-fees/#operation/getBlockchainFee). + +There's also the option to make a cURL RPC node request: + +```Text cURL +curl --location 'https://api.tatum.io/v3/blockchain/node/BTC/' \ +--header 'Content-Type: application/json' \ +--header 'x-api-key: {API_KEY}' \ +--data '{ + "jsonrpc":"1.0", + "id":"curltext", + "method":"estimatesmartfee", + "params":[2] // specifies the target confirmation time in blocks. +//response: +{ + "result": { + "feerate": 0.00001, // Satoshis per Kilobyte + "blocks": 2 + }, + "error": null, + "id": "curltext" +} +``` + +### Calculating the Transaction Size + +**Transaction Size (in bytes) = (Number of Inputs x 148) + (Number of Outputs x 34) + 10** + +- **Number of Inputs**: The number of transaction inputs (unspent transaction outputs or UTXOs) that your transaction is spending. +- **Number of Outputs**: The number of transaction outputs, including the recipient's address and any change addresses. +- **10 bytes**: A fixed overhead for the transaction header. + +**Let's break it down:** + +- **Number of Inputs x 148 bytes**: Each input typically takes 148 bytes. This includes the previous transaction's reference (36 bytes) plus a scriptSig (typically 110 bytes) for unlocking the UTXO and some additional bytes for metadata. +- **Number of Outputs x 34 bytes**: Each output typically takes 34 bytes. This includes 8 bytes for the amount in satoshis, 1 byte for the OP_RETURN code (if used), and 25 bytes for the recipient's public key or address. + +## Example BTC transaction + +- Number of Inputs = 2 +- Number of Outputs = 2 + +### Using the formula: + +1. Transaction Size (in bytes) = (2 x 148) + (2 x 34) + 10 +2. Transaction Size (in bytes) = 296 + 68 + 10 +3. Transaction Size (in bytes) = 374 bytes + +So, the transaction size in this example is 374 bytes. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-maxfeerate-limit-error.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-maxfeerate-limit-error.md new file mode 100644 index 00000000..edf347af --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-maxfeerate-limit-error.md @@ -0,0 +1,46 @@ +--- +title: "BTC - Maxfeerate Limit Error" +slug: "btc-maxfeerate-limit-error" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 10:13:19 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 10:13:24 GMT+0000 (Coordinated Universal Time)" +--- +Tatum Bitcoin Nodes are set with a default `maxfeerate` limit of `0.10 BTC/kb`. + +When attempting to broadcast a transaction with a higher fee than the limit, you may receive an error looking as follows: + +```json JSON +data: { + statusCode: 403, + errorCode: 'btc.blockchain.broadcast.error', + message: 'Unable to broadcast transaction. Set lower fee or check change + address to be present', + cause: 'max-fee-exceeded' +} +``` + +## Workaround + +It is possible to bypass the `maxfeerate` limit via the RPC node call method `sendrawtransaction`, which submits a raw transaction (serialized, hex-encoded) to our Bitcoin nodes. + +### Example RPC raw request + +In the example, the `maxfeerate` parameter is set at `12.0 BTC/kb`, overriding the limit set on the node. + +```json cURL +url --location 'https://api.tatum.io/v3/blockchain/node/BTC/{{apikey}}' \ +--header 'Content-Type: application/json' \ +--data '{ + "jsonrpc": "2.0", + "id": "someid", + "method": "sendrawtransaction", + "params": [ + "020000000001016fa9e19f2d988a745df84c8bb51bbe5db1cd98c49778744f9d4d228f71f75a4a0100000000ffffffff0116f10000000000001600148683f923f0b610e029ecd00c1aecc4cdda0d012b0247304402201373c6eb3cba8f827e0f70eb8e5a6e8c12bd12d1fb4264f6c5e75045da625f390220732cb45c3fe489067d1f47dfa799a07277574ccec7ccfb6f4f9cc14314d58e6801210382fc753a96946caeed8e1350dd2eecd44622a47f1fb755c2004a934a1d71c8ed00000000", + "12.0" + ] +}' + +``` + +> 📘 Additional information is available at [the followin link](https://developer.bitcoin.org/reference/rpc/sendrawtransaction.html#argument-2-maxfeerate). diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-transaction-broadcast-error.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-transaction-broadcast-error.md new file mode 100644 index 00000000..c1e5155c --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/btc-transaction-broadcast-error.md @@ -0,0 +1,65 @@ +--- +title: "BTC - Transaction Broadcast Error" +slug: "btc-transaction-broadcast-error" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 13:16:04 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Feb 08 2024 13:17:29 GMT+0000 (Coordinated Universal Time)" +--- +When broadcasting a BTC transaction, you may encounter errors looking as follows: + +```json JSON +{ + "statusCode": 403, + "errorCode": "btc.blockchain.broadcast.error", + "message": "Unable to broadcast transaction.", + "cause": "Request failed with status code 500" +} +``` + +## How to troubleshoot + +To troubleshoot, you will have to check how was the transaction made with "inputs", "outputs" and "amounts". + +### Example request: + +```json JSON +//Endpoint: "/v3/bitcoin/broadcast" +//Payload: +{ + "txData": "020000000001af4800000000000016001419619f650a88532d25fed24dc06aada4a0cb238d00000000", + "signatureId": "654cf9d2ca22c5a2a9c###" // Tatum KMS related +} +``` + +Take the raw txData and use the Bitcoin RPC method `testmempoolaccept`. + +**Example request:** + +```json cURL +curl -X POST -H "Content-Type: application/json" -d '{ + "id": "1", + "jsonrpc": "2.0", + "method": "testmempoolaccept", + "params": [ + [ + "020000000001af4800000000000016001419619f650a88532d25fed24dc06aada4a0cb238d00000000" + ] + ] +}' +//response: +{ + "jsonrpc": "2.0", + "error": { + "code": -32000, + "message": "Server error" + } +} +``` + +Based on the response, the transaction payload was built improperly and the blockchain refuses to accept it. In this case, it is best to review how you built your transaction based on inputs, outputs, and amounts. + +## Good to know + +1. You may decode the transaction using a reliable blockchain explorer, such as [BlockCypher](https://live.blockcypher.com/btc/decodetx/). +2. Analyze the decoded transaction to ensure its structure and content are correct. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/dust-amount-detected-in-one-output.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/dust-amount-detected-in-one-output.md new file mode 100644 index 00000000..0aa0c110 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/dust-amount-detected-in-one-output.md @@ -0,0 +1,27 @@ +--- +title: "Dust amount detected in one output" +slug: "dust-amount-detected-in-one-output" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 13:17:44 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Feb 08 2024 13:21:11 GMT+0000 (Coordinated Universal Time)" +--- +Dust refers to a small amount of coins within a UTXO transaction hash recipient address that is smaller than the gas fees required to transfer out. This makes said amount unspendable. + +For UTXO-based chains like Bitcoin, Dogecoin, Litecoin and related, small amounts of UTXOs can accumulate (as the result of the change from earlier sent payments), which, combined with higher fees, may result in a portion of the balance impossible to spend. + +## Why do I get a Dust Error? + +If the amount of a UTXO is smaller than the partial fee needed to transfer out, that UTXO cannot be used (with the current fee level). If all UTXOs are Dust, nothing can be sent. + +### Example: + +A Bitcoin address contains 0.0087 BTC. In reality, consisting of x3 UTXOs of: + +1. 0.0080 +2. 0.0002 +3. 0.0005 + +Considering a potential tx fee for each UTXO of 0.00055, the 0.0002 and 0.0005 amounts would be considered as Dust and thus, unspendable. Attempting to send 0.0087 would trigger a Dust UTXO error while attempting to send 0.0080 should get through. + +> 📘 See Bitcoin code for Dust threshold via [`GetDustThreshold`] at [the following link](https://github.com/bitcoin-sv/bitcoin-sv/blob/v1.0.8/src/primitives/transaction.h#L189). diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/transaction-already-exists-in-mempool.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/transaction-already-exists-in-mempool.md new file mode 100644 index 00000000..d42ab29b --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/utxo-like-bitcoin/transaction-already-exists-in-mempool.md @@ -0,0 +1,38 @@ +--- +title: "BTC - Transaction already exists in mempool" +slug: "transaction-already-exists-in-mempool" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 16:39:54 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Feb 09 2024 08:38:38 GMT+0000 (Coordinated Universal Time)" +--- +- **Errors**: `40X` +- **ErrorCode**: `btc.blockchain.broadcast.error` +- **Message**: Unable to broadcast transaction. Transaction already exists in mempool +- **Cause**: `txn-mempool-conflict` + +When attempting to broadcast a Bitcoin transaction, you may face a mempool rejection issue. When this happens, the rejection comes from the validator method `testmempoolaccept`. Tatum only adds a bit of clarity to the messaging. + +```json JSON +else if ( + rejectReason === 'txn-already-known' || + rejectReason === 'txn-already-in-mempool' || + rejectReason === 'txn-same-nonwitness-data-in-mempool' || + rejectReason === 'txn-mempool-conflict' + ) { + throw this.createError(BtcBasedErrors.TX_ALREADY_IN_MEMPOOL()).withCauseMessage(rejectReason) +``` + +> 📘 Find more information at [the following link](https://developer.bitcoin.org/reference/rpc/testmempoolaccept.html). + +## Good to know + +There can be several reasons for this rejection coming from the mempool validator: + +- **Invalid Transaction Format**: The transaction you're trying to broadcast might have an invalid format or structure. Bitcoin transactions are required to adhere to specific standards, and any deviation from these standards could result in an error when trying to broadcast the transaction. +- **Double Spending**: Bitcoin's security model relies on preventing double spending, where the same funds are used in multiple transactions. If the transaction you're trying to broadcast is attempting to double-spend the same inputs, it will likely be rejected. +- **Insufficient Fees**: Transactions on the Bitcoin network require a certain amount of transaction fees to incentivize miners to include them in a block. If the transaction fee is too low, miners might not prioritize your transaction, leading to rejection. +- **Transaction Inputs Already Spent**: If the inputs of the transaction you're trying to broadcast have already been spent in a previous transaction that's confirmed on the blockchain, your transaction will be considered invalid and rejected. +- **Network Connectivity Issues**: If there are network connectivity issues between your node and the rest of the Bitcoin network, it might prevent the transaction from being broadcasted successfully. + +> To troubleshoot and identify the specific reason for your error, inspect the details of the transaction you're trying to broadcast, including its inputs, outputs, fees, and format. diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/xrp-1.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/xrp-1.md new file mode 100644 index 00000000..978c5551 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/xrp-1.md @@ -0,0 +1,8 @@ +--- +title: "XRP" +slug: "xrp-1" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:20:03 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:20:03 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/blockchain-operations-1/xrp-1/xrp-account-not-found.md b/v1.0/TROUBLESHOOTING/blockchain-operations-1/xrp-1/xrp-account-not-found.md new file mode 100644 index 00000000..80d1163b --- /dev/null +++ b/v1.0/TROUBLESHOOTING/blockchain-operations-1/xrp-1/xrp-account-not-found.md @@ -0,0 +1,22 @@ +--- +title: "XRP - Account not found" +slug: "xrp-account-not-found" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:20:12 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:22:53 GMT+0000 (Coordinated Universal Time)" +--- +With XRP, every address is required to hold a small amount of XRP as a **Reserve** to be active and usable for transactions on the network. + +If you make a query to an XRP address that does not hold funds, you will likely get an error looking as follows or similar: + +```json JSON +{'statusCode': 403, 'errorCode': 'xrp.account.failed', 'message': 'Account not found. Code: 19'} +``` + +## Current reserve requirements on Mainnet + +- Base reserve: 10 XRP +- Owner reserve: 2 XRP per item + +> 📘 Reserve amounts are subject to change. Additional information is available at [the following link](https://xrpl.org/reserves.html). diff --git a/v1.0/TROUBLESHOOTING/contacting-support.md b/v1.0/TROUBLESHOOTING/contacting-support.md new file mode 100644 index 00000000..2bfeb8ed --- /dev/null +++ b/v1.0/TROUBLESHOOTING/contacting-support.md @@ -0,0 +1,48 @@ +--- +title: "Contacting Support" +slug: "contacting-support" +excerpt: "" +hidden: false +createdAt: "Mon Jan 29 2024 14:11:54 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Mar 07 2024 12:59:50 GMT+0000 (Coordinated Universal Time)" +--- +Should you come across issues while using Tatum services, you may reach out to our Support team. + +## Step_1: Keeping Up-to-date + +We update the core API, KMS, and our SDK regularly. Please make sure you have the latest update release and verify if the issue persists. + +## Step_2: Information gathering and ticket creation + +1. Retrieve the "`dashboardLog`" code from the **Error Response Body**. Looks as follows: + ```json JSON + { + "statusCode": ###, + "errorCode": "###", + "message": "###.", + "data": [ + "###error_verbose" + ], + "dashboardLog": "https://dashboard.tatum.io/logs?id=####" //The Support team needs this + } + ``` + > 📘 Error Investigations require the "dashboardLog" id. If you did not store it or lost it, go to the Tatum Dashboard and find it in the \[[Error Logs](https://dashboard.tatum.io/logs)] section. Copy the URL. +2. **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. +3. **Provide Detailed Information**: In the ticket, include the following: + - The "`dashboardLog`" id code OR the HyperLink of the URL of the Error log (from your Dashboard) + - IF you do not have the "`dashboardLog`", we will require the cURL with Header, Payload, and Response Body, showing all the steps required to reproduce the issue from start to finish. + - **Problem Statement**: A brief description of the issue and or Use Case. Including: + - **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. + - **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/v1.0/TROUBLESHOOTING/kms.md b/v1.0/TROUBLESHOOTING/kms.md new file mode 100644 index 00000000..cb7743a0 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/kms.md @@ -0,0 +1,8 @@ +--- +title: "KMS" +slug: "kms" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:36:17 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:36:18 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/kms/kms-daemon-mode-and-credit-consumption.md b/v1.0/TROUBLESHOOTING/kms/kms-daemon-mode-and-credit-consumption.md new file mode 100644 index 00000000..6a3ee173 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/kms/kms-daemon-mode-and-credit-consumption.md @@ -0,0 +1,21 @@ +--- +title: "KMS - Daemon mode and credit consumption" +slug: "kms-daemon-mode-and-credit-consumption" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 12:49:07 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 12:49:12 GMT+0000 (Coordinated Universal Time)" +--- +KMS in Daemon mode periodically checks for pending transactions every 5 seconds by default, costing 4 credits per minute. This means 4 (credits) \_60 (minutes) \_24 (hours) == 5760 credits/day. + +On top of that, there's a cost to sign transactions at a rate of x1 credit for every 500 txID signature attempts. + +To lower the baseline credit consumption, you may increase the periodicity checks. + +### Example: + +```shell CLI +tatum-kms daemon --period=15 +``` + +> 📘 Additional information is available at [the following link](https://github.com/tatumio/tatum-kms#daemon-mode). diff --git a/v1.0/TROUBLESHOOTING/kms/kms-environment-variables.md b/v1.0/TROUBLESHOOTING/kms/kms-environment-variables.md new file mode 100644 index 00000000..3dc86ccd --- /dev/null +++ b/v1.0/TROUBLESHOOTING/kms/kms-environment-variables.md @@ -0,0 +1,44 @@ +--- +title: "KMS - Environment Variables" +slug: "kms-environment-variables" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:39:30 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:39:30 GMT+0000 (Coordinated Universal Time)" +--- +KMS Environment variables must be stored inside the `.env` file. + +```curl +# required +TATUM_API_KEY=XXXXX-YOUR-API-KEY +# one of the following setups is required: password, VGS, Azure, or AWS +# password setup +TATUM_KMS_PASSWORD=XXXXPASSWORD +# VGS setup +TATUM_KMS_VGS_USERNAME=XXXXUSERNAME +TATUM_KMS_VGS_PASSWORD=XXXXPASSWORDVGS +TATUM_KMS_VGS_ALIAS=XXXVSGALIAS +# Azure setup +TATUM_KMS_AZURE_SECRETVERSION=XXVERSION +TATUM_KMS_AZURE_SECRETNAME=XXSECRETNAME +TATUM_KMS_AZURE_VAULTURL=XXXXVAULTURL +# AWS setup +TATUM_KMS_AWS_REGION=us-east-1 +TATUM_KMS_AWS_SECRET_NAME=YOUR_KMS_SECRET_NAME +TATUM_KMS_AWS_ACCESS_KEY_ID=XXXXXXXE +TATUM_KMS_AWS_SECRET_ACCESS_KEY=Xxxxx/Xxxxx +TATUM_KMS_AWS_SECRET_KEY=pwd +``` + +> 📘 You have to replace the placeholders with your own values. Additional information can be found over KMS Github page at [the following link](https://github.com/tatumio/tatum-kms#environment-variables). + +## Good to know + +You can encrypt your KMS wallets using one of the following ways: + +1. Password-based encryption +2. [VGS](https://www.verygoodsecurity.com/) account that holds the encryption/decryption key +3. [MS Azure](https://azure.microsoft.com/en-us) account that holds the encryption/decryption key +4. [AWS](https://aws.amazon.com/) account that holds the encryption/decryption key + +Depending on which way you choose, you pass the relevant information in the environment variables or `.env` file. The most straightforward option is to encrypt the wallets with a password, but you're free to choose any of the options. diff --git a/v1.0/TROUBLESHOOTING/kms/kms-general-faq.md b/v1.0/TROUBLESHOOTING/kms/kms-general-faq.md new file mode 100644 index 00000000..b5600770 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/kms/kms-general-faq.md @@ -0,0 +1,113 @@ +--- +title: "KMS - General FAQ" +slug: "kms-general-faq" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 12:39:01 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 12:46:52 GMT+0000 (Coordinated Universal Time)" +--- +Q. We are setting up development and pre-production configuration on a single server. Can we start KMS twice with separate paths? + +**Example:** + +```shell CLI +tatum-kms daemon --path=/path/to/wallet/store/directory/wallet.dat + +:: Running KMS for dev as: +docker run -d --env-file .env -v $HOME:/root/.tatumrc tatumio/tatum-kms daemon --period 10 --chain=MATIC --testnet + +:: Running KMS for Pre-production as: +docker run -d --env-file .env-pre-prod -v $HOME:/root/.tatumrc tatumio/tatum-kms daemon --period 10 --chain=MATIC --external-url={{URL}} +``` + +The differences are the .env [.env for dev and .env-pre-prod for preproduction] files and where we are storing the wallets which is `wallet.dat` and `wallet-preProd.dat`. + +A. Yes, with caveats. You can use a different name for your data, it is described in the KMS repo: + +```shell CLI +tatum-kms daemon --path=/path/to/wallet/store/directory/wallet.dat +``` + +If you start KMS twice, then each app uses its own config (i.e. mainnet/testnet) and "lives" in its own environment. Each of the apps should use its own API key, its own wallet.dat file +The --env-file should work. There, you setup different API key (urls, passwords, ...) For different environments you need to add --path param as in example code, to separate wallet.dat files for the envs + +*** + +Q. Can you give an example of the four-eyes principle in KMS Daemon? What parameters should we set and how should we do this? +A. This is just another API call where you validate If the tx could be signed on your end. 1 post rest API listener for you + +*** + +Q. Where are the private keys stored? +A. Inside `wallet.dat` file - encrypted in JSON file in KMS-specific format + +*** + +Q. If we generate several wallets does it create several [wallet.dat]? +A. No. All wallets are in one `wallet.dat` file + +*** + +Q. Can we restore a Tatum wallet on a different server using backup wallet.dat and password? +A. Yes + +*** + +Q. Can we run two KMS setups in "daemon mode" from two isolated servers, but with the same [wallet.dat] file to have high availability and failover? +A. Yes + +*** + +Q. Can the KMS password be changed? +A. For the time being, that's not possible. + +*** + +Q. How can I set up KMS with AWS? +A. If you were to set up KMS with AWS via “`TATUM_KMS_AWS_ACCESS_KEY_ID`” and "`TATUM_KMS_AWS_SECRET_ACCESS_KEY`” as AWS’s access key and secret key, they expire per session. Look up [AWS Long-Term Access Keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) and [AWS Managed Policy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-policies.html). More information about AWS credentials is available at [the following link](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#iam-credentials). + +*** + +Q. Can new Mnemonic phrases be generated in the KMS if the previous mnemonics are lost? If yes, are those previously generated Mnemonics still valid or invalid? +A. Yes, that is possible. The old ones will still be valid. + +*** + +Q. I am getting Error: 403 "Unable to broadcast transaction", "16: mandatory-script-verify-flag-failed..." What's wrong? +A. Check the "signature id", if wrong causes the wrong privatekey under KMS in tx request. +For BTC-based chains use key-based "signature id", for now. Mnemonic-based is currently under development. ETA soon. + +*** + +Q. KMS running under Linux container, accessing Azure key vault to get the password. How can we make this work? +A. Details are found at [the following link from Github](https://github.com/tatumio/tatum-kms/blob/1a567500bbd30774fbcf060b635744a2ef93ed10/src/index.ts#L103). Where: `if (flags.azure) {` + +*** + +Q. I want to use TRON and TRC Tokens with KMS. How? +A. TRON must be used for all TRX and trc20 transfers. It covers all tokens, native and TRC-10 and TRC-20. + +*** + +Q. I sent a transaction with wrong data, so every time KMS on Daemon runs it will try to execute it but will keep failing. What can I do? +A. Remove the unsuccessful TX via [the following v3 REST API endpoint](https://apidoc.tatum.io/tag/Key-Management-System/#operation/DeletePendingTransactionToSign). + +*** + +Q. I want to work with KMS on PHP. Is that possible? +A. Yes. Start KMS in Docker mode on a server and then you can the Tatum API in any language like PHP to do the transfers. + +*** + +Q. How do I link KMS tx signature with Gas Pump? +A. Check [the following article](https://docs-v3.tatum.io/gas-pump/pay-gas-fees-with-tatum-gas-pump). + +*** + +Q. How can I export to file the wallet? +A.` tatum-kms export --path=/pathtodirectory/wallet.dat` + +*** + +Q. What is the cost for each KMS signature withdrawal? +A. 2 credits per request and 2 credits for broadcasting, `4 in total`. diff --git a/v1.0/TROUBLESHOOTING/kms/kms-solana-and-generating-addresses.md b/v1.0/TROUBLESHOOTING/kms/kms-solana-and-generating-addresses.md new file mode 100644 index 00000000..db4f6749 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/kms/kms-solana-and-generating-addresses.md @@ -0,0 +1,16 @@ +--- +title: "KMS - Solana and Generating Addresses" +slug: "kms-solana-and-generating-addresses" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 12:52:39 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 12:52:47 GMT+0000 (Coordinated Universal Time)" +--- +With Solana and KMS, unlike other blockchains, it's required the mnemonic to generate public addresses. + +To streamline the process of working with KMS and Solana, it is recommended to generate the public addresses of your wallets in advance via the mnemonic and import them into KMS. + +## Good to Know + +- When working with KMS, Solana, and Virtual Accounts, you may assign these addresses. +- Mnemonics are generally stored in KMS, while the public addresses are generated via the XPUB. Unfortunately, KMS does not support this method with Solana. diff --git a/v1.0/TROUBLESHOOTING/nft.md b/v1.0/TROUBLESHOOTING/nft.md new file mode 100644 index 00000000..94ed1eeb --- /dev/null +++ b/v1.0/TROUBLESHOOTING/nft.md @@ -0,0 +1,8 @@ +--- +title: "NFTs" +slug: "nft" +excerpt: "" +hidden: false +createdAt: "Fri Jan 26 2024 08:48:30 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 12 2024 08:33:09 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/nft/nft-harmony-one-and-nfts-not-loading.md b/v1.0/TROUBLESHOOTING/nft/nft-harmony-one-and-nfts-not-loading.md new file mode 100644 index 00000000..d9c3d383 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/nft/nft-harmony-one-and-nfts-not-loading.md @@ -0,0 +1,18 @@ +--- +title: "NFT - Harmony One and NFTs not loading" +slug: "nft-harmony-one-and-nfts-not-loading" +excerpt: "" +hidden: false +createdAt: "Sun Feb 25 2024 12:01:15 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 25 2024 12:01:20 GMT+0000 (Coordinated Universal Time)" +--- +The Harmony ONE explorer cannot display NFT tokens as of this article's writing. + +Customers who mint NFT over Harmony ONE are encouraged to use an alternative Explorer or wallet service to see the NFT. + +## Good to know + +**MetaMask** is able to display NFT over Harmony ONE addresses. + +- **Mobile**: you should see NFT images. +- **Browser extension**: you should be able to see the token, but not the image. Look up for the trace inside the transaction: `-mintWithTokenURI( address : ### , uint256 : ###, string : https://##)` diff --git a/v1.0/TROUBLESHOOTING/nft/nft-opensea-and-listing-issues.md b/v1.0/TROUBLESHOOTING/nft/nft-opensea-and-listing-issues.md new file mode 100644 index 00000000..e1593de1 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/nft/nft-opensea-and-listing-issues.md @@ -0,0 +1,23 @@ +--- +title: "NFT - OpenSea and listing issues" +slug: "nft-opensea-and-listing-issues" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 20:10:09 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Feb 08 2024 20:10:09 GMT+0000 (Coordinated Universal Time)" +--- +When minting an NFT with the **Collection** `Tatum General NFT`and interacting with Opensea, you may get the following errors: + +- '`(Opensea) - Wait till confirmation`' +- '`Unexpected Error Occurred`' + +For the time being, Opensea does not list NFT minted with the **Collection** `Tatum General NFT`, so the preview link will not work. This means that the NFT will not be displayed on their platform. + +## Good to know + +- To view NFTs, you can use an explorer such as [NFTScan](https://www.nftscan.com/). +- If you still want to use Opensea, remove the preview option from your code to avoid a compromised Experience. For further details, you may reach out OpenSea. + +## Workaround + +Mint NFTs [using your Collection/SmartContract](https://apidoc.tatum.io/tag/NFT-(ERC-721-or-compatible)#operation/NftDeployErc721). This provides your own `name` and `symbol`. diff --git a/v1.0/TROUBLESHOOTING/nft/nft-polygon-matic-transaction-pending.md b/v1.0/TROUBLESHOOTING/nft/nft-polygon-matic-transaction-pending.md new file mode 100644 index 00000000..99935c69 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/nft/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/TROUBLESHOOTING/rpc-nodes.md b/v1.0/TROUBLESHOOTING/rpc-nodes.md new file mode 100644 index 00000000..8bc7a436 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes.md @@ -0,0 +1,8 @@ +--- +title: "RPC Nodes" +slug: "rpc-nodes" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 16:41:30 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 16:41:30 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/rpc-nodes/debug-and-tracer-error-reexec128.md b/v1.0/TROUBLESHOOTING/rpc-nodes/debug-and-tracer-error-reexec128.md new file mode 100644 index 00000000..dc2514b6 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes/debug-and-tracer-error-reexec128.md @@ -0,0 +1,55 @@ +--- +title: "Debug and Tracer error: reexec=128" +slug: "debug-and-tracer-error-reexec128" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 20:21:13 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Feb 08 2024 20:29:25 GMT+0000 (Coordinated Universal Time)" +--- +Dbug and Tracer calls are **highly resource-consuming**. This means that they can take some extra time to return a response. Due to this, you may encounter errors like `reexec=128` on your Node RPC calls. + +## Steps to troubleshoot + + Add the optional `timeout` parameter on your debug and tracer requests. + +### Example Payloads + +**Optimism:** + +```json cURL +curl --location 'https://api.tatum.io/v3/blockchain/node/optimism-mainnet/{API_KEY}' \ +--header 'Content-Type: application/json' \ +--data '{ + "jsonrpc": "2.0", + "method": "debug_traceBlockByNumber", + "params": [ + "0x666c7f4", + { + "tracer": "callTracer", + "timeout":"1m" + } + ], + "id": 2 +}' +``` + +**KLAY:** + +```json cURL +curl --location 'https://api.tatum.io/v3/blockchain/node/arb-one-mainnet/{API_KEY}' \ +--header 'Content-Type: application/json' \ +--data '{ + "id": 1, + "jsonrpc": "2.0", + "method": "debug_traceBlockByNumber", + "params": [ + "0xa1e86ab", + { + "tracer": "callTracer", + "timeout": "10s" + } + ] +}' +``` + +> 📘 You can find additional information at [the following link](https://pkg.go.dev/time#ParseDuration). diff --git a/v1.0/TROUBLESHOOTING/rpc-nodes/evm-like-ethereum-2.md b/v1.0/TROUBLESHOOTING/rpc-nodes/evm-like-ethereum-2.md new file mode 100644 index 00000000..88dcdc53 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes/evm-like-ethereum-2.md @@ -0,0 +1,8 @@ +--- +title: "EVM (like Ethereum)" +slug: "evm-like-ethereum-2" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 16:42:55 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 16:42:56 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/rpc-nodes/evm-like-ethereum-2/evm-based-nodes-unsupported-methods.md b/v1.0/TROUBLESHOOTING/rpc-nodes/evm-like-ethereum-2/evm-based-nodes-unsupported-methods.md new file mode 100644 index 00000000..eb098618 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes/evm-like-ethereum-2/evm-based-nodes-unsupported-methods.md @@ -0,0 +1,13 @@ +--- +title: "EVM based nodes - Unsupported methods" +slug: "evm-based-nodes-unsupported-methods" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 16:45:38 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 16:46:21 GMT+0000 (Coordinated Universal Time)" +--- +Tatum offers support for multiple chains and RPC nodes, allowing developers to interact with the blockchain network and perform various operations such as checking balances, submitting transactions, and more. + +However, while Tatum supports a wide range of methods, there are a few that are not currently supported. The `personal` module methods are unsupported for Ethereum-based RPC nodes. + +> 📘 More information is available at [the following link](https://openethereum.github.io/JSONRPC-personal-module). diff --git a/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1.md b/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1.md new file mode 100644 index 00000000..ca8366a4 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1.md @@ -0,0 +1,8 @@ +--- +title: "Solana" +slug: "solana-1" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 20:45:33 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Feb 08 2024 20:45:33 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1/solana-error-getprogramaccounts.md b/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1/solana-error-getprogramaccounts.md new file mode 100644 index 00000000..b1b6da9c --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1/solana-error-getprogramaccounts.md @@ -0,0 +1,25 @@ +--- +title: "Solana error: getProgramAccounts" +slug: "solana-error-getprogramaccounts" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 20:47:32 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Feb 08 2024 20:47:33 GMT+0000 (Coordinated Universal Time)" +--- +When making a complex call to a Solana RPC Node with the method `getProgramAccounts`, you may get an error looking as follows: + +```json JSON +{ + "jsonrpc":"2.0", + "error":{ + "code":-32010, + "message":"Tokenkeg####### excluded from account secondary indexes; + this RPC method unavailable for key" + }, + "id":1 +} +``` + +From Solana Github, this error appears if a program is excluded from the secondary indices. [`Tokenkeg...`] with lots of accounts can be excluded from [`getProgramAccounts`] by RPC nodes as a consequence. + +> 📘 Additional information is available at [the following link](https://github.com/solana-labs/solana-program-library/issues/2547#issuecomment-1168004960). diff --git a/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1/solana-long-response-times.md b/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1/solana-long-response-times.md new file mode 100644 index 00000000..cb1329e7 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes/solana-1/solana-long-response-times.md @@ -0,0 +1,11 @@ +--- +title: "Solana - Long response times" +slug: "solana-long-response-times" +excerpt: "" +hidden: false +createdAt: "Fri Mar 22 2024 11:20:06 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Mar 22 2024 11:20:06 GMT+0000 (Coordinated Universal Time)" +--- +Receiving a response from Solana nodes sometimes takes several seconds. + +One of the primary reasons for long response times is the response size. Depending on which block you may be querying, the response can be rather large (5-10MB). diff --git a/v1.0/TROUBLESHOOTING/rpc-nodes/utxo-like-bitcoin-1.md b/v1.0/TROUBLESHOOTING/rpc-nodes/utxo-like-bitcoin-1.md new file mode 100644 index 00000000..4d61b44b --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes/utxo-like-bitcoin-1.md @@ -0,0 +1,8 @@ +--- +title: "UTXO (like Bitcoin)" +slug: "utxo-like-bitcoin-1" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 16:42:41 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 16:42:42 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/rpc-nodes/utxo-like-bitcoin-1/utxo-based-nodes-unsupported-methods.md b/v1.0/TROUBLESHOOTING/rpc-nodes/utxo-like-bitcoin-1/utxo-based-nodes-unsupported-methods.md new file mode 100644 index 00000000..c1f97109 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/rpc-nodes/utxo-like-bitcoin-1/utxo-based-nodes-unsupported-methods.md @@ -0,0 +1,93 @@ +--- +title: "UTXO based nodes - Unsupported methods" +slug: "utxo-based-nodes-unsupported-methods" +excerpt: "" +hidden: false +createdAt: "Tue Feb 06 2024 16:44:43 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Feb 06 2024 16:44:43 GMT+0000 (Coordinated Universal Time)" +--- +Tatum offers support for multiple chains and RPC nodes, allowing developers to interact with the blockchain network and perform various operations such as checking balances, submitting transactions, and more. + +However, while Tatum supports a wide range of methods, there are a few that are not currently supported. + +```json JSON +abandontransaction +abortrescan +addmultisigaddress +addnode +backupwallet +bumpfee +clearbanned +createwallet +disconnectnode +dumpprivkey +dumpwallet +encryptwallet +getaddednodeinfo +getaddressesbylabel +getaddressinfo +getbalance +getbalances +getconnectioncount +getmemoryinfo +getnettotals +getnetworkinfo +getnewaddress +getnodeaddresses +getpeerinfo +getrawchangeaddress +getreceivedbyaddress +getreceivedbylabel +getrpcinfo +gettransaction +getunconfirmedbalance +getwalletinfo +importaddress +importdescriptors +importmulti +importprivkey +importprunedfunds +importpubkey +importwallet +keypoolrefill +listaddressgroupings +listbanned +listlabels +listlockunspent +listreceivedbyaddress +listreceivedbylabel +listsinceblock +listtransactions +listunspent +listwalletdir +listwallets +loadwallet +lockunspent +logging +ping +psbtbumpfee +removeprunedfunds +rescanblockchain +send +sendmany +sendtoaddress +setban +sethdseed +setlabel +setnetworkactive +settxfee +setwalletflag +signmessage +signrawtransactionwithwallet +stop +unloadwallet +upgradewallet +uptime +walletcreatefundedpsbt +walletlock +walletpassphrase +walletpassphrasechange +walletprocesspsbt +``` + +> 📘 This list is subject to change as Tatum continues to evolve and add new features. Developers are encouraged to check the latest documentation for an up-to-date list of supported methods. diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-notifications.md b/v1.0/TROUBLESHOOTING/troubleshooting-notifications.md new file mode 100644 index 00000000..81416dea --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-notifications.md @@ -0,0 +1,8 @@ +--- +title: "Notifications" +slug: "troubleshooting-notifications" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 20:32:34 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Feb 22 2024 14:46:42 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notification-delivery-error-networkerror-true.md b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notification-delivery-error-networkerror-true.md new file mode 100644 index 00000000..466a474a --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notification-delivery-error-networkerror-true.md @@ -0,0 +1,30 @@ +--- +title: "Notifications - Delivery error: \"networkError: true\"" +slug: "notification-delivery-error-networkerror-true" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 20:34:04 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 16:30:23 GMT+0000 (Coordinated Universal Time)" +--- +Getting the notification delivery error `networkError: true` occurs when the webhook delivery attempts fail to reach your assigned URL with your subscription. + +> 📘 This error can appear when our notification service is unable to verify the certificate of your domain. + +### Example error: + +```json JSON +"nextTime": 1672646494972, +"timestamp": 1672646502000, +"retryCount": 4, +"failed": true, +"response": { + "networkError": true + } +``` + +## Steps to troubleshoot + +- Verify that everything is set up correctly for that subdomain/domain on your end. +- If some webhooks work but others do not, try comparing the settings between your subdomains and find differences that can lead to issues. + E.g., DNS settings, cipher, certificate issuer, web server settings, and more. +- To guarantee the authenticity of the notification, you may want to consider using HMAC. diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-outgoing-incoming-and-counteraddress.md b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-outgoing-incoming-and-counteraddress.md new file mode 100644 index 00000000..88bc6675 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-outgoing-incoming-and-counteraddress.md @@ -0,0 +1,21 @@ +--- +title: "Notifications - Outgoing, Incoming and CounterAddress" +slug: "notifications-outgoing-incoming-and-counteraddress" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 16:26:02 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 16:26:29 GMT+0000 (Coordinated Universal Time)" +--- +## Outgoing + +```json JSON +"address" = "from" +"counterAddress" = "to" +``` + +## Incoming + +```json JSON +"address" = "to" +"counterAddress" = "from" +``` diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-tatum-ips-waf-and-hmac.md b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-tatum-ips-waf-and-hmac.md new file mode 100644 index 00000000..d98bfbde --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-tatum-ips-waf-and-hmac.md @@ -0,0 +1,24 @@ +--- +title: "Notifications - Tatum IPs, WAF and HMAC" +slug: "notifications-tatum-ips-waf-and-hmac" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 20:42:38 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Thu Feb 08 2024 20:43:29 GMT+0000 (Coordinated Universal Time)" +--- +Tatum supports HMAC webhook digest for those who want to verify their origin. + +## Using HMAC and advantages + +With HMAC, each notification fired by Tatum has within the HTTP header a digest in the `x-payload-hash` field, which users can reconstruct on their end. + +- You can trust the webhook content wasn't changed by a "[Man-in-the-middle](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)", otherwise, the digest will not match. +- You can trust that only Tatum could calculate the hash, hence you can trust the request was fired by Tatum and not an attacker. +- Find the related v3 REST API endpoint at [the following link](https://apidoc.tatum.io/tag/Notification-subscriptions/#operation/enableWebHookHmac). + +## IP Whitelisting + +Alternatively, although not recommended, you can whitelist Tatum IPs in your Web Application Firewall (WAF). + +- Tatum IP ranges are available in the following file: [tatum.io/ips.json](https://ips.tatum.io/ips.json) +- Using HMAC is a much more reliable approach compared to IP whitelisting. diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-utxo-and-address_transaction.md b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-utxo-and-address_transaction.md new file mode 100644 index 00000000..caf235dc --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-utxo-and-address_transaction.md @@ -0,0 +1,12 @@ +--- +title: "Notifications - UTXO and ADDRESS_TRANSACTION" +slug: "notifications-utxo-and-address_transaction" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 16:31:43 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 16:31:49 GMT+0000 (Coordinated Universal Time)" +--- +The Notification type `ADDRESS_TRANSACTION`, when applicable to UTXO chains (like Bitcoin), provides a notification based on the address registered. + +- `ADDRESS_TRANSACTION` informs you that the subscribed address was part of a transaction, be it with a negative or positive amount. +- If you are looking for a detailed report of balances from all the addresses involved with the transaction as recipient and sender, you can do so via the endpoint [Get a transaction by its hash](https://apidoc.tatum.io/tag/Bitcoin/#operation/BtcGetRawTransaction). diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-xrp-kms-and-failed-transactions.md b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-xrp-kms-and-failed-transactions.md new file mode 100644 index 00000000..e6df667d --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-notifications/notifications-xrp-kms-and-failed-transactions.md @@ -0,0 +1,40 @@ +--- +title: "Notifications - XRP, KMS and failed transactions" +slug: "notifications-xrp-kms-and-failed-transactions" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 16:29:24 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 16:29:28 GMT+0000 (Coordinated Universal Time)" +--- +XRP transactions can exhibit a discrepancy where a transaction seemingly fails yet becomes part of the blockchain due to the node's response structure. + +Understanding the distinct failure types and associated notifications is required for the accurate interpretation and handling of these scenarios within the XRP blockchain ecosystem + +## Failure Types in XRP Transactions + +XRP transactions encounter two distinctive failure types, leading to differing behaviors within the blockchain. + +### Failure Type 1: Transaction Broadcast Failure + +This type occurs when the transaction fails to broadcast to the network. It's characterized by the node's rejection of the transaction or a failure in the call to the node. Consequently, the transaction does not exist on the XRP blockchain. + +### Failure Type 2: Transaction Execution Failure + +This type occurs when the transaction is accepted and included in the blockchain despite encountering execution failures. This could result from issues such as smart contract (SC) call failures or other logic-related discrepancies. + +## Understanding XRP Notifications and KMS + +- `KMS_FAILED_TX` Notification will be triggered due to the error in broadcasting but inclusion in the chain. +- `ADDRESS_EVENT` Notification will also be triggered, despite the apparent failure indication, owing to XRP's design. + +### KMS_FAILED_TX Notification + +This notification triggers when the logic inside the user's Key Management System (KMS) fails to broadcast the transaction (Failure Type 1). It signifies the failure to initiate the transaction and generates an API call to register the failure. However, it's essential to note that this HTTP call might also fail, leaving a log within the user's KMS. + +### KMS_COMPLETED_TX Notification + +Triggered when the broadcast endpoint within the KMS receives a response from the node indicating a successful broadcast (Failure Type 2). Despite this success signal, Failure Type 2 issues can still arise, potentially leading to the transaction being dropped from the mempool and not included in the chain. + +### ADDRESS_EVENT Notification and \_others_ + +This notification creates a nuanced situation. For XRP transactions, there exists a design peculiarity where the XRP node responds with an error message (e.g., "Insufficient XRP balance to send") but still includes the transaction in the chain. diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts.md b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts.md new file mode 100644 index 00000000..f3afc9fd --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts.md @@ -0,0 +1,8 @@ +--- +title: "Virtual Accounts" +slug: "troubleshooting-virtual-accounts" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 14:49:28 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Tue Mar 19 2024 13:28:46 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/deposit-address-blockchain-balance-not-reflected.md b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/deposit-address-blockchain-balance-not-reflected.md new file mode 100644 index 00000000..9d30ad21 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/deposit-address-blockchain-balance-not-reflected.md @@ -0,0 +1,18 @@ +--- +title: "VA - Deposit address blockchain balance not reflected" +slug: "deposit-address-blockchain-balance-not-reflected" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 19:54:14 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:27:10 GMT+0000 (Coordinated Universal Time)" +--- +When adding a blockchain address as a deposit address into a Virtual Account, it is expected that said address contains no balance or assets. + +If a blockchain address with existing assets is added as a deposit address into a Virtual Account, those pre-existing assets won't be considered by the Virtual Account. + +To update a Virtual Account balance based on a blockchain operation, said operation needs to happen after the address has been attached to the Virtual Account. + +## Good to know + +- The time required for a blockchain transaction to get confirmed varies from chain to chain and chain load. +- The Virtual Account balance is updated with **confirmed blockchain transaction**, with an additional delay of approximately 1 minute. diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/tron-withdrawal-error-offchaintrontxfailed.md b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/tron-withdrawal-error-offchaintrontxfailed.md new file mode 100644 index 00000000..0cf5e213 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/tron-withdrawal-error-offchaintrontxfailed.md @@ -0,0 +1,24 @@ +--- +title: "VA - TRON withdrawal error: offchain.tron.tx.failed" +slug: "tron-withdrawal-error-offchaintrontxfailed" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 20:16:19 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:27:32 GMT+0000 (Coordinated Universal Time)" +--- +When attempting to make a withdrawal from a TRON-based Virtual Account, holding TRX, TRC-10, or TRC-20 (like USDT), you may face the following error or similar: + +```json JSON + { + "statusCode": 403, + "errorCode": "offchain.tron.tx.failed", + "message": "Unable to prepare transaction.", + "cause": "class org.tron.core.exception.ContractValidateException : Validate TransferContract error, no OwnerAccount." + } +``` + +## Steps to troubleshoot + +- Make sure the address has been activated. This means that it holds some TRX - This is a TRON network requirement. +- Make sure the Private key used to sign the transaction matches the deposit address from the sender's Virtual Account. +- Make sure there's enough balance in the address, be TRX, or in the case of TRC-10 or TRC-20, additional TRX to pay for the fees. diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-deposit-not-detected-with-bnb-xlm-or-xrp.md b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-deposit-not-detected-with-bnb-xlm-or-xrp.md new file mode 100644 index 00000000..d80aaa30 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-deposit-not-detected-with-bnb-xlm-or-xrp.md @@ -0,0 +1,17 @@ +--- +title: "VA - Deposit not detected with BNB, XLM or XRP" +slug: "va-deposit-not-detected-with-bnb-xlm-or-xrp" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:28:50 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:32:35 GMT+0000 (Coordinated Universal Time)" +--- +When receiving deposits from external sources to a deposit address linked to a Virtual Account, the users are identified by unique identifiers specific to BNB, XLM, and XRP. + +### The fields required to identify users for each blockchain are as follows: + +- BNB - `memo` +- XLM - `message` +- XRP - `destinationTag` + +> 📘 Required fields for BNB, XLM and XRP are made available when [Generating a deposit address](https://apidoc.tatum.io/tag/Blockchain-addresses/#operation/generateDepositAddress) for a Virtual Account. diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-error-xpub-not-compatible.md b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-error-xpub-not-compatible.md new file mode 100644 index 00000000..1d55ca23 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-error-xpub-not-compatible.md @@ -0,0 +1,24 @@ +--- +title: "VA - Error XPUB not compatible" +slug: "va-error-xpub-not-compatible" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:31:55 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:31:55 GMT+0000 (Coordinated Universal Time)" +--- +When you create a virtual account based on a cryptocurrency (for example, BTC or ETH), you usually need to provide the extended public key (xpub) of the blockchain wallet that will be connected to the account. + +However, this is not true for all wallets. When that happens, you will get an error looking as follows: + +```json JSON +{ + “statusCode”: 403, + “errorCode”: “account.xpub.incompatible”, + “message”: “Xpub not compatible with account currency.” +} +``` + +## Good to know + +- Not all blockchains provide xpub for wallets, or Tatum may not support wallets on some blockchains. In those cases, use the wallet address or the account address instead. In the case of Solana as well as a few others, you need to use the address you got from [Generated Wallet](https://apidoc.tatum.io/tag/Solana/#operation/SolanaGenerateWallet). +- Adding XPUB to the VA does not connect any specific blockchain address to the account. XPUB is a generator of addresses, not an address by itself. Find the REST API endpoint reference at [the following link](https://apidoc.tatum.io/tag/Account/#operation/createAccount). diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-withdrawals-from-a-gas-pump-deposit-address.md b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-withdrawals-from-a-gas-pump-deposit-address.md new file mode 100644 index 00000000..2ebd1b66 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/va-withdrawals-from-a-gas-pump-deposit-address.md @@ -0,0 +1,19 @@ +--- +title: "VA - Withdrawals from a Gas Pump deposit address" +slug: "va-withdrawals-from-a-gas-pump-deposit-address" +excerpt: "" +hidden: false +createdAt: "Sun Feb 11 2024 22:33:19 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:35:12 GMT+0000 (Coordinated Universal Time)" +--- +Gas Pump contract addresses can be attached to Virtual Accounts. + +At the time to execute a withdrawal of a Gas Pump contract address attached to a Virtual Account, there are a few steps to follow, so the balance is updated on the Virtual Account. + +## Withdrawal steps: + +1. Check if a Gas Pump contract address has been activated on-chain - [V3 REST API endpoint](https://apidoc.tatum.io/tag/Gas-pump/#operation/GasPumpAddressesActivatedOrNot) + 1. If the Gas Pump contract address is not activated, do so - [V3 REST API endpoint](https://apidoc.tatum.io/tag/Gas-pump/#operation/ActivateGasPumpAddresses) +2. Create a withdrawal request to the Virtual Account - [V3 REST API endpoint](https://apidoc.tatum.io/tag/Withdrawal/#operation/storeWithdrawal) +3. Transfer the assets from the Gas Pump contract address - [V3 REST API endpoint](https://apidoc.tatum.io/tag/Gas-pump/#operation/TransferCustodialWallet) +4. Mark the withdrawal on the virtual account as completed - [V3 REST API endpoint](https://apidoc.tatum.io/tag/Withdrawal/#operation/completeWithdrawal) diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/withdrawal-registered-but-failed-in-the-blockchain.md b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/withdrawal-registered-but-failed-in-the-blockchain.md new file mode 100644 index 00000000..7ba6a471 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/withdrawal-registered-but-failed-in-the-blockchain.md @@ -0,0 +1,24 @@ +--- +title: "VA - Withdrawal registered in ledger but failed in the blockchain" +slug: "withdrawal-registered-but-failed-in-the-blockchain" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 19:59:37 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:27:26 GMT+0000 (Coordinated Universal Time)" +--- +Sometimes, a transaction from a Virtual Account to the blockchain will be internally processed decreasing the asset amount in the Virtual Account, but ultimately failing in the blockchain. + +When this happens, additional transaction attempts with the affected `senderAccountId` could return an error looking as follows or similar: + +```json JSON +{ + "statusCode": 403, + "errorCode": "balance.insufficient", + "message": "Insufficient balance for account ######### and payment amount 9. Sender balance is 0.2." +} +``` + +## Good to know + +- A successful API call withdrawing assets from a VA that ultimately fails in the blockchain does not automatically revert the asset balance. +- To fix the affected Virtual Account balance on the`senderAccountId`, it is necessary to revert the operation via [Cancel Withdrawal](https://apidoc.tatum.io/tag/Withdrawal/#operation/cancelInProgressWithdrawal). diff --git a/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/withdrawals-to-blockchain-troubleshooting.md b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/withdrawals-to-blockchain-troubleshooting.md new file mode 100644 index 00000000..77e96bc3 --- /dev/null +++ b/v1.0/TROUBLESHOOTING/troubleshooting-virtual-accounts/withdrawals-to-blockchain-troubleshooting.md @@ -0,0 +1,36 @@ +--- +title: "VA - Withdrawals to Blockchain Troubleshooting" +slug: "withdrawals-to-blockchain-troubleshooting" +excerpt: "" +hidden: false +createdAt: "Thu Feb 08 2024 14:53:28 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Sun Feb 11 2024 22:27:05 GMT+0000 (Coordinated Universal Time)" +--- +When attempting to transfer assets from a Virtual Account deposit address(es) to a blockchain address, the operation may fail. This can be caused by: + +- Insufficient on-chain assets. +- Incorrect `PrivateKey`, `mnenonic` && `index` or `mnemonic` && `xpub` +- Insufficient blockchain fees/gas. +- `Blocked` amounts on the Virtual Account making its balance appear as a negative. +- Stuck withdrawals `inProgress`. Unconfirmed or dropped blockchain transaction. +- A blockchain transaction failed but the Virtual Account flagged it as `Done`, creating a balance desync. + +## Troubleshooting Withdrawals + +1. [Get account by ID](https://apidoc.tatum.io/tag/Account/#operation/getAccountByAccountId): confirm currency, VA balance, and more. +2. If you are using `index` && `mnemonic`/`signatureId`, make sure the index matches the address/`PrivateKey`. + 1. [Get all deposit addresses for a Virtual Account](https://apidoc.tatum.io/tag/Blockchain-addresses/#operation/getAllDepositAddresses): Find all linked blockchain addresses to the Virtual Account as well as confirm their `derivationKey` / `index` + 2. Off-chain Transfers from a Virtual Account to Blockchain require the proper use of a combination of `mnemonic`, `xpub`, `index`, and `PrivateKey` via a match dictated by the **REQUEST BODY SCHEMA** +3. If you are setting up manual fees in the transaction, **ensure it's sufficient** for the tx to be accepted by the blockchain. + 1. Tatum provides fee estimate for a few chains: [VA Specific for BTC, LTC and DOGE](https://apidoc.tatum.io/tag/Virtual-account-blockchain-fees#operation/offchainEstimateFee) as well as for [other chains](https://apidoc.tatum.io/tag/Blockchain-fees#operation/EstimateFeeBlockchain) +4. Check the Virtual Account balance via: [Get account balance](https://apidoc.tatum.io/tag/Account/#operation/getAccountBalance) - Where: + 1. `accountBalance`: All assets on the account, both available and blocked + 2. `availableBalance`: 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 +5. Check for any `blocked` amounts via: [Get blocked amounts in an account](https://apidoc.tatum.io/tag/Account/#operation/getBlockAmount) + 1. You may unblock the balance in the Virtual Account via: [Delete a blocked amount in an account](https://apidoc.tatum.io/tag/Account/#operation/deleteBlockAmount) OR [Delete all blocked amounts in an account](https://apidoc.tatum.io/tag/Account/#operation/deleteAllBlockAmount) +6. Check for any withdrawals `inProgress` via: [Get Withdrawals](https://apidoc.tatum.io/tag/Withdrawal/#operation/GetWithdrawals) + 1. You may find all related transactions of a Virtual Account via: [Find transactions for account](https://apidoc.tatum.io/tag/Transaction/#operation/getTransactionsByAccountId) + 2. You should [Complete a Withdrawal](https://apidoc.tatum.io/tag/Withdrawal/#operation/completeWithdrawal) if the transaction has been confirmed OR [Cancel the withdrawal](https://apidoc.tatum.io/tag/Withdrawal/#operation/cancelInProgressWithdrawal) if it failed. +7. Check for any withdrawals that may have **failed** in the blockchain but still got marked as `Done` via: [Get Withdrawals](https://apidoc.tatum.io/tag/Withdrawal/#operation/GetWithdrawals) + 1. You may find all related transactions of a Virtual Account via: [Find transactions for account](https://apidoc.tatum.io/tag/Transaction/#operation/getTransactionsByAccountId) + 2. You should [Cancel the withdrawal](https://apidoc.tatum.io/tag/Withdrawal/#operation/cancelInProgressWithdrawal) diff --git a/v1.0/Utils/blockchain-utils.md b/v1.0/Utils/blockchain-utils.md new file mode 100644 index 00000000..a2e640f5 --- /dev/null +++ b/v1.0/Utils/blockchain-utils.md @@ -0,0 +1,8 @@ +--- +title: "Blockchain utils" +slug: "blockchain-utils" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/blockchain-utils/getauctionestimatedtime.md b/v1.0/Utils/blockchain-utils/getauctionestimatedtime.md new file mode 100644 index 00000000..739f8bdc --- /dev/null +++ b/v1.0/Utils/blockchain-utils/getauctionestimatedtime.md @@ -0,0 +1,8 @@ +--- +title: "Estimate the block height for a future point in time" +slug: "getauctionestimatedtime" +excerpt: "

    1 credit per API call

    \n

    Get an estimated block height (number) for some future point in time.

    \n

    Note that this API returnes an estimation of what the block height might be and not the exact block height.

    \n

    This API is supported for the following blockchains:

    \n
      \n
    • BNB Smart Chain
    • \n
    • Celo
    • \n
    • Ethereum
    • \n
    • Harmony
    • \n
    • Klaytn
    • \n
    • Polygon
    • \n
    " +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/blockchain-utils/scgetcontractaddress.md b/v1.0/Utils/blockchain-utils/scgetcontractaddress.md new file mode 100644 index 00000000..18109fd8 --- /dev/null +++ b/v1.0/Utils/blockchain-utils/scgetcontractaddress.md @@ -0,0 +1,8 @@ +--- +title: "Get the blockchain address of a smart contract by the deployment transaction ID" +slug: "scgetcontractaddress" +excerpt: "

    1 credit per API call

    \n

    Get the blockchain address of a smart contract by the ID of its deployment transaction.

    \n

    This API is supported for the following blockchains:

    \n
      \n
    • Algorand
    • \n
    • BNB Smart Chain
    • \n
    • Celo
    • \n
    • Elrond
    • \n
    • Ethereum
    • \n
    • Flow
    • \n
    • Harmony
    • \n
    • Klaytn
    • \n
    • Polygon
    • \n
    • TRON
    • \n
    • XinFin
    • \n
    " +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/exchange-rate.md b/v1.0/Utils/exchange-rate.md new file mode 100644 index 00000000..8ddc66e2 --- /dev/null +++ b/v1.0/Utils/exchange-rate.md @@ -0,0 +1,8 @@ +--- +title: "Exchange rate" +slug: "exchange-rate" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/exchange-rate/getexchangerate.md b/v1.0/Utils/exchange-rate/getexchangerate.md new file mode 100644 index 00000000..52b3ee7c --- /dev/null +++ b/v1.0/Utils/exchange-rate/getexchangerate.md @@ -0,0 +1,8 @@ +--- +title: "Get the current exchange rate for exchanging fiat/crypto assets" +slug: "getexchangerate" +excerpt: "

    1 credit per API call

    \n

    Get the current exchange rate for exchanging fiat/crypto assets.

    \n

    By default, the base pair (the target asset) is EUR. When obtaining the exchange rate for an asset (for example, BTC), the value returned by the API expresses the amount of EUR that can be currently exchanged into 1 BTC.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/exchange-rate/getexchangerates.md b/v1.0/Utils/exchange-rate/getexchangerates.md new file mode 100644 index 00000000..554d3d8a --- /dev/null +++ b/v1.0/Utils/exchange-rate/getexchangerates.md @@ -0,0 +1,8 @@ +--- +title: "Get the current exchange rates for exchanging fiat/crypto assets" +slug: "getexchangerates" +excerpt: "

    1 credit per pair per API call

    \n

    Get the current exchange rates for exchanging fiat/crypto assets.

    \n

    When obtaining the exchange rate for an asset (for example, BTC), the value returned by the API expresses the amount of EUR that can be currently exchanged into 1 BTC.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/service-utils.md b/v1.0/Utils/service-utils.md new file mode 100644 index 00000000..055f905e --- /dev/null +++ b/v1.0/Utils/service-utils.md @@ -0,0 +1,8 @@ +--- +title: "Service utils" +slug: "service-utils" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/service-utils/freezeapikey.md b/v1.0/Utils/service-utils/freezeapikey.md new file mode 100644 index 00000000..abf57d0f --- /dev/null +++ b/v1.0/Utils/service-utils/freezeapikey.md @@ -0,0 +1,8 @@ +--- +title: "Freeze API Key" +slug: "freezeapikey" +excerpt: "

    2 credits per API call.


    Freeze the API Key.\nIt's not possible to perform sensitive operations like send ledger transaction, send off-chain transaction, send blockchain transaction,\nbroadcast blockchain transaction, perform Order book trade or create blockage. Only read operations are permitted.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/service-utils/getcredits.md b/v1.0/Utils/service-utils/getcredits.md new file mode 100644 index 00000000..4ac5dee2 --- /dev/null +++ b/v1.0/Utils/service-utils/getcredits.md @@ -0,0 +1,8 @@ +--- +title: "Get information about your credit consumption for the last month" +slug: "getcredits" +excerpt: "

    1 credit per API call

    \n

    Get information about your credit consumption for the last month (used credits per day).

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/service-utils/getversion.md b/v1.0/Utils/service-utils/getversion.md new file mode 100644 index 00000000..cfa17f07 --- /dev/null +++ b/v1.0/Utils/service-utils/getversion.md @@ -0,0 +1,8 @@ +--- +title: "Get API version" +slug: "getversion" +excerpt: "

    1 credit per API call.


    Get current version of the API.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Utils/service-utils/unfreezeapikey.md b/v1.0/Utils/service-utils/unfreezeapikey.md new file mode 100644 index 00000000..232940b2 --- /dev/null +++ b/v1.0/Utils/service-utils/unfreezeapikey.md @@ -0,0 +1,8 @@ +--- +title: "Unfreeze API Key" +slug: "unfreezeapikey" +excerpt: "

    2 credits per API call.


    Unfreeze the API Key.\nIt's possible to perform sensitive operations like send ledger transaction, send off-chain transaction, send blockchain transaction,\nbroadcast blockchain transaction, perform Order book trade or create blockage again.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:39:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:39:26 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account.md b/v1.0/Virtual Accounts/account.md new file mode 100644 index 00000000..2965c1e6 --- /dev/null +++ b/v1.0/Virtual Accounts/account.md @@ -0,0 +1,8 @@ +--- +title: "Account" +slug: "account" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/activateaccount.md b/v1.0/Virtual Accounts/account/activateaccount.md new file mode 100644 index 00000000..aff22450 --- /dev/null +++ b/v1.0/Virtual Accounts/account/activateaccount.md @@ -0,0 +1,8 @@ +--- +title: "Activate account" +slug: "activateaccount" +excerpt: "

    2 credits per API call.


    Activates an account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/blockamount.md b/v1.0/Virtual Accounts/account/blockamount.md new file mode 100644 index 00000000..c8f91983 --- /dev/null +++ b/v1.0/Virtual Accounts/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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:11 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/createaccount.md b/v1.0/Virtual Accounts/account/createaccount.md new file mode 100644 index 00000000..11bd313c --- /dev/null +++ b/v1.0/Virtual Accounts/account/createaccount.md @@ -0,0 +1,8 @@ +--- +title: "Create a virtual account" +slug: "createaccount" +excerpt: "

    2 credits per API call

    \n

    Create a new virtual account for a customer.

    \n
      \n
    • 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

    Connect a virtual account to the blockchain

    \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.
    • \n
    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/createaccountbatch.md b/v1.0/Virtual Accounts/account/createaccountbatch.md new file mode 100644 index 00000000..e6368283 --- /dev/null +++ b/v1.0/Virtual Accounts/account/createaccountbatch.md @@ -0,0 +1,8 @@ +--- +title: "Create multiple accounts in a batch call" +slug: "createaccountbatch" +excerpt: "

    2 credits per API call + 1 credit for every account created.


    \n

    Creates new accounts for the customer in a batch call.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:11 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/deactivateaccount.md b/v1.0/Virtual Accounts/account/deactivateaccount.md new file mode 100644 index 00000000..aa1a9a20 --- /dev/null +++ b/v1.0/Virtual Accounts/account/deactivateaccount.md @@ -0,0 +1,8 @@ +--- +title: "Deactivate account" +slug: "deactivateaccount" +excerpt: "

    2 credits per API call.


    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 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/deleteallblockamount.md b/v1.0/Virtual Accounts/account/deleteallblockamount.md new file mode 100644 index 00000000..6f7b0a08 --- /dev/null +++ b/v1.0/Virtual Accounts/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 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/deleteblockamount.md b/v1.0/Virtual Accounts/account/deleteblockamount.md new file mode 100644 index 00000000..3c730211 --- /dev/null +++ b/v1.0/Virtual Accounts/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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/freezeaccount.md b/v1.0/Virtual Accounts/account/freezeaccount.md new file mode 100644 index 00000000..a336160e --- /dev/null +++ b/v1.0/Virtual Accounts/account/freezeaccount.md @@ -0,0 +1,8 @@ +--- +title: "Freeze account" +slug: "freezeaccount" +excerpt: "

    2 credits per API call.


    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 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/getaccountbalance.md b/v1.0/Virtual Accounts/account/getaccountbalance.md new file mode 100644 index 00000000..4c825fb6 --- /dev/null +++ b/v1.0/Virtual Accounts/account/getaccountbalance.md @@ -0,0 +1,8 @@ +--- +title: "Get account balance" +slug: "getaccountbalance" +excerpt: "

    1 credit per API call.


    Get balance for the account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:11 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/getaccountbyaccountid.md b/v1.0/Virtual Accounts/account/getaccountbyaccountid.md new file mode 100644 index 00000000..eeb25f6a --- /dev/null +++ b/v1.0/Virtual Accounts/account/getaccountbyaccountid.md @@ -0,0 +1,8 @@ +--- +title: "Get account by ID" +slug: "getaccountbyaccountid" +excerpt: "

    1 credit per API call.


    Gets active account by ID. Displays all information regarding the given account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:11 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/getaccounts.md b/v1.0/Virtual Accounts/account/getaccounts.md new file mode 100644 index 00000000..05f040b7 --- /dev/null +++ b/v1.0/Virtual Accounts/account/getaccounts.md @@ -0,0 +1,8 @@ +--- +title: "List all accounts" +slug: "getaccounts" +excerpt: "

    1 credit per API call.


    Lists all accounts. Inactive accounts are also visible.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/getaccountsbycustomerid.md b/v1.0/Virtual Accounts/account/getaccountsbycustomerid.md new file mode 100644 index 00000000..c635c9d0 --- /dev/null +++ b/v1.0/Virtual Accounts/account/getaccountsbycustomerid.md @@ -0,0 +1,8 @@ +--- +title: "List all customer accounts" +slug: "getaccountsbycustomerid" +excerpt: "

    1 credit per API call.


    Lists all accounts associated with a customer. Only active accounts are visible.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:11 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/getaccountscount.md b/v1.0/Virtual Accounts/account/getaccountscount.md new file mode 100644 index 00000000..7d114d83 --- /dev/null +++ b/v1.0/Virtual Accounts/account/getaccountscount.md @@ -0,0 +1,8 @@ +--- +title: "Count of found entities for get accounts request" +slug: "getaccountscount" +excerpt: "

    1 credit per API call.


    Count of accounts that were found from /v3/ledger/account

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/getblockamount.md b/v1.0/Virtual Accounts/account/getblockamount.md new file mode 100644 index 00000000..694ec238 --- /dev/null +++ b/v1.0/Virtual Accounts/account/getblockamount.md @@ -0,0 +1,8 @@ +--- +title: "Get blocked amounts in an account" +slug: "getblockamount" +excerpt: "

    1 credit per API call.


    Gets blocked amounts for an account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/getblockamountbyid.md b/v1.0/Virtual Accounts/account/getblockamountbyid.md new file mode 100644 index 00000000..914bac38 --- /dev/null +++ b/v1.0/Virtual Accounts/account/getblockamountbyid.md @@ -0,0 +1,8 @@ +--- +title: "Get blocked amount by ID" +slug: "getblockamountbyid" +excerpt: "

    1 credit per API call.


    Gets blocked amount by id.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/unblockamountwithtransaction.md b/v1.0/Virtual Accounts/account/unblockamountwithtransaction.md new file mode 100644 index 00000000..c24a9432 --- /dev/null +++ b/v1.0/Virtual Accounts/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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:11 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/unfreezeaccount.md b/v1.0/Virtual Accounts/account/unfreezeaccount.md new file mode 100644 index 00000000..2e2ad14e --- /dev/null +++ b/v1.0/Virtual Accounts/account/unfreezeaccount.md @@ -0,0 +1,8 @@ +--- +title: "Unfreeze account" +slug: "unfreezeaccount" +excerpt: "

    2 credits per API call.


    Unfreezes a previously frozen account. Unfreezing a non-frozen account not affect the account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/account/updateaccountbyaccountid.md b/v1.0/Virtual Accounts/account/updateaccountbyaccountid.md new file mode 100644 index 00000000..7622d732 --- /dev/null +++ b/v1.0/Virtual Accounts/account/updateaccountbyaccountid.md @@ -0,0 +1,8 @@ +--- +title: "Update account" +slug: "updateaccountbyaccountid" +excerpt: "

    2 credits per API call.


    Update account by ID. Only a small number of fields can be updated.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:11 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-addresses.md b/v1.0/Virtual Accounts/blockchain-addresses.md new file mode 100644 index 00000000..b3ded4dd --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-addresses.md @@ -0,0 +1,8 @@ +--- +title: "Blockchain addresses" +slug: "blockchain-addresses" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-addresses/addressexists.md b/v1.0/Virtual Accounts/blockchain-addresses/addressexists.md new file mode 100644 index 00000000..0ea84755 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-addresses/addressexists.md @@ -0,0 +1,8 @@ +--- +title: "Check whether a blockchain address is assigned to a virtual account" +slug: "addressexists" +excerpt: "

    1 credit per API call

    \n

    Check whether a blockchain address with the specified cryptocurrency is registered within Tatum and is assigned to a virtual account (that is, whether this blockchain address is a deposit address associated with the virtual account).

    \n

    If the blockchain address is assigned to a virtual account, information about this account is returned. Otherwise, an error message is returned.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-addresses/assignaddress.md b/v1.0/Virtual Accounts/blockchain-addresses/assignaddress.md new file mode 100644 index 00000000..8474c438 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-addresses/assignaddress.md @@ -0,0 +1,8 @@ +--- +title: "Assign a blockchain address to a virtual account" +slug: "assignaddress" +excerpt: "

    2 credits per API call

    \n

    Assign an existing blockchain address to a virtual account. The blockchain address becomes a deposit address associated with this account.
    Use this API when the virtual account has no default extended public key (xpub) and deposit addresses are handled manually.

    \n

    You can assign multiple blockchain addresses to one virtual account. When you have multiple blockchain addresses assigned to the same virtual account, you aggregate various blockchain transactions from different addresses under a single account.
    You can deposit funds from another blockchain address to a deposit address associated with the virtual account, and the funds will be credited to that virtual account.

    \n

    Scanning for incoming deposits
    \nBy default, deposit addresses are scanned for incoming deposits. Deposit addresses are automatically synchronized with the associated virtual account, and you can see incoming deposits on the virtual account.
    Scanning deposit addresses for incoming deposits consumes 20 credits per address per day.

    \n

    If you want to be notified about certain events occurring on the deposit addresses, subscribe for notifications.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-addresses/generatedepositaddress.md b/v1.0/Virtual Accounts/blockchain-addresses/generatedepositaddress.md new file mode 100644 index 00000000..e4b5853a --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-addresses/generatedepositaddress.md @@ -0,0 +1,8 @@ +--- +title: "Create a deposit address for a virtual account" +slug: "generatedepositaddress" +excerpt: "

    2 credits per API call
    \nOn Flow, additional 3000 credits are consumed for each created address.

    \n

    Create a deposit address associated with a virtual account.

    \n

    You can create multiple deposit addresses for one virtual account. When you have multiple deposit addresses created for the same virtual account, you aggregate various blockchain transactions from different addresses under a single account.
    You can deposit funds from another blockchain address to a deposit address associated with the virtual account, and the funds will be credited to that virtual account.

    \n

    Scanning for incoming deposits
    \nBy default, deposit addresses are scanned for incoming deposits. Deposit addresses are automatically synchronized with the associated virtual account, and you can see incoming deposits on the virtual account.
    Scanning deposit addresses for incoming deposits consumes 20 credits per address per day.

    \n

    If you want to be notified about certain events occurring on the deposit addresses, subscribe for notifications.

    \n

    Virtual account cryptocurrency

    \n

    Depending on the cryptocurrency of the virtual account, this API generates:

    \n
      \n
    • Public address for BTC, BCH, ETH, or LTC
    • \n
    • DestinationTag for XRP
    • \n
    • Message for XLM
    • \n
    \n

    For fore information about supported blockchains and address types, see the API for creating virtual accounts.

    \n

    Deposit addresses are generated in the natural order of the extended public key provided in the virtual account. The derivation index is the representation of that order; it starts from 0 and ends at 2^31.

    \n

    When a new deposit address is generated, the last not used index is used to generate the address. You can skip some addresses to a different index, which means all the skipped addresses will no longer be used.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-addresses/generatedepositaddressesbatch.md b/v1.0/Virtual Accounts/blockchain-addresses/generatedepositaddressesbatch.md new file mode 100644 index 00000000..e291c21d --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-addresses/generatedepositaddressesbatch.md @@ -0,0 +1,8 @@ +--- +title: "Create multiple deposit addresses for a virtual account" +slug: "generatedepositaddressesbatch" +excerpt: "

    2 credits per API call + 1 credit for each created address
    \nOn Flow, additional 3000 credits are consumed for each created address.

    \n

    Create multiple deposit addresses associated with a virtual account.

    \n

    When you have multiple deposit addresses created for the same virtual account, you aggregate various blockchain transactions from different addresses under a single account.
    You can deposit funds from another blockchain address to a deposit address associated with the virtual account, and the funds will be credited to that virtual account.

    \n

    Scanning for incoming deposits
    \nBy default, deposit addresses are scanned for incoming deposits. Deposit addresses are automatically synchronized with the associated virtual account, and you can see incoming deposits on the virtual account.
    Scanning deposit addresses for incoming deposits consumes 20 credits per address per day.

    \n

    If you want to be notified about certain events occurring on the deposit addresses, subscribe for notifications.

    \n

    Virtual account cryptocurrency

    \n

    Depending on the cryptocurrency of the virtual account, this API generates:

    \n
      \n
    • Public address for BTC, BCH, ETH, or LTC
    • \n
    • DestinationTag for XRP
    • \n
    • Message for XLM
    • \n
    \n

    For fore information about supported blockchains and address types, see the API for creating virtual accounts.

    \n

    Deposit addresses are generated in the natural order of the extended public key provided in the virtual account. The derivation index is the representation of that order; it starts from 0 and ends at 2^31.

    \n

    When a new deposit address is generated, the last not used index is used to generate the address. You can skip some addresses to a different index, which means all the skipped addresses will no longer be used.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-addresses/getalldepositaddresses.md b/v1.0/Virtual Accounts/blockchain-addresses/getalldepositaddresses.md new file mode 100644 index 00000000..23af34c7 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-addresses/getalldepositaddresses.md @@ -0,0 +1,8 @@ +--- +title: "Get all deposit addresses for a virtual account" +slug: "getalldepositaddresses" +excerpt: "

    1 credit per API call

    \n

    Get all deposit addresses generated for a virtual account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-addresses/removeaddress.md b/v1.0/Virtual Accounts/blockchain-addresses/removeaddress.md new file mode 100644 index 00000000..7171c0ed --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-addresses/removeaddress.md @@ -0,0 +1,8 @@ +--- +title: "Remove a deposit address from a virtual account" +slug: "removeaddress" +excerpt: "

    1 credit per API call

    \n

    Remove a deposit address from the virtual account.

    \n

    The deposit address will no longer be scanned for incoming deposits. You will no longer be able to generate this address again.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2.md b/v1.0/Virtual Accounts/blockchain-operations-2.md new file mode 100644 index 00000000..b0315c33 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2.md @@ -0,0 +1,8 @@ +--- +title: "Blockchain operations" +slug: "blockchain-operations-2" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/adatransferoffchain.md b/v1.0/Virtual Accounts/blockchain-operations-2/adatransferoffchain.md new file mode 100644 index 00000000..61607f2e --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/adatransferoffchain.md @@ -0,0 +1,8 @@ +--- +title: "Send ADA from a virtual account to the blockchain" +slug: "adatransferoffchain" +excerpt: "

    10 credits per API call.

    Send ADA (Cardano) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If ADA server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/algodeployerc20ledger.md b/v1.0/Virtual Accounts/blockchain-operations-2/algodeployerc20ledger.md new file mode 100644 index 00000000..c2685b0c --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/algodeployerc20ledger.md @@ -0,0 +1,8 @@ +--- +title: "Deploy an Algorand ERC-20-equivalent smart contract to the blockchain and a virtual account" +slug: "algodeployerc20ledger" +excerpt: "

    4 credits per API call

    \n

    Deploy an Algorand ERC-20-equivalent smart contract. This is a helper method, which is combination of\nRegister new Algorand ERC20 token in the ledger and Deploy blockchain ERC20.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying an Algorand ERC-20-equivalent smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/algotransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/algotransfer.md new file mode 100644 index 00000000..fa2b814d --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/algotransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send ALGO from a virtual account to the blockchain" +slug: "algotransfer" +excerpt: "

    4 credits per API call

    \n

    Send Algos or ERC-20-equivalent Algorand tokens from a virtual account (even from a virtual account without deposit addresses adssigned) to the Algorand blockchain.

    \n

    The recipient has to agree in advance to receive assets because Algorand charges users for storing assets on their addresses, and an Algorand blockchain address by default does not receive assets unless explicitly agreed. Before sending any asset from a virtual account to the blockchain, make sure that the recipient has agreed to receive the assets to their address.

    \n

    Sending Algorand assets creates an internal Tatum withdrawal request with an ID. If everything works as expected, the withdrawal request is marked as complete and a transaction ID is assigned to it.

    \n
      \n
    • If a server connection is unavailable, the withdrawal request is cancelled.
    • \n
    • If the transfer to the blockchain is successful, but the Tatum infrastructure cannot be accesses, the ID of the blockchain transaction is returned and you have to complete the withdrawal request manually. Otherwise, all other withdrawals will be pending.
    • \n
    \n

    Signing a transaction
    \nWhen sending Algos or ERC-20-equivalent Algorand tokens, 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:17 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/bchtransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/bchtransfer.md new file mode 100644 index 00000000..5ba88b63 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/bchtransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send BCH from a virtual account to the blockchain" +slug: "bchtransfer" +excerpt: "

    10 credits per API call.


    \n

    Send BCH (Bitcoin Cash) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Bitcoin Cash server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nThere are two possibilites how the transaction on the blockchain can be created:\n
      \n
    • Using mnemonic - all of the addresses, that are generated from the mnemonic are scanned for the incoming deposits\nwhich are used as a source of the transaction. Assets, which are not used in a transaction are moved to the system address wih the derivation index 0. Address with index 0 cannot be assigned automatically to any account and is used for custodial wallet use cases. For non-custodial wallets, field attr should be present and it should be address with the index 1 of the connected wallet.
    • \n
    • Using keyPair - addresses which are used as a source of the transaction are entered manually
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \nThis method is a helper method, which internally wraps these steps:\n
      \n
    1. Store withdrawal - create a ledger transaction, which debits the assets on the sender account.
    2. \n
    3. Perform blockchain transaction
    4. \n
    5. Complete withdrawal - move the withdrawal to the completed state, when all of the previous steps were successful.
    6. \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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/bnbassetoffchain.md b/v1.0/Virtual Accounts/blockchain-operations-2/bnbassetoffchain.md new file mode 100644 index 00000000..e52358f1 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/bnbassetoffchain.md @@ -0,0 +1,8 @@ +--- +title: "Create a BNB-based asset" +slug: "bnbassetoffchain" +excerpt: "

    2 credits per API call.


    \n

    Create a BNB-based asset in a virtual account. The asset must first be created and configured on BNB Beacon Chain blockhain.

    \n

    This API call will create an internal virtual currency. You can create virtual accounts with off-chain support.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/bnbtransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/bnbtransfer.md new file mode 100644 index 00000000..8cb952f5 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/bnbtransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send BNB from a virtual account to the blockchain" +slug: "bnbtransfer" +excerpt: "

    10 credits per API call.


    \n

    Send BNB (BNB Beacon Chain) or BNB assets from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. When every system works as expected,\nwithdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If BNB server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be\ncompleted manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/bscdeploybep20.md b/v1.0/Virtual Accounts/blockchain-operations-2/bscdeploybep20.md new file mode 100644 index 00000000..16e74bab --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/bscdeploybep20.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a BNB Smart Chain BEP-20 smart contract to the blockchain and a virtual account" +slug: "bscdeploybep20" +excerpt: "

    4 credits per API call

    \n

    Deploy a BNB Smart Chain BEP-20 smart contract. This is a helper method, which is combination of\nRegister new BEP20 token in the ledger and Deploy blockchain ERC20.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying a BNB Smart Chain BEP-20 smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/bscorbeptransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/bscorbeptransfer.md new file mode 100644 index 00000000..e8dbc92c --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/bscorbeptransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send BSC from a virtual account to the blockchain" +slug: "bscorbeptransfer" +excerpt: "

    4 credits per API call.


    \n

    Send BSC (BNB Smart Chain) or BEP-20 tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n
    \n
    \n

      \n
    • If BSC server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/btctransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/btctransfer.md new file mode 100644 index 00000000..8c8e6459 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/btctransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send BTC from a virtual account to the blockchain" +slug: "btctransfer" +excerpt: "

    2 credits per API call.


    \n

    Send BTC (Bitcoin) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Bitcoin server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nThere are two possibilites how the transaction on the blockchain can be created:\n
      \n
    • Using mnemonic - all of the addresses, that are generated from the mnemonic are scanned for the incoming deposits\nwhich are used as a source of the transaction. Assets, which are not used in a transaction are moved to the system address wih the derivation index 0. Address with index 0 cannot be assigned automatically to any account and is used for custodial wallet use cases. For non-custodial wallets, field attr should be present and it should be address with the index 1 of the connected wallet.
    • \n
    • Using keyPair - addresses which are used as a source of the transaction are entered manually
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \nThis method is a helper method, which internally wraps these steps:\n
      \n
    1. Store withdrawal - create a ledger transaction, which debits the assets on the sender account.
    2. \n
    3. Perform blockchain transaction
    4. \n
    5. Complete withdrawal - move the withdrawal to the completed state, when all of the previous steps were successful.
    6. \n
    \nWhen some of the steps fails, Cancel withdrawal operation is used, which cancels withdrawal and creates refund transaction to the sender 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 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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/celodeployerc20ledger.md b/v1.0/Virtual Accounts/blockchain-operations-2/celodeployerc20ledger.md new file mode 100644 index 00000000..4eb47e46 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/celodeployerc20ledger.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a Celo ERC-20-equivalent smart contract to the blockchain and a virtual account" +slug: "celodeployerc20ledger" +excerpt: "

    4 credits per API call

    \n

    Deploy a Celo ERC-20-equivalent smart contract. This is a helper method, which is combination of\nRegister new Celo ERC-20 token in the ledger and Deploy blockchain ERC20.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying a Celo ERC-20-equivalent smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/celoorerc20transfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/celoorerc20transfer.md new file mode 100644 index 00000000..f7bb52c1 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/celoorerc20transfer.md @@ -0,0 +1,8 @@ +--- +title: "Send CELO from a virtual account to the blockchain" +slug: "celoorerc20transfer" +excerpt: "

    4 credits per API call.


    \n

    Send CELO (Celo), ERC-20-equivalent Celo tokens, cUSD, or cEUR from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n
    \n
    \n

      \n
    • If Celo server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/createbep20.md b/v1.0/Virtual Accounts/blockchain-operations-2/createbep20.md new file mode 100644 index 00000000..5b5b18f6 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/createbep20.md @@ -0,0 +1,8 @@ +--- +title: "Register a new BNB Smart Chain BEP-20 token in the virtual account" +slug: "createbep20" +excerpt: "

    This method is deprecated.
    Use this method instead.


    \n

    2 credits per API call.

    \n

    First step to create new BEP20 token with given supply on BSC blockchain with support of Tatum's private ledger.
    \n
    \n
    \nThis method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
    \nThe whole supply of BEP20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with BEP20 token name as account's currency.
    \nNewly created account is frozen until the specific BEP20 smart contract address is linked with the Tatum virtual currency, representing the token.
    \nOrder of the steps to create BEP20 smart contract with Tatum private ledger support:\n

      \n
    1. Register BEP20 token - creates a virtual currency within Tatum
    2. \n
    3. Deploy BEP20 smart contract - create new BEP20 smart contract on the blockchain
    4. \n
    5. Store BEP20 smart contract address - link newly created BEP20 smart contract address with Tatum virtual currency - this operation enables frozen account and enables ledger synchronization for BEP20 Tatum accounts
    6. \n
    \nThere is a helper method Deploy BSC BEP20 Smart Contract to Blockchain and Ledger, which wraps first 2 steps into 1 method.
    \nAddress on the blockchain, where all initial supply will be transferred, can be defined via the address or xpub and derivationIndex. When xpub is present, the account connected to this virtualCurrency will be set as the account's xpub.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/createceloerc20.md b/v1.0/Virtual Accounts/blockchain-operations-2/createceloerc20.md new file mode 100644 index 00000000..e25022c0 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/createceloerc20.md @@ -0,0 +1,8 @@ +--- +title: "Register a new Celo ERC-20-equivalent token in the virtual account" +slug: "createceloerc20" +excerpt: "

    This method is deprecated.
    Use this method instead.


    \n

    2 credits per API call.

    \n

    First step to create new ERC-20 token with given supply on Celo blockchain with support of Tatum's private ledger.
    \n
    \n
    \nThis method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
    \nThe whole supply of ERC-20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with ERC-20 token name as account's currency.
    \nNewly created account is frozen until the specific ERC-20 smart contract address is linked with the Tatum virtual currency, representing the token.
    \nOrder of the steps to create ERC-20 smart contract with Tatum private ledger support:\n

      \n
    1. Register Celo ERC-20 token - creates a virtual currency within Tatum
    2. \n
    3. Deploy Celo ERC-20 smart contract - create new ERC-20 smart contract on the blockchain
    4. \n
    5. Store Celo ERC-20 smart contract address - link newly created ERC-20 smart contract address with Tatum virtual currency - this operation enables frozen account and enables ledger synchronization for ERC-20 Tatum accounts
    6. \n
    \nThere is a helper method Deploy Celo ERC-20 Smart Contract to Blockchain and Ledger, which wraps first 2 steps into 1 method.
    \nAddress on the blockchain, where all initial supply will be transferred, can be defined via the address or xpub and derivationIndex. When xpub is present, the account connected to this virtualCurrency will be set as the account's xpub.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/createerc20.md b/v1.0/Virtual Accounts/blockchain-operations-2/createerc20.md new file mode 100644 index 00000000..1ff006c4 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/createerc20.md @@ -0,0 +1,8 @@ +--- +title: "Register a new Ethereum ERC-20 token in the virtual account" +slug: "createerc20" +excerpt: "

    This method is deprecated.
    Use this method instead.


    \n

    2 credits per API call.

    \n

    First step to create new ERC20 token with given supply on Ethereum blockchain with support of Tatum's private ledger.
    \nThis method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
    \nThe whole supply of ERC20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with ERC20 token name as account's currency.
    \nNewly created account is frozen until the specific ERC20 smart contract address is linked with the Tatum virtual currency, representing the token.
    \nOrder of the steps to create ERC20 smart contract with Tatum private ledger support:\n

      \n
    1. Create ERC20 token - creates a virtual currency within Tatum
    2. \n
    3. Deploy ERC20 smart contract - create new ERC20 smart contract on the blockchain
    4. \n
    5. Store ERC20 smart contract address - link newly created ERC20 smart contract address with Tatum virtual currency - this operation enables frozen account and enables ledger synchronization for ERC20 Tatum accounts
    6. \n
    \nThere is a helper method Deploy Ethereum ERC20 Smart Contract to Blockchain and Ledger, which wraps first 2 steps into 1 method.
    \nAddress on the blockchain, where all initial supply will be transferred, can be defined via the address or xpub and derivationIndex. When xpub is present, the account connected to this virtualCurrency will be set as the account's xpub.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/createhrm20.md b/v1.0/Virtual Accounts/blockchain-operations-2/createhrm20.md new file mode 100644 index 00000000..7152d68c --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/createhrm20.md @@ -0,0 +1,8 @@ +--- +title: "Register a new Harmony HRM-20 token in the virtual account" +slug: "createhrm20" +excerpt: "

    This method is deprecated.
    Use this method instead.


    \n

    2 credits per API call.

    \n

    First step to create new HRM20 token with given supply on ONE blockchain with support of Tatum's private ledger.
    \n
    \n
    \nThis method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
    \nThe whole supply of HRM20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with HRM20 token name as account's currency.
    \nNewly created account is frozen until the specific HRM20 smart contract address is linked with the Tatum virtual currency, representing the token.
    \nOrder of the steps to create HRM20 smart contract with Tatum private ledger support:\n

      \n
    1. Register HRM20 token - creates a virtual currency within Tatum
    2. \n
    3. Deploy HRM20 smart contract - create new HRM20 smart contract on the blockchain
    4. \n
    5. Store HRM20 smart contract address - link newly created HRM20 smart contract address with Tatum virtual currency - this operation enables frozen account and enables ledger synchronization for HRM20 Tatum accounts
    6. \n
    \nThere is a helper method Deploy ONE HRM20 Smart Contract to Blockchain and Ledger, which wraps first 2 steps into 1 method.
    \nAddress on the blockchain, where all initial supply will be transferred, can be defined via the address or xpub and derivationIndex. When xpub is present, the account connected to this virtualCurrency will be set as the account's xpub.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/createtrc.md b/v1.0/Virtual Accounts/blockchain-operations-2/createtrc.md new file mode 100644 index 00000000..236f6daa --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/createtrc.md @@ -0,0 +1,8 @@ +--- +title: "Register a new TRON TRC-10 or TRC-20 token in the virtual account" +slug: "createtrc" +excerpt: "

    10 credits per API call.


    \n

    First step to create new TRC 10/20 token with given supply on the Tron blockchain with support of Tatum's private ledger.
    \nThis method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
    \nThe whole supply of TRC 10/20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with TRC 10/20 token name as account's currency.
    \nNewly created account is frozen until the specific TRC 10/20 smart contract address is linked with the Tatum virtual currency, representing the token.
    \nOrder of the steps to create TRC 10/20 smart contract with Tatum private ledger support:\n

      \n
    1. Create TRC 10/20 token (this API) - creates a virtual currency within Tatum
    2. \n
    3. Deploy TRC 10 or TRC 20 smart contract - create new TRC 10/20 smart contract on the blockchain
    4. \n
    5. Store TRC 10/20 smart contract address - link newly created TRC 10/20 smart contract address with Tatum virtual currency - this operation enables frozen account and enables ledger synchronization for TRC 10/20 Tatum accounts
    6. \n
    \nBlockchain address will be assigned to the virtual account as a deposit address. It can be defined via the address explicitly or by using xpub and derivationIndex.\nThere is a helper method Deploy TRC 10/20 Smart Contract to Blockchain and Ledger, which wraps first 2 steps into 1 method.
    \n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/createxdc20.md b/v1.0/Virtual Accounts/blockchain-operations-2/createxdc20.md new file mode 100644 index 00000000..0be22e0b --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/createxdc20.md @@ -0,0 +1,8 @@ +--- +title: "Register a new XinFin ERC-20-equivalent token in the virtual account" +slug: "createxdc20" +excerpt: "

    This method is deprecated.
    Use this method instead.


    \n

    2 credits per API call.

    \n

    First step to create new ERC20 token with given supply on XDC blockchain with support of Tatum's private ledger.
    \nThis method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
    \nThe whole supply of ERC20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with ERC20 token name as account's currency.
    \nNewly created account is frozen until the specific ERC20 smart contract address is linked with the Tatum virtual currency, representing the token.
    \nOrder of the steps to create ERC20 smart contract with Tatum private ledger support:\n

      \n
    1. Register ERC20 token - creates a virtual currency within Tatum
    2. \n
    3. Deploy ERC20 smart contract - create new ERC20 smart contract on the blockchain
    4. \n
    5. Store ERC20 smart contract address - link newly created ERC20 smart contract address with Tatum virtual currency - this operation enables frozen account and enables ledger synchronization for ERC20 Tatum accounts
    6. \n
    \nThere is a helper method Deploy XDC ERC20 Smart Contract to Blockchain and Ledger, which wraps first 2 steps into 1 method.
    \nAddress on the blockchain, where all initial supply will be transferred, can be defined via the address or xpub and derivationIndex. When xpub is present, the account connected to this virtualCurrency will be set as the account's xpub.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/dogetransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/dogetransfer.md new file mode 100644 index 00000000..a51bead3 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/dogetransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send DOGE from a virtual account to the blockchain" +slug: "dogetransfer" +excerpt: "

    4 credits per API call.


    \n

    Send DOGE (Dogecoin) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Dogecoin server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nThere are two possibilites how the transaction on the blockchain can be created:\n
      \n
    • Using mnemonic - all of the addresses, that are generated from the mnemonic are scanned for the incoming deposits\nwhich are used as a source of the transaction. Assets, which are not used in a transaction are moved to the system address wih the derivation index 0. Address with index 0 cannot be assigned automatically to any account and is used for custodial wallet use cases. For non-custodial wallets, field attr should be present and it should be address with the index 1 of the connected wallet.
    • \n
    • Using keyPair - addresses which are used as a source of the transaction are entered manually
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \nThis method is a helper method, which internally wraps these steps:\n
      \n
    1. Store withdrawal - create a ledger transaction, which debits the assets on the sender account.
    2. \n
    3. Perform blockchain transaction
    4. \n
    5. Complete withdrawal - move the withdrawal to the completed state, when all of the previous steps were successful.
    6. \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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/egldtransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/egldtransfer.md new file mode 100644 index 00000000..42e6302a --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/egldtransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send EGLD from a virtual account to the blockchain" +slug: "egldtransfer" +excerpt: "

    4 credits per API call.


    \n

    Send EGLD from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n
    \n
    \n

      \n
    • If server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/ethdeployerc20.md b/v1.0/Virtual Accounts/blockchain-operations-2/ethdeployerc20.md new file mode 100644 index 00000000..0b645a68 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/ethdeployerc20.md @@ -0,0 +1,8 @@ +--- +title: "Deploy an Ethereum ERC-20 smart contract to the blockchain and a virtual account" +slug: "ethdeployerc20" +excerpt: "

    4 credits per API call

    \n

    Deploy an Ethereum ERC-20 smart contract. This is a helper method, which is combination of\nRegister new ERC20 token in the ledger and Deploy blockchain ERC20.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying an Ethereum ERC-20 smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/ethtransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/ethtransfer.md new file mode 100644 index 00000000..d6e383cc --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/ethtransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send ETH from a virtual account to the blockchain" +slug: "ethtransfer" +excerpt: "

    4 credits per API call.


    \n

    Send ETH (Ethereum) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Ethereum server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/ethtransfererc20.md b/v1.0/Virtual Accounts/blockchain-operations-2/ethtransfererc20.md new file mode 100644 index 00000000..005498d9 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/ethtransfererc20.md @@ -0,0 +1,8 @@ +--- +title: "Send Ethereum ERC-20 tokens from a virtual account to the blockchain" +slug: "ethtransfererc20" +excerpt: "

    4 credits per API call.


    \n

    Send Ethereum ERC-20 tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Ethereum server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/flowtransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/flowtransfer.md new file mode 100644 index 00000000..f3d51c85 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/flowtransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send FLOW from a virtual account to the blockchain" +slug: "flowtransfer" +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

    Send FLOW (Flow) or FUSD from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Flow server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \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
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \nThis method is a helper method, which internally wraps these steps:\n
      \n
    1. Store withdrawal - create a ledger transaction, which debits the assets on the sender account.
    2. \n
    3. Perform blockchain transaction
    4. \n
    5. Complete withdrawal - move the withdrawal to the completed state, when all of the previous steps were successful.
    6. \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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/kcsdeployerc20ledger.md b/v1.0/Virtual Accounts/blockchain-operations-2/kcsdeployerc20ledger.md new file mode 100644 index 00000000..ca07cdeb --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/kcsdeployerc20ledger.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a KuCoin Community Chain (KCC) ERC-20-equivalent smart contract to the blockchain and a virtual account" +slug: "kcsdeployerc20ledger" +excerpt: "

    4 credits per API call

    \n

    Deploy a KuCoin Community Chain (KCC) ERC-20-equivalent smart contract. This is a helper method, which is combination of\nRegister new Kcs ERC20 token in the ledger and Deploy blockchain ERC20.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying a KCC ERC-20-equivalent smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/kcstransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/kcstransfer.md new file mode 100644 index 00000000..f1dcb7e2 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/kcstransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send KCS from a virtual account to the blockchain" +slug: "kcstransfer" +excerpt: "

    4 credits per API call.


    \n

    Send KCS (KuCoin Community Chain (KCC)) or ERC-20-equivalent KCC tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If KCS server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/klaydeployerc20.md b/v1.0/Virtual Accounts/blockchain-operations-2/klaydeployerc20.md new file mode 100644 index 00000000..fd97d8e4 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/klaydeployerc20.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a Klaytn ERC-20-equivalent smart contract to the blockchain and a virtual account" +slug: "klaydeployerc20" +excerpt: "

    4 credits per API call

    \n

    Deploy a Klaytn ERC-20-equivalent smart contract. This is a helper method, which is combination of\nRegister new ERC20 token in the ledger and Deploy blockchain ERC20.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying a Klaytn ERC-20-equivalent smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/klaytransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/klaytransfer.md new file mode 100644 index 00000000..8f5fa59d --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/klaytransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send KLAY from a virtual account to the blockchain" +slug: "klaytransfer" +excerpt: "

    4 credits per API call.


    \n

    Send KLAY or ERC-20-equivalent tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n
    \n
    \n

      \n
    • If KLAY server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/ltctransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/ltctransfer.md new file mode 100644 index 00000000..0e892267 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/ltctransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send LTC from a virtual account to the blockchain" +slug: "ltctransfer" +excerpt: "

    10 credits per API call.


    \n

    Send LTC (Litecoin) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Litecoin server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nThere are two possibilites how the transaction on the blockchain can be created:\n
      \n
    • Using mnemonic - all of the addresses, that are generated from the mnemonic are scanned for the incoming deposits\nwhich are used as a source of the transaction. Assets, which are not used in a transaction are moved to the system address wih the derivation index 0. Address with index 0 cannot be assigned automatically to any account and is used for custodial wallet use cases. For non-custodial wallets, field attr should be present and it should be address with the index 1 of the connected wallet.
    • \n
    • Using keyPair - addresses which are used as a source of the transaction are entered manually
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \nThis method is a helper method, which internally wraps these steps:\n
      \n
    1. Store withdrawal - create a ledger transaction, which debits the assets on the sender account.
    2. \n
    3. Perform blockchain transaction
    4. \n
    5. Complete withdrawal - move the withdrawal to the completed state, when all of the previous steps were successful.
    6. \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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/onedeployhrm20.md b/v1.0/Virtual Accounts/blockchain-operations-2/onedeployhrm20.md new file mode 100644 index 00000000..18583f09 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/onedeployhrm20.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a Harmony HRM-20 smart contract to the blockchain and a virtual account" +slug: "onedeployhrm20" +excerpt: "

    4 credits per API call

    \n

    Deploy a Harmony HRM-20 smart contract. This is a helper method, which is combination of\nRegister new HRM20 token in the ledger and Deploy blockchain ERC20.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying a Harmony HRM-20 smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/onetransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/onetransfer.md new file mode 100644 index 00000000..fc629e33 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/onetransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send ONE from a virtual account to the blockchain" +slug: "onetransfer" +excerpt: "

    4 credits per API call.


    \n

    Send ONE (Harmony) or HRM-20 tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n
    \n
    \n

      \n
    • If ONE server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/polygontransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/polygontransfer.md new file mode 100644 index 00000000..ff44388b --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/polygontransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send MATIC from a virtual account to the blockchain" +slug: "polygontransfer" +excerpt: "

    4 credits per API call.


    \n

    Send MATIC (Polygon) or ERC-20-equivalent Polygon tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Polygon server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/registererc20token.md b/v1.0/Virtual Accounts/blockchain-operations-2/registererc20token.md new file mode 100644 index 00000000..d42be352 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/registererc20token.md @@ -0,0 +1,8 @@ +--- +title: "Register a new ERC-20 or ERC-20-equivalent token in the virtual account" +slug: "registererc20token" +excerpt: "

    2 credits per API call.


    \n

    This is the first step to create a new ERC-20 or ERC-20 equivalent token with some supply in a virtual account.
    \n
    \n
    \nThis method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
    \nThe whole supply of token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with token name as account's currency.
    \nNewly created account is frozen until the specific smart contract address is linked with the Tatum virtual currency, representing the token.
    \nOrder of the steps to create smart contract with Tatum private ledger support:\n

      \n
    1. Register token (this API) - creates a virtual currency within Tatum
    2. \n
    3. Deploy smart contract - create new smart contract on the blockchain
    4. \n
    5. Store smart contract address - link newly created smart contract address with Tatum virtual currency - this operation enables frozen account and enables ledger synchronization for Tatum accounts
    6. \n
    \nBlockchain address will be assigned to the virtual account as a deposit address. It can be defined via the address explicitly or by using xpub and derivationIndex.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/soltransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/soltransfer.md new file mode 100644 index 00000000..4fa866ed --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/soltransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send SOL from a virtual account to the blockchain" +slug: "soltransfer" +excerpt: "

    10 credits per API call

    \n

    Send SOL (Solana), USDC_SOL, or custom SPL tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. When every system works as expected,\nwithdrawal request is marked as complete and transaction id is assigned to it.

    \n
      \n
    • If SOL server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \n

    It is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.

    \n

    This 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/storeceloerc20address.md b/v1.0/Virtual Accounts/blockchain-operations-2/storeceloerc20address.md new file mode 100644 index 00000000..197b3c57 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/storeceloerc20address.md @@ -0,0 +1,8 @@ +--- +title: "Set the contract address of a Celo ERC-20-equivalent token" +slug: "storeceloerc20address" +excerpt: "

    This method is deprecated.
    Use this method instead.


    \n

    2 credits per API call.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/storetokenaddress.md b/v1.0/Virtual Accounts/blockchain-operations-2/storetokenaddress.md new file mode 100644 index 00000000..b9f34b2c --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/storetokenaddress.md @@ -0,0 +1,8 @@ +--- +title: "Set the contract address of an ERC-20, ERC-20-equivalent, or TRC-10 token" +slug: "storetokenaddress" +excerpt: "

    2 credits per API call

    \n

    Set the contract address of an ERC-20, ERC-20-equivalent (for example, BEP-20, HRM-20, and so on), or TRC-10 token to be able to communicate with the smart contract.

    \n

    After creating and deploying the token to the blockchain, the smart contract address is generated and must be set within Tatum. If the address is not set, the Tatum platform will not be able to detect incoming deposits of the tokens and transfer the tokens from virtual accounts to blockchain addresses.

    \n

    NOTE:

    \n
      \n
    • For Algorand, the contract address is the asset ID (assetId), for example, 55351976.
    • \n
    • For TRON, the contract address is the token ID (tokenId), for example, 1234567.
    • \n
    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/storetrcaddress.md b/v1.0/Virtual Accounts/blockchain-operations-2/storetrcaddress.md new file mode 100644 index 00000000..a5a497ad --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/storetrcaddress.md @@ -0,0 +1,8 @@ +--- +title: "Set the contract address of a TRC-10 or TRC-20 token" +slug: "storetrcaddress" +excerpt: "

    This method is deprecated.
    Use this method instead.


    \n

    2 credits per API call.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/trondeploytrc.md b/v1.0/Virtual Accounts/blockchain-operations-2/trondeploytrc.md new file mode 100644 index 00000000..e9210978 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/trondeploytrc.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a TRON TRC-10 or TRC-20 smart contract to the blockchain and a virtual account" +slug: "trondeploytrc" +excerpt: "

    10 credits per API call

    \n

    Deploy a TRON TRC-10 or TRC-20 smart contract. This is a helper method, which is combination of\nRegister new TRC-10/20 token in the ledger and Deploy blockchain TRC20 or Deploy blockchain TRC10.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying a TRON TRC-10 or TRC-20 smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/trontransferoffchain.md b/v1.0/Virtual Accounts/blockchain-operations-2/trontransferoffchain.md new file mode 100644 index 00000000..d31377fc --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/trontransferoffchain.md @@ -0,0 +1,8 @@ +--- +title: "Send TRON from a virtual account to the blockchain" +slug: "trontransferoffchain" +excerpt: "

    10 credits per API call.


    Send TRON or TRX assets from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If Tron server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/xdcdeployerc20.md b/v1.0/Virtual Accounts/blockchain-operations-2/xdcdeployerc20.md new file mode 100644 index 00000000..1a7eb2cd --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/xdcdeployerc20.md @@ -0,0 +1,8 @@ +--- +title: "Deploy a XinFin ERC-20-equivalent smart contract to the blockchain and a virtual account" +slug: "xdcdeployerc20" +excerpt: "

    4 credits per API call

    \n

    Deploy a XinFin ERC-20-equivalent smart contract. This is a helper method, which is combination of\nRegister new ERC20 token in the ledger and Deploy blockchain ERC20.

    \n

    After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.

    \n

    Signing a transaction
    \nWhen deploying a XinFin ERC-20-equivalent smart contract to the blockchain and a virtual 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/xdctransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/xdctransfer.md new file mode 100644 index 00000000..36b06b5a --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/xdctransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send XDC from a virtual account to the blockchain" +slug: "xdctransfer" +excerpt: "

    4 credits per API call.


    \n

    Send XDC (XinFin) or ERC-20-equivalent XinFin tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n
    \n
    \n

      \n
    • If XDC server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/xlmassetoffchain.md b/v1.0/Virtual Accounts/blockchain-operations-2/xlmassetoffchain.md new file mode 100644 index 00000000..647d4cac --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/xlmassetoffchain.md @@ -0,0 +1,8 @@ +--- +title: "Create an XLM-based asset" +slug: "xlmassetoffchain" +excerpt: "

    2 credits per API call.


    \n

    Create an XLM-based asset in a virtual account. The asset must be created and configured on the Stellar blockchain before creating a trust line.

    \n

    This API call will create an internal virtual currency. You can create virtual accounts with off-chain support.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/xlmtransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/xlmtransfer.md new file mode 100644 index 00000000..07cb1c06 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/xlmtransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send XLM from a virtual account to the blockchain" +slug: "xlmtransfer" +excerpt: "

    10 credits per API call

    \n

    Send XLM (Stellar) or XLM-based assets from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. When every system works as expected,\nwithdrawal request is marked as complete and transaction id is assigned to it.

    \n
      \n
    • If XLM server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be completed manually, otherwise all other withdrawals will be pending.
    • \n
    \n

    It is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.

    \n

    This 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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/xrpassetoffchain.md b/v1.0/Virtual Accounts/blockchain-operations-2/xrpassetoffchain.md new file mode 100644 index 00000000..e8583bdc --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/xrpassetoffchain.md @@ -0,0 +1,8 @@ +--- +title: "Create XRP based Asset" +slug: "xrpassetoffchain" +excerpt: "

    2 credits per API call.


    \n

    Create an XRP-based asset in a virtual account. The asset must be created and configured on the XRPL blockchain before creating a trust line.

    \n

    This API call will create an internal virtual currency. You can create virtual accounts with off-chain support.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:16 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/blockchain-operations-2/xrptransfer.md b/v1.0/Virtual Accounts/blockchain-operations-2/xrptransfer.md new file mode 100644 index 00000000..6a96e586 --- /dev/null +++ b/v1.0/Virtual Accounts/blockchain-operations-2/xrptransfer.md @@ -0,0 +1,8 @@ +--- +title: "Send XRP from a virtual account to the blockchain" +slug: "xrptransfer" +excerpt: "

    10 credits per API call.


    \n

    Send XRP from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. When every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.\n

      \n
    • If XRP server connection is unavailable, withdrawal request is cancelled.
    • \n
    • If blockchain transfer is successful, but is it not possible to reach Tatum, transaction id of blockchain transaction is returned and withdrawal request must be\ncompleted manually, otherwise all other withdrawals will be pending.
    • \n
    \nIt is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
    \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:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/customer.md b/v1.0/Virtual Accounts/customer.md new file mode 100644 index 00000000..6db54167 --- /dev/null +++ b/v1.0/Virtual Accounts/customer.md @@ -0,0 +1,8 @@ +--- +title: "Customer" +slug: "customer" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/customer/activatecustomer.md b/v1.0/Virtual Accounts/customer/activatecustomer.md new file mode 100644 index 00000000..d125efbc --- /dev/null +++ b/v1.0/Virtual Accounts/customer/activatecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Activate customer" +slug: "activatecustomer" +excerpt: "

    2 credits per API call.


    Activated customer is able to do any operation.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/customer/deactivatecustomer.md b/v1.0/Virtual Accounts/customer/deactivatecustomer.md new file mode 100644 index 00000000..a17faeec --- /dev/null +++ b/v1.0/Virtual Accounts/customer/deactivatecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Deactivate customer" +slug: "deactivatecustomer" +excerpt: "

    2 credits per API call.


    Deactivate customer is not able to do any operation. Customer can be deactivated only when all their accounts are already deactivated.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/customer/disablecustomer.md b/v1.0/Virtual Accounts/customer/disablecustomer.md new file mode 100644 index 00000000..9ea6a1b4 --- /dev/null +++ b/v1.0/Virtual Accounts/customer/disablecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Disable customer" +slug: "disablecustomer" +excerpt: "

    2 credits per API call.


    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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/customer/enablecustomer.md b/v1.0/Virtual Accounts/customer/enablecustomer.md new file mode 100644 index 00000000..e45c5a9b --- /dev/null +++ b/v1.0/Virtual Accounts/customer/enablecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Enable customer" +slug: "enablecustomer" +excerpt: "

    2 credits per API call.


    Enabled customer can perform all operations. By default all customers are enabled. All previously blocked account balances will be unblocked.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/customer/findallcustomers.md b/v1.0/Virtual Accounts/customer/findallcustomers.md new file mode 100644 index 00000000..c74a2146 --- /dev/null +++ b/v1.0/Virtual Accounts/customer/findallcustomers.md @@ -0,0 +1,8 @@ +--- +title: "List all customers" +slug: "findallcustomers" +excerpt: "

    1 credit per API call.


    \n

    List of all customers. Also inactive an disabled customers are present.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/customer/getcustomerbyexternalorinternalid.md b/v1.0/Virtual Accounts/customer/getcustomerbyexternalorinternalid.md new file mode 100644 index 00000000..f04fc2ca --- /dev/null +++ b/v1.0/Virtual Accounts/customer/getcustomerbyexternalorinternalid.md @@ -0,0 +1,8 @@ +--- +title: "Get customer details" +slug: "getcustomerbyexternalorinternalid" +excerpt: "

    1 credit per API call.


    Using anonymized external ID or internal customer ID you can access customer detail information. Internal ID is needed to call other customer related methods.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/customer/updatecustomer.md b/v1.0/Virtual Accounts/customer/updatecustomer.md new file mode 100644 index 00000000..dbd8e640 --- /dev/null +++ b/v1.0/Virtual Accounts/customer/updatecustomer.md @@ -0,0 +1,8 @@ +--- +title: "Update customer" +slug: "updatecustomer" +excerpt: "

    2 credits per API call.


    This method is helpful in case your primary system will change ID's or customer will change the country he/she is supposed to be in compliance with.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/deposit.md b/v1.0/Virtual Accounts/deposit.md new file mode 100644 index 00000000..1f7789fd --- /dev/null +++ b/v1.0/Virtual Accounts/deposit.md @@ -0,0 +1,8 @@ +--- +title: "Deposit" +slug: "deposit" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/deposit/getdeposits.md b/v1.0/Virtual Accounts/deposit/getdeposits.md new file mode 100644 index 00000000..b9ae42c7 --- /dev/null +++ b/v1.0/Virtual Accounts/deposit/getdeposits.md @@ -0,0 +1,8 @@ +--- +title: "List all deposits for product" +slug: "getdeposits" +excerpt: "

    1 credit per API call.


    Lists all deposits for API key.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/deposit/getdepositscount.md b/v1.0/Virtual Accounts/deposit/getdepositscount.md new file mode 100644 index 00000000..85d9c85a --- /dev/null +++ b/v1.0/Virtual Accounts/deposit/getdepositscount.md @@ -0,0 +1,8 @@ +--- +title: "Count of found entities for get deposits request" +slug: "getdepositscount" +excerpt: "

    1 credit per API call.


    Counts total entities found by get deposits request.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book.md b/v1.0/Virtual Accounts/order-book.md new file mode 100644 index 00000000..2498ced9 --- /dev/null +++ b/v1.0/Virtual Accounts/order-book.md @@ -0,0 +1,8 @@ +--- +title: "Order Book" +slug: "order-book" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/chartrequest.md b/v1.0/Virtual Accounts/order-book/chartrequest.md new file mode 100644 index 00000000..ddb5f319 --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/chartrequest.md @@ -0,0 +1,8 @@ +--- +title: "Obtain chart data from historical closed trades" +slug: "chartrequest" +excerpt: "

    2 credits for API call.


    \n

    Obtain data from the closed trades for entering in the chart. Time interval is set between from and to and there is defined time frame. There can be obtained at most 200 time points in the time interval.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/deleteaccounttrades.md b/v1.0/Virtual Accounts/order-book/deleteaccounttrades.md new file mode 100644 index 00000000..9bbe3e92 --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/deleteaccounttrades.md @@ -0,0 +1,8 @@ +--- +title: "Cancel all existing trades for account" +slug: "deleteaccounttrades" +excerpt: "

    1 credit for API call, 1 credit for each cancelled trade. 1 API call + 2 cancellations = 3 credits.


    Cancel all trades for account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/deletetrade.md b/v1.0/Virtual Accounts/order-book/deletetrade.md new file mode 100644 index 00000000..f9bfa81a --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/deletetrade.md @@ -0,0 +1,8 @@ +--- +title: "Cancel existing trade" +slug: "deletetrade" +excerpt: "

    1 credit for API call


    Cancel existing trade.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/getbuytrades.md b/v1.0/Virtual Accounts/order-book/getbuytrades.md new file mode 100644 index 00000000..e83fe6ff --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/getbuytrades.md @@ -0,0 +1,8 @@ +--- +title: "List all active buy trades" +slug: "getbuytrades" +excerpt: "

    1 credit per API call.


    List all active buy trades.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/getbuytradesbody.md b/v1.0/Virtual Accounts/order-book/getbuytradesbody.md new file mode 100644 index 00000000..1ef28411 --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/getbuytradesbody.md @@ -0,0 +1,8 @@ +--- +title: "List all active buy trades" +slug: "getbuytradesbody" +excerpt: "

    1 credit per API call.


    List all active buy trades.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/gethistoricaltrades.md b/v1.0/Virtual Accounts/order-book/gethistoricaltrades.md new file mode 100644 index 00000000..a9849146 --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/gethistoricaltrades.md @@ -0,0 +1,8 @@ +--- +title: "List all historical trades" +slug: "gethistoricaltrades" +excerpt: "

    1 credit per API call.


    List all historical trades. It is possible to list all trades, trades for specific trading pair and/or account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/gethistoricaltradesbody.md b/v1.0/Virtual Accounts/order-book/gethistoricaltradesbody.md new file mode 100644 index 00000000..dfd07f19 --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/gethistoricaltradesbody.md @@ -0,0 +1,8 @@ +--- +title: "List all historical trades" +slug: "gethistoricaltradesbody" +excerpt: "

    1 credit per API call.


    List all historical trades. It is possible to list all trades, trades for specific trading pair and/or account.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/getmatchedtrades.md b/v1.0/Virtual Accounts/order-book/getmatchedtrades.md new file mode 100644 index 00000000..4172ef4a --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/getmatchedtrades.md @@ -0,0 +1,8 @@ +--- +title: "List all matched orders from FUTURE_SELL/FUTURE_BUY trades" +slug: "getmatchedtrades" +excerpt: "

    1 credit per API call.


    List all matched orders from the FUTURE_BUY OR FUTURE_SELL orders.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/getselltrades.md b/v1.0/Virtual Accounts/order-book/getselltrades.md new file mode 100644 index 00000000..4595f54e --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/getselltrades.md @@ -0,0 +1,8 @@ +--- +title: "List all active sell trades" +slug: "getselltrades" +excerpt: "

    1 credit per API call.


    List all active sell trades.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/getselltradesbody.md b/v1.0/Virtual Accounts/order-book/getselltradesbody.md new file mode 100644 index 00000000..0b0710ca --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/getselltradesbody.md @@ -0,0 +1,8 @@ +--- +title: "List all active sell trades" +slug: "getselltradesbody" +excerpt: "

    1 credit per API call.


    List all active sell trades.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/gettradebyid.md b/v1.0/Virtual Accounts/order-book/gettradebyid.md new file mode 100644 index 00000000..55c323c4 --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/gettradebyid.md @@ -0,0 +1,8 @@ +--- +title: "Get existing trade" +slug: "gettradebyid" +excerpt: "

    1 credit for API call


    Get existing opened trade.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/order-book/storetrade.md b/v1.0/Virtual Accounts/order-book/storetrade.md new file mode 100644 index 00000000..da0edab7 --- /dev/null +++ b/v1.0/Virtual Accounts/order-book/storetrade.md @@ -0,0 +1,8 @@ +--- +title: "Store buy / sell trade" +slug: "storetrade" +excerpt: "

    2 credits for API call, 2 credits for each fill of the counter trade. 1 API call + 2 fills = 6 credits.


    \n

    Store new buy / sell trade. If there is trade already available to fill, fill as much trades as possible.
    \nIt is possible to charge fees for the trades. Fees are an extra amount on top of the trade amount and are paid in the currency that you going to block\ne.g.:\n- BUY BTC/USDT - fees will be paid in USDT\n- SELL BTC/ETH - fees will be paid in BTC\n

    \n\n

    \nIf you fill type of the trade with FUTURE_BUY or FUTURE_SELL the trade will behave as a trade future. The trade is concluded now but will be fulfilled in future.\nThe date of fulfillment is by the “Seal Date” field. You can also block a percentage of the amount until the future trade has expired.\n

    \n

    Futures can also penalize contracting parties if they don’t have the agreed balance available in their accounts.\nThe penalty is calculated in the following way: Penalty amount = (Percentage of incomplete deal amount because of shortage from user) × (Maximum Penalty percentage of futures deal based on blocked amount and time interval) × (total blocked value).\n

    \n

    Example of the BTC/USDT trade future:

    \n

    The maker creates a sell with the following properties: 1 BTC at a price of 60000 USDT, with a blocking percentage of 22%, a penalty percentage of 45%, a system commision of 1% and with an expiration time of within 12 hours.

    \n
    \n{\n  \"type\": \"FUTURE_SELL\",\n  \"price\": \"60000\",\n  \"amount\": \"1\",\n  \"pair\": \"BTC/USDT\",\n  \"currency1AccountId\": \"60a236db1b57f60d62612bf3\",\n  \"currency2AccountId\": \"609d0696bf835c241ac2920f\",\n  \"fee\": 1,\n  \"feeAccountId\": \"609d0696bf835c251ac2920a\",\n  \"attr\": {\n    \"sealDate\": 1621990960631,\n    \"percentBlock\": 22,\n    \"percentPenalty\": 45\n  }\n}\n
    \n\nThe taker accepts the offer with a buy and blocks 13200 USDT (60000 USDT × 0.22) in their account.\n
    \n{\n  \"type\": \"FUTURE_BUY\",\n  \"price\": \"60000\",\n  \"amount\": \"1\",\n  \"pair\": \"BTC/USDT\",\n  \"currency1AccountId\": \"60a236db1b57f60d62612bf2\",\n  \"currency2AccountId\": \"609d0696bf835c241ac2920a\",\n  \"attr\": {\n    \"sealDate\": 1621990960631,\n    \"percentBlock\": 22,\n    \"percentPenalty\": 45\n  }\n}\n
    \n

    At the time of the trade, the maker and taker have the following conditions.\nThe maker has 0.65 BTC (35% deficit) in their account and the taker has 49200 USDT (18% deficit) in their account.\n

    \n\n

    \nThe maker penalty is equal to 0.35 × 0.22 × (0.45 × 1 BTC) = 0.03465 BTC.\nThe taker penalty is equal to 0.18 × 0.22 × (0.45 × 60000 USDT) = 1069.2 USDT.\n

    \n

    \nThe system commission for the maker is 1 BTC × 1% = 0.01 BTC.\nThe system commission for the taker is 60000 USDT × 1% = 600 USDT.\n

    \n

    \nThe maker’s assets after deducting penalties and commissions equals 0.65 - 0.03465 - 0.01 = 0.60535 BTC. The taker’s assets after deducting penalties and commissions equals 49200 - 1069.2 - 600 = 47530.8 USDT.\n

    \n

    \nThe amount received by the maker after the trade is (0.60535 × 60000) + 1069.2 = 37390.2 USDT and the taker receives 0.60535 + 0.03465 = 0.64 BTC.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/transaction.md b/v1.0/Virtual Accounts/transaction.md new file mode 100644 index 00000000..bb1aac07 --- /dev/null +++ b/v1.0/Virtual Accounts/transaction.md @@ -0,0 +1,8 @@ +--- +title: "Transaction" +slug: "transaction" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/transaction/gettransactions-1.md b/v1.0/Virtual Accounts/transaction/gettransactions-1.md new file mode 100644 index 00000000..aa421453 --- /dev/null +++ b/v1.0/Virtual Accounts/transaction/gettransactions-1.md @@ -0,0 +1,8 @@ +--- +title: "Find transactions within the ledger." +slug: "gettransactions-1" +excerpt: "

    1 credit per API call.


    Find transactions across whole ledger.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/transaction/gettransactionsbyaccountid.md b/v1.0/Virtual Accounts/transaction/gettransactionsbyaccountid.md new file mode 100644 index 00000000..8f1cf5d2 --- /dev/null +++ b/v1.0/Virtual Accounts/transaction/gettransactionsbyaccountid.md @@ -0,0 +1,8 @@ +--- +title: "Find transactions for account." +slug: "gettransactionsbyaccountid" +excerpt: "

    1 credit per API call.


    Finds transactions for the account identified by the given account ID.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/transaction/gettransactionsbycustomerid.md b/v1.0/Virtual Accounts/transaction/gettransactionsbycustomerid.md new file mode 100644 index 00000000..3df7323b --- /dev/null +++ b/v1.0/Virtual Accounts/transaction/gettransactionsbycustomerid.md @@ -0,0 +1,8 @@ +--- +title: "Find transactions for a customer across all of the customer's accounts." +slug: "gettransactionsbycustomerid" +excerpt: "

    1 credit per API call.


    Finds transactions for all accounts of the customer identified by the given internal customer ID.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/transaction/gettransactionsbyreference.md b/v1.0/Virtual Accounts/transaction/gettransactionsbyreference.md new file mode 100644 index 00000000..3982141a --- /dev/null +++ b/v1.0/Virtual Accounts/transaction/gettransactionsbyreference.md @@ -0,0 +1,8 @@ +--- +title: "Find transactions with a given reference across all accounts." +slug: "gettransactionsbyreference" +excerpt: "

    1 credit per API call.


    Finds transactions for all accounts with the given reference.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/transaction/sendtransaction.md b/v1.0/Virtual Accounts/transaction/sendtransaction.md new file mode 100644 index 00000000..a301a9dd --- /dev/null +++ b/v1.0/Virtual Accounts/transaction/sendtransaction.md @@ -0,0 +1,8 @@ +--- +title: "Send payment" +slug: "sendtransaction" +excerpt: "

    4 credits per API call.


    \n

    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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:12 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/transaction/sendtransactionbatch.md b/v1.0/Virtual Accounts/transaction/sendtransactionbatch.md new file mode 100644 index 00000000..3a537288 --- /dev/null +++ b/v1.0/Virtual Accounts/transaction/sendtransactionbatch.md @@ -0,0 +1,8 @@ +--- +title: "Send payment in batch" +slug: "sendtransactionbatch" +excerpt: "

    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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/virtual-currency.md b/v1.0/Virtual Accounts/virtual-currency.md new file mode 100644 index 00000000..1dc4d01f --- /dev/null +++ b/v1.0/Virtual Accounts/virtual-currency.md @@ -0,0 +1,8 @@ +--- +title: "Virtual Currency" +slug: "virtual-currency" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/virtual-currency/createcurrency.md b/v1.0/Virtual Accounts/virtual-currency/createcurrency.md new file mode 100644 index 00000000..f9bdf59a --- /dev/null +++ b/v1.0/Virtual Accounts/virtual-currency/createcurrency.md @@ -0,0 +1,8 @@ +--- +title: "Create new virtual currency" +slug: "createcurrency" +excerpt: "

    2 credits per API call

    \n

    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)

    \n

    Tatum virtual currency acts as any other asset within Tatum. To create a fungible token, see the API for deploying a fungible token smart contract.

    \n

    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.
    • \n
    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/virtual-currency/getcurrency.md b/v1.0/Virtual Accounts/virtual-currency/getcurrency.md new file mode 100644 index 00000000..124e496c --- /dev/null +++ b/v1.0/Virtual Accounts/virtual-currency/getcurrency.md @@ -0,0 +1,8 @@ +--- +title: "Get virtual currency" +slug: "getcurrency" +excerpt: "

    1 credit per API call

    \n

    Get detail of virtual currency.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/virtual-currency/mintcurrency.md b/v1.0/Virtual Accounts/virtual-currency/mintcurrency.md new file mode 100644 index 00000000..bf0e47b6 --- /dev/null +++ b/v1.0/Virtual Accounts/virtual-currency/mintcurrency.md @@ -0,0 +1,8 @@ +--- +title: "Create new supply of virtual currency" +slug: "mintcurrency" +excerpt: "

    2 credits per API call

    \n

    Create new supply of virtual currency linked on the given accountId. Method increases the total supply of the currency.

    \n

    This method creates Ledger transaction with operationType MINT with undefined counterAccountId.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/virtual-currency/revokecurrency.md b/v1.0/Virtual Accounts/virtual-currency/revokecurrency.md new file mode 100644 index 00000000..99e5bbe5 --- /dev/null +++ b/v1.0/Virtual Accounts/virtual-currency/revokecurrency.md @@ -0,0 +1,8 @@ +--- +title: "Destroy supply of virtual currency" +slug: "revokecurrency" +excerpt: "

    2 credits per API call.


    \n

    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.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/virtual-currency/updatecurrency.md b/v1.0/Virtual Accounts/virtual-currency/updatecurrency.md new file mode 100644 index 00000000..9960edbe --- /dev/null +++ b/v1.0/Virtual Accounts/virtual-currency/updatecurrency.md @@ -0,0 +1,8 @@ +--- +title: "Update virtual currency" +slug: "updatecurrency" +excerpt: "

    2 credits per API call.


    Change base pair and/or base rate of existing virtual currency.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:13 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/withdrawal.md b/v1.0/Virtual Accounts/withdrawal.md new file mode 100644 index 00000000..e7c53fc1 --- /dev/null +++ b/v1.0/Virtual Accounts/withdrawal.md @@ -0,0 +1,8 @@ +--- +title: "Withdrawal" +slug: "withdrawal" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/withdrawal/broadcastblockchaintransaction.md b/v1.0/Virtual Accounts/withdrawal/broadcastblockchaintransaction.md new file mode 100644 index 00000000..6b161bf9 --- /dev/null +++ b/v1.0/Virtual Accounts/withdrawal/broadcastblockchaintransaction.md @@ -0,0 +1,8 @@ +--- +title: "Broadcast signed transaction and complete withdrawal" +slug: "broadcastblockchaintransaction" +excerpt: "

    2 credits per API call.


    \n

    Broadcast signed raw transaction end complete withdrawal associated with it.\nWhen broadcast succeeded but it is impossible to complete withdrawal, transaction id of transaction is returned and withdrawal must be completed manually.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:15 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/withdrawal/cancelinprogresswithdrawal.md b/v1.0/Virtual Accounts/withdrawal/cancelinprogresswithdrawal.md new file mode 100644 index 00000000..4657b206 --- /dev/null +++ b/v1.0/Virtual Accounts/withdrawal/cancelinprogresswithdrawal.md @@ -0,0 +1,8 @@ +--- +title: "Cancel withdrawal" +slug: "cancelinprogresswithdrawal" +excerpt: "

    1 credit per API call.


    \n

    This method is helpful if you need to cancel the withdrawal if the blockchain transaction fails or is not yet processed.\nThis does not cancel already broadcast blockchain transaction, only Tatum internal withdrawal, and the ledger transaction, that was linked to this withdrawal.
    \nBy default, the transaction fee is included in the reverted transaction. There are situations, like sending ERC20 on ETH, TRC token on TRON, XLM or XRP based assets, when the fee should not be reverted, because e.g. the fee is in calculated\nin Ethereum and transaction was in ERC20 currency. In this situation, only the transaction amount should be reverted, not the fee.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/withdrawal/completewithdrawal.md b/v1.0/Virtual Accounts/withdrawal/completewithdrawal.md new file mode 100644 index 00000000..64c1784b --- /dev/null +++ b/v1.0/Virtual Accounts/withdrawal/completewithdrawal.md @@ -0,0 +1,8 @@ +--- +title: "Complete withdrawal" +slug: "completewithdrawal" +excerpt: "

    2 credits per API call.


    \n

    Invoke complete withdrawal as soon as blockchain transaction ID is available. All other withdrawals for the same currency will be pending unless the last one is processed and marked as completed.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:14 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/withdrawal/getwithdrawals.md b/v1.0/Virtual Accounts/withdrawal/getwithdrawals.md new file mode 100644 index 00000000..bfec6bad --- /dev/null +++ b/v1.0/Virtual Accounts/withdrawal/getwithdrawals.md @@ -0,0 +1,8 @@ +--- +title: "Get withdrawals" +slug: "getwithdrawals" +excerpt: "

    1 credit per API call.


    Get withdrawals.

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/Virtual Accounts/withdrawal/storewithdrawal.md b/v1.0/Virtual Accounts/withdrawal/storewithdrawal.md new file mode 100644 index 00000000..1fc4ff8e --- /dev/null +++ b/v1.0/Virtual Accounts/withdrawal/storewithdrawal.md @@ -0,0 +1,8 @@ +--- +title: "Store withdrawal" +slug: "storewithdrawal" +excerpt: "

    2 credits per API call

    \n

    Create a withdrawal from Tatum Ledger account to the blockchain.

    \n

    BTC, LTC, DOGE, BCH

    \n

    \n When withdrawal from Tatum is executed, all deposits, which are not processed yet are used as an input and\n change is moved to pool address 0 of wallet for defined account's xpub. If there are no unspent deposits, only last pool address 0 UTXO is used.\n If balance of wallet is not sufficient, it is impossible to perform withdrawal from this account -> funds were transferred to another\n linked wallet within system or outside of Tatum visibility.
    \n For the first time of withdrawal from wallet, there must be some deposit made and funds are obtained from that. Since\n there is no withdrawal, there was no transfer to pool address 0 and thus it is not present in vIn. Pool transfer is identified by missing data.address property in response.\n When last not cancelled withdrawal is not completed and thus there is no tx id of output transaction given,\n we cannot perform next withdrawal.\n

    \n

    ETH

    \n

    \n Withdrawal from Tatum can be processed only from 1 account. In Ethereum Blockchain, each address is recognized as an account and only funds from that account can be sent in 1 transaction.\n Example: Account A has 0.5 ETH, Account B has 0.3 ETH. Account A is linked to Tatum Account 1, Account B is linked to Tatum Account 2. Tatum Account 1 has balance 0.7 Ethereum and\n Tatum Account 2 has 0.1 ETH. Withdrawal from Tatum Account 1 can be at most 0.5 ETH, even though balance in Tatum Private Ledger is 0.7 ETH.\n Because of this Ethereum Blockchain limitation, withdrawal request should always contain sourceAddress, from which withdrawal will be made. To get available balances for Ethereum wallet accounts, use hint endpoint.\n

    \n

    XRP

    \n

    \n XRP withdrawal can contain DestinationTag except of address, which is placed in attr parameter of withdrawal request.\nSourceTag of the blockchain transaction should be withdrawal ID for autocomplete purposes of withdrawals.\n

    \n

    XLM

    \n

    \n XLM withdrawal can contain memo except of address, which is placed in attr parameter of withdrawal request. XLM blockchain does not have possibility to enter source account information.\n It is possible to create memo in format 'destination|source', which is supported way of memo in Tatum and also there is information about the sender account in the blockchain.\n

    \n

    \nWhen withdrawal is created, all other withdrawals with the same currency are pending, unless the current one is marked as complete or cancelled.

    \n

    Tatum ledger transaction is created for every withdrawal request with operation type WITHDRAWAL. The value of the transaction is the withdrawal amount + blockchain fee, which should be paid.\nIn the situation, when there is withdrawal for ERC20, XLM, or XRP based custom assets, the fee is not included in the transaction because it is paid in different assets than the withdrawal itself.\n

    " +hidden: false +createdAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 11:38:10 GMT+0000 (Coordinated Universal Time)" +--- diff --git a/v1.0/getting started/authentication.md b/v1.0/getting started/authentication.md new file mode 100644 index 00000000..96a99ad8 --- /dev/null +++ b/v1.0/getting started/authentication.md @@ -0,0 +1,43 @@ +--- +title: "Authentication" +slug: "authentication" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 12:31:11 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 12:31:20 GMT+0000 (Coordinated Universal Time)" +--- +When using the Tatum API, you authenticate yourself with an API key. + +X-API-Key + +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. + +One API key must be used by only one person. + +Choose one of the following authentication methods: + +Provide the API key in each API call. + +To obtain the API key, create a Tatum account. Once you are logged in, you are automatically assigned the Free plan. + +With the Free plan: + +You get two API keys, one tied to the testnet of a blockchain and the other to the mainnet. +You can make up to five API calls per second. +When making an API call, provide the appropriate API key (testnet or mainnet) as either an HTTP header. + +If you ever need your API keys, you can find them in your Tatum account. +Get an auto-generated API key attached to API calls. + +Make an API call without any API key provided. The API key will be generated and tied to your IP address. This API key is stored within the Tatum platform and is automatically attached to all your API calls. + +With the auto-generated API key: + +You can make up to five API calls per second. +These limits are applied to both the testnet and mainnet. + +By default, API calls with the auto-generated API key are executed against the mainnet. To make an API call to the testnet, add the type query parameter set to testnet to the endpoint URL, for example: + + +Security Scheme Type: API Key +Header parameter name: x-api-key diff --git a/v1.0/getting started/welcome-to-the-tatum-api-reference.md b/v1.0/getting started/welcome-to-the-tatum-api-reference.md new file mode 100644 index 00000000..deabb608 --- /dev/null +++ b/v1.0/getting started/welcome-to-the-tatum-api-reference.md @@ -0,0 +1,21 @@ +--- +title: "Welcome to the Tatum API Reference!" +slug: "welcome-to-the-tatum-api-reference" +excerpt: "" +hidden: false +createdAt: "Mon Feb 05 2024 12:35:35 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Mon Feb 05 2024 12:35:35 GMT+0000 (Coordinated Universal Time)" +--- +Tatum offers a flexible framework to build, run, and scale blockchain apps fast. To learn more about the Tatum blockchain development framework, visit our website. + +The Tatum API features powerful endpoints that simplify a complex blockchain into single API requests. Code for all supported blockchains using unified API calls. + +# Supported Blockchains + +Tatum supports multiple blockchains and various blockchain features. + +Because not all blockchains function identically, Tatum supports a different set of features on each blockchain. + +To see all the blockchains that Tatum supports, please refer to this article - + +...