author_pendingExtrinsics - Hydration RPC Method
Get pending extrinsics in the transaction pool on Hydration. Monitor mempool activity, verify transaction submission, and analyze network congestion.
Returns all pending extrinsics currently in the transaction pool on Hydration. These are signed extrinsics that have been submitted but not yet included in a finalized block.
Why Hydration? Build on Polkadot's leading DEX with $200M+ TVL, Omnipool AMM, and native HOLLAR stablecoin with Omnipool with reduced slippage, permissioned listings, 3M DOT DAO allocation, and 200%+ APR farm yields.
When to Use This Method
author_pendingExtrinsics is essential for DeFi developers, liquidity providers, and DAOs requiring capital-efficient trading:
- Transaction Confirmation -- Verify whether a submitted extrinsic is still pending or has been included in a block on Hydration
- Mempool Monitoring -- Monitor the transaction pool size and activity for single-sided liquidity provision, cross-chain trading (SOL, KSM, tBTC), and HOLLAR decentralized stablecoin
- Network Congestion Analysis -- Gauge current network load by inspecting the number and type of pending extrinsics
- Validator Tooling -- Build block authoring tools that inspect the ready queue before producing blocks
Code Examples
Common Use Cases
1. Transaction Pool Monitor
Continuously monitor the Hydration transaction pool and alert on unusual activity:
import { ApiPromise, WsProvider } from '@polkadot/api';
async function monitorPool(api, interval = 6000) {
let previousCount = 0;
setInterval(async () => {
const pending = await api.rpc.author.pendingExtrinsics();
const count = pending.length;
if (count !== previousCount) {
console.log(`Pool size changed: ${previousCount} -> ${count}`);
if (count > 100) {
console.warn('High pool activity detected!');
}
}
// Analyze pending extrinsic types
const byPallet = {};
pending.forEach((ext) => {
const key = `${ext.method.section}.${ext.method.method}`;
byPallet[key] = (byPallet[key] || 0) + 1;
});
if (Object.keys(byPallet).length > 0) {
console.log('Pending by type:', byPallet);
}
previousCount = count;
}, interval);
}2. Verify Transaction Submission
Check that a submitted extrinsic appears in the pool:
async function verifyInPool(api, txHash) {
const pending = await api.rpc.author.pendingExtrinsics();
const found = pending.find((ext) => ext.hash.toHex() === txHash);
if (found) {
console.log(`Transaction ${txHash} is in the pool`);
console.log(` Call: ${found.method.section}.${found.method.method}`);
return true;
}
console.log(`Transaction ${txHash} not found in pool (may already be included)`);
return false;
}3. Pool Congestion Analysis
Analyze network congestion to decide on tip amounts:
async function analyzeCongestion(api) {
const pending = await api.rpc.author.pendingExtrinsics();
const tips = pending.map((ext) => ext.tip.toBigInt());
const totalTips = tips.reduce((sum, tip) => sum + tip, 0n);
const avgTip = tips.length > 0 ? totalTips / BigInt(tips.length) : 0n;
const maxTip = tips.length > 0 ? tips.reduce((a, b) => (a > b ? a : b), 0n) : 0n;
return {
poolSize: pending.length,
averageTip: avgTip.toString(),
maxTip: maxTip.toString(),
congested: pending.length > 50
};
}Error Handling
Common errors and solutions:
| Error Code | Description | Solution |
|---|---|---|
| -32603 | Internal error | Node may be starting up -- retry after delay |
| -32005 | Rate limit exceeded | Reduce polling frequency; the pool changes only each block |
| Connection refused | Node unreachable | Verify the RPC endpoint URL and that the node is running |
| Empty array | No pending extrinsics | Normal when the pool is idle -- not an error |
Related Methods
author_submitExtrinsic-- Submit a signed extrinsic to the transaction poolpayment_queryInfo-- Estimate fees for an extrinsic before submissionsystem_chain-- Get the chain namechain_getBlock-- Get a finalized block to see which extrinsics were included
author_submitExtrinsic
Submit a signed extrinsic to Hydration for inclusion in a block. Broadcast transactions for token transfers, staking operations, governance votes, and smart contract calls.
author_submitAndWatchExtrinsic
Submit an extrinsic and subscribe to lifecycle status updates on Hydration. Track transactions from pool admission through finalization with real-time WebSocket events for single-sided liquidity provision, cross-chain trading (SOL, KSM, tBTC), and HOLLAR decentralized stablecoin.