Establecer Tarifas de Prioridad
Establece tarifas de prioridad dinámicas utilizando percentiles recientes de la red y SetComputeUnitPrice para que las transacciones compitan durante la congestión.
Busca en todas las páginas de la documentación
Establece tarifas de prioridad dinámicas utilizando percentiles recientes de la red y SetComputeUnitPrice para que las transacciones compitan durante la congestión.
Tarjeta de receta de referencia rápida, lista para copiar y pegar.
const fees = await rpc.getRecentPrioritizationFees([]).send();
fees.sort((a, b) => a.prioritizationFee - b.prioritizationFee);
const p75 = fees[Math.floor(fees.length * 0.75)]?.prioritizationFee ?? 1000;
// microLamports por CU en la instrucción del presupuesto de cómputo
const microLamports = Math.min(p75 * 1.2, MAX_CAP);Cuándo usar esto:
import { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc(process.env.RPC_URL!);
const MAX_MICRO_LAMPORTS = 500_000;
async function suggestPriorityFee(lockedAccounts: string[] = []) {
const fees = await rpc
.getRecentPrioritizationFees(
lockedAccounts.map((a) => ({ account: a }))
)
.send();
const samples = fees
.map((f) => f.prioritizationFee)
.filter((n) => n > 0)
.sort((a, b) => a - b);
if (samples.length === 0) return 1_000;
const p75 = samples[Math.floor(samples.length * 0.75)];
return Math.min(Math.ceil(p75 * 1.2), MAX_MICRO_LAMPORTS);
}
const microLamports = await suggestPriorityFee();
console.log("precio por unidad de cómputo:", microLamports);Lo que esto demuestra:
getRecentPrioritizationFees muestrea las tarifas de las transacciones aterrizadas.microLamports * compute_units_requested (limitado por la instrucción de límite).priorityFeeEstimate con estadísticas de percentiles.| Perfil | Percentil | Caso de uso |
|---|---|---|
| Economía | p50 | Baja urgencia |
| Estándar | p75 | La mayoría de la UX |
| Agresivo | p90 | Acuñaciones, arb |
| Limitado | min(p90, cap) | Barreras de costo |
// Lamports de prioridad total ≈ (microLamports * computeUnitLimit) / 1_000_000
// Añade la tarifa base por separado en las estimaciones de UXMAX_MICRO_LAMPORTS por política de producto.| Alternativa | Usar Cuándo | No Usar Cuándo |
|---|---|---|
| Tarifa fija | Devnet tranquilo | Mainnet congestionado |
| Propina de Jito | Aterrizaje de paquetes | Transferencias simples |
| Acuerdos con validadores privados | Institucional | Carteras de consumidores |
| Deslizadores seleccionados por el usuario | UX transparente | Bots completamente automatizados |
1e-6 lamports; el precio es por unidad de cómputo solicitada en la instrucción de presupuesto.
Muestra SOL de prioridad estimada = microLamports * CU límite / 1e9 más la tarifa base.
Sí - mantén perfiles de tarifas por plantilla de transacción a partir de simulaciones.
Si se incluyen en el bloque pero el programa falla, la tarifa de prioridad aún se cobra; las transacciones descartadas no pagan nada.
Mejora opcional sobre getRecentPrioritizationFees en bruto - abstraer detrás de una interfaz.
Generalmente innecesario - enfoca las pruebas en pequeñas cantidades en Mainnet.
Rutas de pago separadas - algunas aplicaciones usan ambas para un aterrizaje competitivo.
Por acción de envío del usuario durante la congestión; con menos frecuencia fuera de horas pico.
No hay reembolso en cadena si la transacción aterriza fallida - diseña los límites y la simulación cuidadosamente.
Ver Estimación de Unidades de Cómputo - establece el límite antes del precio.
Versiones de la Pila: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026