Web3

How to Get Decoded Wallet History Using an RPC Node

Are you in search of the simplest means to get decoded pockets historical past utilizing an RPC node? If that’s the case, you’ve come to the suitable place. On this tutorial, we’ll introduce Moralis’ Prolonged RPC Strategies, permitting you to question enriched, human-readable information seamlessly utilizing RPC-style requests. Keen to leap into the code? Take a look at our eth_getDecodedTransactions technique in motion:

import fetch from 'node-fetch';

const choices = {
 technique: 'POST',
 headers: {
   settle for: 'software/json',
   'content-type': 'software/json'
 },
 physique: JSON.stringify({
   "jsonrpc": "2.0",
   "id": 1,
   "method": "eth_getDecodedTransactions",
   "params": [
     {
       "address": "0xda74Ac6b69Ff4f1B6796cdDf61fBDd4A5f68525f",
     }
   ]
 })
};

fetch('YOUR_NODE_URL', choices)
 .then(response => response.json())
 .then(response => console.log(response))
 .catch(err => console.error(err));

By calling the strategy above, you’ll obtain the total historical past of the required pockets, enriched with transaction summaries, class tags, addresses, and far more. Right here’s an instance of what it would appear to be:

{
  //...
    "result": [
      {
        "block_hash": "0x660274d577cd20b0b82c1bff5f3c5641ba6027544e005f9256d5add9c7447920",
        "block_number": "19868695",
        "block_timestamp": "2024-05-14T14:00:23.000Z",
        "from_address": "0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f",
        "from_address_label": null,
        "from_address_entity": null,
        "from_address_entity_logo": null,
        "to_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
        "to_address_label": "Tether USD (USDT)",
        "to_address_entity": null,
        "to_address_entity_logo": null,
        "gas": "55331",
        "gas_price": "13623172301",
        "hash": "0xc565260238f59fc3f35b74f3011375c7d637db9b075f77d342c30d19f946272e",
        "nonce": "14",
        "receipt_cumulative_gas_used": "13917979",
        "receipt_gas_used": "41309",
        "receipt_status": "1",
        "transaction_fee": "0.000562759624582009",
        "transaction_index": "75",
        "value": "0",
        "receipt_contract_address": null,
        "nft_transfers": [],
        "erc20_transfers": [
          {
            "token_name": "Tether USD",
            "token_symbol": "USDT",
            "token_logo": "
            "token_decimals": "6",
            "from_address": "0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f",
            "from_address_entity": null,
            "from_address_entity_logo": null,
            "from_address_label": null,
            "to_address": "0x28c6c06298d514db089934071355e5743bf21d60",
            "to_address_label": "Binance 14",
            "to_address_entity": "Binance",
            "to_address_entity_logo": "
            "address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
            "log_index": 338,
            "value": "50000000000",
            "possible_spam": false,
            "verified_contract": true,
            "direction": "send",
            "value_formatted": "50000"
          }
        ],
        "method_label": "transfer",
        "native_transfers": [],
        "summary": "Sent 50,000 USDT to Binance 14",
        "possible_spam": false,
        "category": "token send"
      },
      //...
    }
  ]
}

That’s it! With our Prolonged RPC Strategies, you solely want a single request to get decoded pockets historical past utilizing an RPC node. For a extra in-depth tutorial, be part of us on this information or take a look at the Prolonged RPC Strategies documentation web page.

Need to get decoded pockets historical past utilizing an RPC node your self? Join free with Moralis and acquire instant entry to all our top-tier growth instruments!

Overview

When you’re constructing a crypto pockets, portfolio tracker, tax platform, or different Web3 initiatives, you would possibly want an straightforward means to retrieve your customers’ pockets historical past. Fetching this data utilizing normal RPC strategies might be difficult, requiring many requests and in depth guide information aggregation. Thankfully, Moralis’ Prolonged RPC Strategies can streamline this course of!

With our Prolonged RPC Strategies, you get to expertise the subsequent era of RPC nodes. Fetch the total historical past of any pockets, enriched with transaction summaries, class tags, tackle labels, and far more – all with a single request. Need to be taught extra about how this works? Observe alongside on this tutorial as we lay all of it out for you. Let’s dive straight in! 

What’s the History of a Crypto Wallet? 

A crypto pockets’s historical past encompasses its earlier interactions throughout blockchain networks reminiscent of Ethereum, Optimism, Base, and BNB Sensible Chain (BSC). This historical past contains native transactions, ERC-20 transfers, contract interactions, NFT trades, deposits, airdrops, and extra. In essence, this information supplies a complete timeline of a pockets’s previous exercise.

Wallet History timeline with RPC nodes.

The historical past of a cryptocurrency pockets is crucial when constructing a variety of decentralized functions (dapps). Listed below are three key examples:

  • Cryptocurrency Wallets: Wallets usually show customers’ transaction historical past, giving them perception into their previous buying and selling actions for elevated retention and engagement.

  • Portfolio Tracker: Portfolio trackers want entry to customers’ pockets historical past to precisely monitor the efficiency of their belongings.

  • Tax Platforms: Tax platforms want a transparent timeline of a pockets’s previous exercise to perceive when tokens have been purchased, offered, and traded to generate correct tax stories.

So, how will you get pockets historical past utilizing an RPC node? Properly, that is the place RPC strategies enter the equation!

What are RPC Strategies?

RPC is brief for “Remote Procedure Call,” and it refers to communication protocols that permit one software program system to name and request providers from different software program on a special system. Within the Web3 house, RPC protocols allow dapps to work together with blockchain networks like Ethereum, Polygon, and Optimism.

Text: "What are RPC Methods?"

There are a number of standardized RPC protocols. An ideal instance is JSON-RPC, which incorporates a set of predefined RPC strategies streamlining blockchain interactions, together with each studying and writing on-chain information. Right here’s a listing of frequent RPC strategies:

  • eth_getTransactionByHash: Returns information a few transaction by hash.



  • eth_getBalance: Returns the stability of an account.



  • eth_getBlockNumber: Returns the latest block quantity.



  • eth_getChainId: Returns the chain ID.



  • eth_gasPrice: Returns the present fuel value.

All in all, RPC strategies streamline interactions with blockchains, making it simpler for builders to construct dapps and different Web3 initiatives.

Limitations of Normal RPC Strategies

Whereas RPC strategies make it simpler to learn and write blockchain information, they’ve some important limitations it is best to contemplate. As an example, you’ll be able to’t use normal RPC strategies to seamlessly get a pockets’s full historical past. To get this data, you want to make many requests, sew collectively information, and decode the data your self.

As you’ll be able to think about, this takes each quite a lot of time and assets, which might be higher spent on different elements of Web3 growth. Nonetheless, there’s a higher resolution: Moralis’ Prolonged RPC Strategies.

However what precisely are our Prolonged RPC Strategies? And the way do they profit you as a developer?

For the solutions to these questions, be part of us within the subsequent part. Let’s go!

How to Get Decoded Wallet History Using an RPC Node – Introducing Moralis’ Prolonged RPC Strategies

Moralis’ Prolonged RPC Strategies streamline the method of fetching decoded, human-readable information utilizing RPC nodes. With single requests, you’ll be able to seamlessly fetch any pockets’s full historical past, ERC-20 token balances, NFTs, and far more, making dapp growth considerably extra accessible.

Moralis logo.

What are you able to get with our Prolonged RPC Strategies:

  • eth_getDecodedTransactions: Get any pockets’s full transaction historical past.



  • eth_getTransactions: Fetch the native transactions of a pockets.



  • eth_getTokenBalances: Question the ERC-20 balances of any pockets.



  • eth_getTokenMetadata: Get the metadata of a token by tackle.



  • eth_getTokenPrice: Fetch any token’s value by tackle.



  • eth_getNFTBalances: Get any pockets’s NFT balances.



  • eth_getNFTCollections: Question the NFT collections held by a pockets.

In essence, our Prolonged RPC Strategies improve our node providing, permitting you to get the identical decoded, human-readable information that our APIs present, however by way of RPC-style requests.

eth_getDecodedTransactions – The Easiest Approach to Get Decoded Wallet History Using an RPC Node

The main focus of as we speak’s information is eth_getDecodedTransactions. With this premier technique, you don’t have to make a number of calls and join the dots your self. As a substitute, you solely want a single RPC request to get the decoded historical past of any pockets, together with native transactions, NFT transfers, sensible contract interactions, and far more! 

Wallet history timeline with RPC nodes.

Moreover, the responses offered by the eth_getDecodedTransactions technique are totally enriched with automated transaction summaries, class tags, tackle labels, and extra information for every occasion. This implies you get totally decoded information out of the field with minimal effort. 

So, how does this work? And what do the responses truly appear to be? When you’re curious, be part of us within the subsequent part as we stroll you thru a whole tutorial on how to get decoded pockets historical past utilizing an RPC node and our eth_getDecodedTransactions technique.

3-Step Tutorial: How to Get Decoded Wallet History Using an RPC Node

It’s time to present you the way to seamlessly get decoded pockets historical past utilizing an RPC node. Thanks to the accessibility of our Prolonged RPC Strategies and the eth_getDecodedTransactions endpoint, you may get the info you want in three easy steps: 

  1. Join with Moralis & arrange a node.



  2. Write a script calling the eth_getDecodedTransactions technique.



  3. Execute the code.

Nonetheless, earlier than leaping into the tutorial, it’s essential to cope with just a few stipulations. 

Stipulations

Earlier than you proceed, be sure you have the next prepared: 

Step 1: Signal Up with Moralis & Set Up a Node

Click on the “Start for Free” button on the prime proper and join an account with Moralis:

Arrow pointing at "Start for Free" button at Moralis website.

Log in, go to the “Nodes” tab, and click on the “+ Create Node” button:

Moralis nodes tab.

Choose “Ethereum,” then “Mainnet,” and hit “Create Node”:

Moralis Ethereum node RPC configurations.

Doing so will create two new node URLs. Copy and preserve one among your URLs for now, as you’ll want it within the subsequent step:

Red arrows pointing at URLs for Ethereum RPC node.

Step 2: Write a Script Calling the eth_getDecodedTransactions Technique

Arrange a undertaking folder in your most well-liked IDE, open a brand new terminal, and initialize a undertaking with the given command:

npm init

Set up the required dependencies with this terminal command:

npm set up node-fetch --save
npm set up moralis @moralisweb3/common-evm-utils

Open your “package.json” file and add "type": "module" to the listing:

"type": "module" highlighted in code editor.

Create a brand new “index.js” file and add the code under:

import fetch from 'node-fetch';

const choices = {
 technique: 'POST',
 headers: {
   settle for: 'software/json',
   'content-type': 'software/json'
 },
 physique: JSON.stringify({
   "jsonrpc": "2.0",
   "id": 1,
   "method": "eth_getDecodedTransactions",
   "params": [
     {
       "address": "0xda74Ac6b69Ff4f1B6796cdDf61fBDd4A5f68525f",
     }
   ]
 })
};

fetch('YOUR_NODE_URL', choices)
 .then(response => response.json())
 .then(response => console.log(response))
 .catch(err => console.error(err));

Exchange YOUR_NODE_URL with the URL you copied throughout step one:

Red arrow pointing at "YOUR_NODE_URL".

Configure the tackle parameter to suit your question:

Red arrow pointing at "address" parameter.

Step 3: Execute the Code

Run this terminal command in your undertaking’s root folder to execute the script: 

node index.js

In return, you’ll get the total historical past of the required pockets, enriched with human-readable transaction summaries, class tags, addresses, and far more. Right here’s a pattern response: 

{
  //...
    "result": [
      {
        "block_hash": "0x660274d577cd20b0b82c1bff5f3c5641ba6027544e005f9256d5add9c7447920",
        "block_number": "19868695",
        "block_timestamp": "2024-05-14T14:00:23.000Z",
        "from_address": "0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f",
        "from_address_label": null,
        "from_address_entity": null,
        "from_address_entity_logo": null,
        "to_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
        "to_address_label": "Tether USD (USDT)",
        "to_address_entity": null,
        "to_address_entity_logo": null,
        "gas": "55331",
        "gas_price": "13623172301",
        "hash": "0xc565260238f59fc3f35b74f3011375c7d637db9b075f77d342c30d19f946272e",
        "nonce": "14",
        "receipt_cumulative_gas_used": "13917979",
        "receipt_gas_used": "41309",
        "receipt_status": "1",
        "transaction_fee": "0.000562759624582009",
        "transaction_index": "75",
        "value": "0",
        "receipt_contract_address": null,
        "nft_transfers": [],
        "erc20_transfers": [
          {
            "token_name": "Tether USD",
            "token_symbol": "USDT",
            "token_logo": "
            "token_decimals": "6",
            "from_address": "0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f",
            "from_address_entity": null,
            "from_address_entity_logo": null,
            "from_address_label": null,
            "to_address": "0x28c6c06298d514db089934071355e5743bf21d60",
            "to_address_label": "Binance 14",
            "to_address_entity": "Binance",
            "to_address_entity_logo": "
            "address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
            "log_index": 338,
            "value": "50000000000",
            "possible_spam": false,
            "verified_contract": true,
            "direction": "send",
            "value_formatted": "50000"
          }
        ],
        "method_label": "transfer",
        "native_transfers": [],
        "summary": "Sent 50,000 USDT to Binance 14",
        "possible_spam": false,
        "category": "token send"
      },
      //...
    }
  ]
}

Congratulations! You now understand how to get decoded pockets historical past utilizing an RPC node. For additional data, please take a look at the official eth_getDecodedTransactions documentation web page. 

From right here, now you can observe the identical steps to name any of our different Prolonged RPC Strategies! 

Exploring the Advantages of eth_getDecodedTransactions

Now that you know the way to get decoded pockets historical past utilizing an RPC node, let’s discover a number of the fundamental advantages of the eth_getDecodedTransactions technique: 

Wallet history timeline with RPC nodes.

  • One Request – All Knowledge: With Moralis’ next-generation nodes, you’ll be able to streamline your developer expertise, as you solely want a single RPC request to get decoded pockets historical past.

  • Computerized Summaries: The eth_getDecodedTransactions technique options automated summaries for every transaction occasion. This implies you now not have to join the dots your self. 

  • Diminished Complexity: With complete responses, now you can construct every thing from portfolio trackers to tax platforms with out breaking a sweat. 

Past How to Get Decoded Wallet History Using an RPC Node – Exploring Moralis Additional

Moralis is the #1 Web3 information supplier, providing you with top-tier instruments reminiscent of RPC nodes and use case-specific APIs for wallets, tokens, NFTs, DeFi, and far more. As such, when utilizing Moralis, you get all crypto information in a single place! 

Moralis logo.

What makes our growth instruments particular? 

  • Complete: Our APIs and Prolonged RPC Strategies are outcome-oriented, providing you with extra information with fewer calls. Fetch pockets historical past, token balances with costs, and far more with simply single requests. 

  • Multi-Chain: Moralis helps all main chains, together with Ethereum, Polygon, BSC, and lots of extra. Expertise full characteristic parity throughout all the most important chains so you’ll be able to streamline your developer expertise when constructing cross-chain dapps. 

  • Safe: Our SOC 2 Sort 2 certification highlights Moralis’ dedication to sustaining enterprise-grade safety and reliability. 

Nonetheless, let’s discover our RPC nodes and Web3 APIs to additional spotlight the advantages of Moralis! 

RPC Nodes

Moralis is a top-tier node supplier, providing you with the instruments to seamlessly entry next-generation RPC nodes for all main chains. 

Moralis RPC nodes.

What makes our RPC nodes distinctive? 

  • Pace: Our nodes characteristic response occasions from 70 ms, setting the benchmark for pace. 



  • Reliability: With 99.9% uptime, we assure high-reliability requirements.



  • Prolonged RPC Strategies: With Moralis’ Prolonged RPC Strategies, now you can question decoded, human-readable information utilizing RPC-style requests. 

Take a look at our RPC nodes web page for extra data. 

Moralis’ Web3 APIs

Our suite of industry-leading APIs contains a number of interfaces tailor-made to particular use circumstances. Listed below are three key examples: 

Moralis logo.

  • Wallet API: Fetch any pockets’s full historical past, token balances, NFT balances, profitability, internet value, and far more with solely single traces of code when utilizing Moralis’ Wallet API. That is the right API for constructing wallets and integrating pockets performance into dapps. 

  • Token API: Get token balances, costs, metadata, crypto PnL, transfers, and extra with only one request when utilizing the Token API. That is your go-to resolution for ERC-20 information. 

  • Streams API: Moralis’ Streams API is the {industry}’s main real-time information resolution. With our intuitive point-and-click interface, you’ll be able to arrange Web3 information pipelines to stream real-time information into your initiatives with out breaking a sweat. 

Take a look at our Web3 API web page to be taught extra about all our premier interfaces. 

Abstract: How to Get Decoded Wallet History Using an RPC Node

Whether or not you’re constructing a pockets, portfolio tracker, tax platform, or different related Web3 initiatives, you usually want entry to your customers’ pockets historical past. Nonetheless, fetching this information utilizing normal RPC strategies might be difficult, as you want to make many requests and compile quite a lot of information your self. Thankfully, there’s a greater different: Moralis’ Prolonged RPC Strategies.

With our Prolonged RPC Strategies, you’ll be able to seamlessly fetch decoded, human-readable information by way of RPC-style requests. As such, it has by no means been simpler to get decoded pockets historical past, token balances, token costs, and extra by way of RPC nodes.

So, how will you use this highly effective characteristic to get decoded pockets historical past utilizing an RPC node? Take a look at the eth_getDecodedTransactions endpoint in motion:

import fetch from 'node-fetch';

const choices = {
 technique: 'POST',
 headers: {
   settle for: 'software/json',
   'content-type': 'software/json'
 },
 physique: JSON.stringify({
   "jsonrpc": "2.0",
   "id": 1,
   "method": "eth_getDecodedTransactions",
   "params": [
     {
       "address": "0xda74Ac6b69Ff4f1B6796cdDf61fBDd4A5f68525f",
     }
   ]
 })
};

fetch('YOUR_NODE_URL', choices)
 .then(response => response.json())
 .then(response => console.log(response))
 .catch(err => console.error(err));

In return for working the script above, you get the total historical past of the required pockets, together with automated summaries, class tags, and far more for every occasion. Right here’s a pattern response:

{
  //...
    "result": [
      {
        "block_hash": "0x660274d577cd20b0b82c1bff5f3c5641ba6027544e005f9256d5add9c7447920",
        "block_number": "19868695",
        "block_timestamp": "2024-05-14T14:00:23.000Z",
        "from_address": "0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f",
        "from_address_label": null,
        "from_address_entity": null,
        "from_address_entity_logo": null,
        "to_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
        "to_address_label": "Tether USD (USDT)",
        "to_address_entity": null,
        "to_address_entity_logo": null,
        "gas": "55331",
        "gas_price": "13623172301",
        "hash": "0xc565260238f59fc3f35b74f3011375c7d637db9b075f77d342c30d19f946272e",
        "nonce": "14",
        "receipt_cumulative_gas_used": "13917979",
        "receipt_gas_used": "41309",
        "receipt_status": "1",
        "transaction_fee": "0.000562759624582009",
        "transaction_index": "75",
        "value": "0",
        "receipt_contract_address": null,
        "nft_transfers": [],
        "erc20_transfers": [
          {
            "token_name": "Tether USD",
            "token_symbol": "USDT",
            "token_logo": "
            "token_decimals": "6",
            "from_address": "0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f",
            "from_address_entity": null,
            "from_address_entity_logo": null,
            "from_address_label": null,
            "to_address": "0x28c6c06298d514db089934071355e5743bf21d60",
            "to_address_label": "Binance 14",
            "to_address_entity": "Binance",
            "to_address_entity_logo": "
            "address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
            "log_index": 338,
            "value": "50000000000",
            "possible_spam": false,
            "verified_contract": true,
            "direction": "send",
            "value_formatted": "50000"
          }
        ],
        "method_label": "transfer",
        "native_transfers": [],
        "summary": "Sent 50,000 USDT to Binance 14",
        "possible_spam": false,
        "category": "token send"
      },
      //...
    }
  ]
}

That’s it! You now understand how to get decoded pockets historical past utilizing an RPC node!

When you discovered this text attention-grabbing, contemplate testing extra content material right here on the weblog. As an example, learn the way to get ERC-20 token balances utilizing RPC nodes or take a look at our DeFi protocol information tutorial.

Additionally, if you want to leverage the subsequent era of RPC nodes your self, don’t overlook to join with Moralis!

DailyBlockchain.News Admin

Our Mission is to bridge the knowledge gap and foster an informed blockchain community by presenting clear, concise, and reliable information every single day. Join us on this exciting journey into the future of finance, technology, and beyond. Whether you’re a blockchain novice or an enthusiast, DailyBlockchain.news is here for you.
Back to top button