UnsignedPriority

Constant v216 → current u64

Controls how unsigned pulse submissions are prioritized relative to other transactions.

Current Value

1048576
Relevant for: validatorsdevelopers

The Big Picture

When multiple transactions compete for block inclusion, priority determines winners. This constant sets the base priority for Drand pulse submissions. If it's too low, pulses might be delayed during congestion. If too high, they could starve other important transactions.

Why This Matters

Infrastructure transactions need appropriate priority. Drand pulses are important for randomness availability but shouldn't dominate the block. This value balances urgency against fairness.

Example

UnsignedPriority is 0x0000100000000000. Unsigned pulse transactions start with this base priority. If congested, they'll be included based on this relative to other transactions' priorities.

Common Questions

Can I change this priority?
No - it's a runtime constant. To modify, a runtime upgrade is required. The value is chosen to balance infrastructure needs with overall transaction fairness.
What if pulses aren't getting included?
Check network congestion. During extreme congestion, even infrastructure transactions may wait. Consider signed submission (pays fees) for guaranteed priority.

From Chain Metadata

A configuration for base priority of unsigned transactions. This is exposed so that it can be tuned for particular runtime, when multiple pallets send unsigned transactions.

Use Cases

  • Transaction pool priority calculation
  • Ensure pulse submissions aren't starved by other transactions
  • Tune offchain worker transaction inclusion

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Query UnsignedPriority constant
const value = api.consts[stringCamelCase("Drand")][stringCamelCase("UnsignedPriority")];
console.log("UnsignedPriority:", value.toHuman());

// Convert RAO to TAO if this is a balance value
const taoValue = value.toBigInt() / BigInt(1e9);
console.log("TAO:", taoValue.toString());

Type Information

Type
u64
Byte Size
8 bytes
Encoding
fixed
Raw Hex
0x0000100000000000

Runtime Info

Pallet
Drand
First Version
v216
Latest Version
v216
Current Runtime
v393