I don't think this is possible with the standard JSON-RPC API, but I'd like to get a list of all the internal transactions in a block. By internal transactions I mean transactions initiated by a contract, sending to another address. Like what is listed on EtherScan in the "Internal" tab, but instead of searching by address, search by block.

Are there any tools for this? If not with a standard node out of the box, or maybe there is a third party services for this?


2 Answers 2


You can do it with both Parity and Geth using a normal node (with some additional configuration params).

Parity has the trace JSON RPC module, and Geth has its debug module.

Parity offers trace_transaction whilst Geth offers traceTransaction.


You can try

function checkTransactionCount(startBlockNumber, endBlockNumber) {
    console.log("Searching for non-zero transaction counts between blocks "  + startBlockNumber + " and " + endBlockNumber);
    for (var i = startBlockNumber; i <= endBlockNumber; i++) {
        var block = eth.getBlock(i);
        if (block != null) {
            if (block.transactions != null && block.transactions.length != 0) {
                console.log("Block #" + i + " has " + block.transactions.length + " transactions")

More here

  • That looks like regular transactions, not internal transactions... or am I missing something? Commented Sep 14, 2017 at 9:20
  • 1
    @SteveEllis yes you are right, looks like I missed it. I will keep it here anyway, if anybody want to downvote :D
    – niksmac
    Commented Nov 20, 2017 at 14:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.