author_pendingExtrinsics - Manta Atlantic RPC Method
Get pending extrinsics in the transaction pool on Manta Atlantic. Monitor mempool activity, verify transaction submission, and analyze network congestion.
Returns all pending extrinsics currently in the transaction pool on Manta Atlantic. These are signed extrinsics that have been submitted but not yet included in a finalized block.
Why Manta Atlantic? Build on the ZK Layer 1 on Polkadot enabling private transactions and on-chain compliance identities with zkSNARK-powered privacy, modular compliance identities, MANTA token staking hub, and end-to-end transaction privacy.
When to Use This Method
author_pendingExtrinsics is essential for privacy-focused developers, DeFi builders requiring private swaps, and teams needing zkSNARK capabilities:
- Transaction Confirmation -- Verify whether a submitted extrinsic is still pending or has been included in a block on Manta Atlantic
- Mempool Monitoring -- Monitor the transaction pool size and activity for private asset transfers, zkNFTs, on-chain compliance identities, and private parachain asset swaps
- 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 Manta Atlantic 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 Manta Atlantic 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 Manta Atlantic. Track transactions from pool admission through finalization with real-time WebSocket events for private asset transfers, zkNFTs, on-chain compliance identities, and private parachain asset swaps.