eth_getLogs - Boba Network RPC Method
Query event logs on Boba Network. Essential for indexing AI-powered dApps, Web2 API integration, enterprise blockchain solutions, and offchain computation on the Hybrid Compute L2 enabling smart contracts to access AI models and Web2 APIs natively.
Returns an array of all logs matching a given filter object on Boba Network.
Why Boba Network? Build on the Hybrid Compute L2 enabling smart contracts to access AI models and Web2 APIs natively with HybridCompute 2.0 for native AI/API access, $70M ecosystem funding, OP Stack compatibility, and two-way offchain integration.
Use Cases
The eth_getLogs method is essential for:
- Event indexing - Track contract events for AI-powered dApps, Web2 API integration, enterprise blockchain solutions, and offchain computation
- Token transfers - Monitor ERC20/ERC721 transfers
- DeFi analytics - Track swaps, liquidity events, and more
- Notification systems - Alert on specific on-chain events
Request Parameters
Starting block (default: "latest")
Ending block (default: "latest")
Contract address(es) to filter
Array of topic filters
Filter single block by hash
Response Body
Contract that emitted the log
Array of indexed topics
Non-indexed log data
Block number
Transaction hash
Log index in block
Code Examples
curl -X POST https://api-boba-mainnet.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getLogs",
"params": [{
"fromBlock": "latest",
"toBlock": "latest",
"address": "0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000",
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]
}],
"id": 1
}'import { JsonRpcProvider, Contract } from 'ethers';
const provider = new JsonRpcProvider('https://api-boba-mainnet.n.dwellir.com/YOUR_API_KEY');
// Get Transfer events
const TRANSFER_TOPIC = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
async function getTransferEvents(tokenAddress, fromBlock, toBlock) {
const logs = await provider.getLogs({
address: tokenAddress,
topics: [TRANSFER_TOPIC],
fromBlock: fromBlock,
toBlock: toBlock
});
return logs.map(log => ({
from: '0x' + log.topics[1].slice(26),
to: '0x' + log.topics[2].slice(26),
blockNumber: log.blockNumber,
transactionHash: log.transactionHash
}));
}
const events = await getTransferEvents(
'0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000',
'latest',
'latest'
);
console.log('Transfer events:', events);from web3 import Web3
w3 = Web3(Web3.HTTPProvider('https://api-boba-mainnet.n.dwellir.com/YOUR_API_KEY'))
TRANSFER_TOPIC = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
def get_transfer_events(token_address, from_block, to_block):
logs = w3.eth.get_logs({
'address': token_address,
'topics': [TRANSFER_TOPIC],
'fromBlock': from_block,
'toBlock': to_block
})
events = []
for log in logs:
events.append({
'from': '0x' + log['topics'][1].hex()[26:],
'to': '0x' + log['topics'][2].hex()[26:],
'block': log['blockNumber'],
'tx': log['transactionHash'].hex()
})
return events
events = get_transfer_events(
'0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000',
'latest',
'latest'
)
print(f'Found {len(events)} transfer events')package main
import (
"context"
"fmt"
"log"
"math/big"
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, err := ethclient.Dial("https://api-boba-mainnet.n.dwellir.com/YOUR_API_KEY")
if err != nil {
log.Fatal(err)
}
contractAddress := common.HexToAddress("0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000")
transferTopic := common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef")
query := ethereum.FilterQuery{
FromBlock: big.NewInt(0),
ToBlock: nil,
Addresses: []common.Address{contractAddress},
Topics: [][]common.Hash,
}
logs, err := client.FilterLogs(context.Background(), query)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Found %d events\n", len(logs))
}Error Handling
| Error Code | Message | Description |
|---|---|---|
| -32005 | Query returned more than 10000 results | Reduce block range |
| -32602 | Invalid params | Invalid filter parameters |
Related Methods
eth_newFilter- Create a filter for logseth_getFilterChanges- Poll filter for new logs
eth_call
Execute smart contract calls without creating transactions on Boba Network. Essential for reading contract state for AI-powered dApps, Web2 API integration, enterprise blockchain solutions, and offchain computation.
eth_newFilter
Create event log filter on Boba Network. Essential for monitoring events for AI-powered dApps, Web2 API integration, enterprise blockchain solutions, and offchain computation.