eth_getTransactionCount
Retrieves the total number of transactions sent from a specified account on the Unichain network. This method returns the account's current nonce, which is critical for transaction sequencing and ensuring proper execution in Unichain's DeFi-optimized infrastructure and Uniswap ecosystem operations.
Description​
The eth_getTransactionCount
method is essential for Unichain blockchain interaction, providing the transaction count that serves as the nonce for new transactions. On Unichain, this is particularly important for DeFi operations, DEX trading, and interactions with the broader Uniswap ecosystem.
Parameters​
Parameter | Type | Required | Description |
---|---|---|---|
address | string | Yes | The Ethereum address (20-byte hex string with 0x prefix) to get transaction count for |
blockNumber | string | Yes | Block number as hex string, or block tag: "latest", "earliest", "pending", "safe", "finalized" |
Block Parameter Options​
"latest"
- Most recent confirmed block"pending"
- Include pending transactions in mempool"earliest"
- Genesis block"safe"
- Latest safe head block"finalized"
- Latest finalized block"0x..."
- Specific block number in hex
Returns​
Type: string
Returns the transaction count as a hexadecimal string (e.g., "0x2b" = 43 transactions). This value represents:
- For EOA (Externally Owned Accounts): Number of transactions sent
- For DeFi Protocol Accounts: Number of protocol operations performed
- For LP Provider Accounts: Number of liquidity and trading operations
Use Cases​
- DeFi Trading: Get next nonce for DEX swap and trading transactions
- Liquidity Operations: Sequence liquidity provision and removal correctly
- Yield Farming: Track farming and staking operation transactions
- Protocol Interactions: Manage smart contract interaction sequencing
- Cross-chain Operations: Handle bridge and cross-chain transaction ordering
Code Examples​
- cURL
- JavaScript
- Python
# Get latest confirmed transaction count
curl -X POST https://api-unichain-mainnet.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getTransactionCount",
"params": [
"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",
"latest"
],
"id": 1
}'
# Get pending transaction count for DeFi operations
curl -X POST https://api-unichain-mainnet.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getTransactionCount",
"params": [
"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",
"pending"
],
"id": 2
}'
// Get Unichain account nonce for DeFi operations
async function getUnichainNonce(address) {
const response = await fetch('https://api-unichain-mainnet.n.dwellir.com/YOUR_API_KEY', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'eth_getTransactionCount',
params: [address, 'latest'],
id: 1
})
});
const data = await response.json();
return parseInt(data.result, 16); // Convert hex to decimal
}
// Get pending nonce for DeFi trading transactions
async function getDeFiNonce(address) {
const response = await fetch('https://api-unichain-mainnet.n.dwellir.com/YOUR_API_KEY', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'eth_getTransactionCount',
params: [address, 'pending'],
id: 1
})
});
const data = await response.json();
return data.result; // Keep as hex for transaction building
}
// Usage for Unichain DeFi operations
const swapRouterAddress = '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45';
getUnichainNonce(swapRouterAddress).then(count => {
console.log(`Router has processed ${count} operations`);
});
getDeFiNonce(swapRouterAddress).then(nonce => {
console.log(`Next DeFi transaction nonce: ${nonce}`);
});
import requests
import json
def get_unichain_transaction_count(address, block_tag="latest"):
"""Get transaction count for a Unichain account"""
url = "https://api-unichain-mainnet.n.dwellir.com/YOUR_API_KEY"
payload = {
"jsonrpc": "2.0",
"method": "eth_getTransactionCount",
"params": [address, block_tag],
"id": 1
}
response = requests.post(url, json=payload)
result = response.json()
if 'error' in result:
raise Exception(f"Unichain RPC Error: {result['error']}")
return result['result']
def analyze_defi_activity(address):
"""Analyze DeFi and DEX activity on Unichain"""
confirmed = get_unichain_transaction_count(address, "latest")
pending = get_unichain_transaction_count(address, "pending")
confirmed_int = int(confirmed, 16)
pending_int = int(pending, 16)
return {
'confirmed_operations': confirmed_int,
'pending_operations': pending_int - confirmed_int,
'total_pending': pending_int,
'next_nonce': pending,
'activity_level': 'active' if confirmed_int > 0 else 'new',
'is_high_volume': confirmed_int > 50, # Heuristic for high-volume trading
'trading_category': categorize_trading_volume(confirmed_int)
}
def categorize_trading_volume(tx_count):
"""Categorize trading activity level"""
if tx_count == 0:
return 'new_account'
elif tx_count < 10:
return 'casual_user'
elif tx_count < 100:
return 'active_trader'
elif tx_count < 1000:
return 'power_user'
else:
return 'institutional'
# Example usage for Unichain DeFi operations
swap_router = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45" # Uniswap V3 Router
pool_address = "0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8" # Example pool
# Analyze router activity
router_activity = analyze_defi_activity(swap_router)
print(f"Unichain Router Activity:")
print(f" Confirmed operations: {router_activity['confirmed_operations']}")
print(f" Pending operations: {router_activity['pending_operations']}")
print(f" Next nonce: {router_activity['next_nonce']}")
print(f" Trading category: {router_activity['trading_category']}")
# Get basic transaction count for pool
pool_count = get_unichain_transaction_count(pool_address)
print(f"Pool transaction count: {int(pool_count, 16)}")
Response Examples​
Latest Block Transaction Count​
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x2b"
}
Pending Transaction Count​
{
"jsonrpc": "2.0",
"id": 2,
"result": "0x2d"
}
Important Notes​
Nonce Management for DeFi Operations​
- Trading Transactions: Each swap and trade requires sequential nonce usage
- Liquidity Operations: LP provision and removal must maintain proper nonce order
- Yield Farming: Staking and harvesting operations need correct sequencing
- Protocol Interactions: Smart contract calls require ordered transaction execution
Unichain-Specific Considerations​
- DEX Optimization: Unichain is optimized for decentralized exchange operations
- Low Latency: Fast block times enable rapid DeFi transaction processing
- Uniswap Integration: Native integration with Uniswap ecosystem protocols
- Cross-chain Compatibility: Bridge operations may affect nonce sequencing
Best Practices​
- Always use "pending" when preparing DeFi trading transactions
- Monitor nonce progression for high-frequency trading strategies
- Handle nonce gaps carefully in automated trading systems
- Cache nonce values briefly for batch DeFi operations
Network Specifics​
- Unichain inherits Ethereum's nonce system for transaction ordering
- DeFi operations require careful transaction sequencing for optimal execution
- MEV protection mechanisms may affect transaction ordering
- Fast finality enables rapid trading and arbitrage opportunities
Common Use Cases​
- DeFi Trading: Execute swaps and trades with proper transaction sequencing
- Liquidity Management: Provide and remove liquidity with sequential nonce usage
- Yield Farming: Participate in farming protocols with ordered transactions
- Arbitrage Operations: Execute arbitrage strategies with correct nonce management
- Protocol Governance: Participate in governance with properly sequenced votes
Need help? Contact our support team or check the Unichain documentation.