Skip to main content

Don't have an API key yet?

Sign-up to Moralis to get your free API key and start building today.

Get Your Free API Key
Version: 2.2

How to Get all Internal Transactions of an address

Step 1: Set Up Moralis

Read the article Setting Up Moralis: Getting Started and make sure to finish all the steps. Only after that can you go ahead and complete this guide.

Step 2: Get Internal Transactions

In this tutorial, you will explore how to get and check details of all internal transactions using the Moralis Web3 API.

tip

If you don't have the transaction hash, you can use the getWalletTransactions endpoint to find it. In the provided example response, you can easily find the transaction hash within the hash field. Alternatively, you can use Etherscan. On Etherscan, selecting any transaction will reveal the transaction hash at the top of the page.

Full Example Script

Our script, written in JavaScript, TypeScript, and Python, demonstrates how to find all internal transactions on a blockchain using Moralis' getWalletTransactions endpoint. By default, internal transactions will not be included using this endpoint. However, using the include parameter with a value of internal_transactions, each transaction returned will include an additional internal_transactions array containing all internal transactions per transaction.

Here, you'll need the following parameters: address, chain, and include.

Once you've obtained both address and chain, you can copy the following code:

// Import the Moralis library and EvmChain module
const Moralis = require("moralis").default;
const { EvmChain } = require("@moralisweb3/common-evm-utils");

// Asynchronous function to run the application
const runApp = async () => {
// Initialize Moralis with your API key
await Moralis.start({
apiKey: "YOUR_API_KEY",
// ...and any other configuration
});

// Specify the wallet address for which transactions are to be retrieved
const walletAddress = "0x26fcbd3afebbe28d0a8684f790c48368d21665b5";

// Set the blockchain (e.g., Ethereum)
const chain = EvmChain.ETHEREUM;

// Use the Moralis API to get wallet transactions with internal transactions included
const response = await Moralis.EvmApi.transaction.getWalletTransactions({
address: walletAddress,
chain,
include: "internal_transactions",
});

// Print the response in JSON format
console.log(response.toJSON());
};

// Execute the application function
runApp();

Step-by-Step Explanation: How to Check Internal Transactions

  1. Initialize Moralis: Using your unique API key, initialize Moralis in your preferred programming language - such as JavaScript, TypeScript, or Python. This foundational step establishes the connection with Moralis services.

  2. Specify the Wallet Address: Identify the wallet address for which you intend to retrieve internal transactions. This address is directly associated with the transactions you aim to explore.

  3. Set Blockchain: Define the blockchain on which the transactions occurred. Specify the appropriate chain parameter, such as "eth" for Ethereum, ensuring accurate retrieval of relevant data.

  4. Extract Transactions from Wallet: Utilize the getWalletTransactions endpoint to retrieve details of all transaction. This may encompass vital information such as sender, receiver, amount, and timestamp.

  5. Include Internal Transactions: Specify the parameter include with the value internal_transactions.

  6. Print Results: Once internal transactions are fetched, print the response or process it based on your specific requirements.

Step 3: Run the Script

To run the script, enter the following command:

node index.js

In your terminal, you should see the following response:

{
cursor: 'eyJhbGciOiJIUzI1NiJ9.eyJ0YWJsZUluZGV4IjowLCJsYXN0RXZhbHVhdGVkS2V5Ijp7InRpbWVfdHhJbmRleCI6IjAwMDE2OTM5MTM2NzUwMDAwMDA3NiIsIndhbGxldEFkZHJlc3MiOiIweDI2ZmNiZDNhZmViYmUyOGQwYTg2ODRmNzkwYzQ4MzY4ZDIxNjY1YjUifSwicGFnZU51bWJlciI6MCwia2V5Q29uZGl0aW9uRXhwcmVzc2lvbiI6eyJ3YWxsZXRBZGRyZXNzIjp7ImVxIjoiMHgyNmZjYmQzYWZlYmJlMjhkMGE4Njg0Zjc5MGM0ODM2OGQyMTY2NWI1In0sInRpbWVfdHhJbmRleCI6eyJiZXR3ZWVuIjpbIjAwMDE0MzgyNjk5NzMwMDAwMDAwMCIsIjAwMDE3MDI5NzY3MzUwMDEwMDAwMCJdfX19.uDIiN__tjw3e9I2WAUWlAfSwK-JgOqwazhfcWlLxI-A',
page_size: 100,
page: 1,
result: [
{
hash: '0x510dbb484ec57660d34efb220c98243620f64a3217c5fa16692576efce865939',
nonce: '3877',
transaction_index: '93',
from_address: '0x26fcbd3afebbe28d0a8684f790c48368d21665b5',
from_address_label: null,
to_address: '0x2f50d538606fa9edd2b11e2446beb18c9d5846bb',
to_address_label: 'Curve.fi: Gauge Controller',
value: '0',
gas: '502058',
gas_price: '27532434404',
input: '0xd713632800000000000000000000000095f00391cb5eebcd190eb58728b4ce23dbfa6ac10000000000000000000000000000000000000000000000000000000000002710',
receipt_cumulative_gas_used: '8427600',
receipt_gas_used: '401647',
receipt_contract_address: null,
receipt_root: null,
receipt_status: '1',
block_timestamp: '2023-11-29T10:47:35.000Z',
block_number: '18676771',
block_hash: '0x3a0aca8a5277b088565e3c5f7fb72ea32f7a98190428345222fcc15b58b62e22',
transfer_index: [Array],
"internal_transactions": [
{
"transaction_hash": "0x510dbb484ec57660d34efb220c98243620f64a3217c5fa16692576efce865939",
"block_number": 18676771,
"block_hash": "0x3a0aca8a5277b088565e3c5f7fb72ea32f7a98190428345222fcc15b58b62e22",
"type": "STATICCALL",
"from": "0x2f50d538606fa9edd2b11e2446beb18c9d5846bb",
"to": "0x5f3b5dfeb7b28cdbd7faba78963ee202a494e2a2",
"value": "0",
"gas": "467440",
"gas_used": "4822",
"input": "0x7c74a17400000000000000000000000026fcbd3afebbe28d0a8684f790c48368d21665b5",
"output": "0x00000000000000000000000000000000000000000000000000024106b54b6fd3"
},
{
"transaction_hash": "0x510dbb484ec57660d34efb220c98243620f64a3217c5fa16692576efce865939",
"block_number": 18676771,
"block_hash": "0x3a0aca8a5277b088565e3c5f7fb72ea32f7a98190428345222fcc15b58b62e22",
"type": "STATICCALL",
"from": "0x2f50d538606fa9edd2b11e2446beb18c9d5846bb",
"to": "0x5f3b5dfeb7b28cdbd7faba78963ee202a494e2a2",
"value": "0",
"gas": "462462",
"gas_used": "2616",
"input": "0xadc6358900000000000000000000000026fcbd3afebbe28d0a8684f790c48368d21665b5",
"output": "0x0000000000000000000000000000000000000000000000000000000067e49500"
}
]
}
]
}

Congratulations 🥳! You have successfully retrieved all internal transactions of an address using the Moralis Wallet API.

Get 24/7 Developer Support

Should you encounter any challenges while following this tutorial, our community engineers are here to assist you. Reach out to us on Discord or in our forum to receive 24/7 developer support. Your success is our priority!

API Reference

If you want to explore more details about other blockchain endpoints and optional parameters, refer to our API Reference page.