author_pendingExtrinsics - Centrifuge RPC Method
Get pending extrinsics in the transaction pool on Centrifuge. Monitor mempool activity, verify transaction submission, and analyze network congestion.
Returns all pending extrinsics currently in the transaction pool on Centrifuge. These are signed extrinsics that have been submitted but not yet included in a finalized block.
Why Centrifuge? Build on the RWA tokenization platform bridging traditional finance with $1B+ Janus Henderson backing with ERC-7540 RWA standards, multichain via Wormhole, 97% securitization cost savings, and BlockTower $220M fund integration.
When to Use This Method
author_pendingExtrinsics is essential for institutional RWA developers, asset managers, and teams tokenizing real-world assets:
- Transaction Confirmation -- Verify whether a submitted extrinsic is still pending or has been included in a block on Centrifuge
- Mempool Monitoring -- Monitor the transaction pool size and activity for tokenized treasury funds, SME invoice financing, and institutional-grade RWA infrastructure
- 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 Centrifuge 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 Centrifuge 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 Centrifuge. Track transactions from pool admission through finalization with real-time WebSocket events for tokenized treasury funds, SME invoice financing, and institutional-grade RWA infrastructure.