bor_getCurrentProposer — Polygon JSON-RPC
Returns the address of the validator currently scheduled to propose blocks on Polygon's Bor consensus layer.
https://triport.io/polygon- Network
- Polygon
- Scope
- polygon_bor
- Auth
- x-token: $TRIPORT_API_KEY (or Authorization: Bearer)
- Rate limit
- Pro and above — rate limited per tier with a short burst allowance; no daily quota
Endpoint and plans: Polygon RPC endpoint.
bor_getCurrentProposer returns a single 0x-prefixed address: the signer of
the validator that is the current block proposer on Polygon. This is part of
the bor namespace — Polygon's Bor (Proof-of-Stake) consensus extension — and is
not exposed by standard EVM/Geth methods.
The proposer rotates every block (Polygon block time is ~2.1s), selected by stake weight within the active validator set. Because the answer changes so frequently, this method is best suited to real-time "who is proposing right now" lookups — for example, MEV pre-confirmation logic or live validator dashboards. Poll it once per block at most; the value is stale almost immediately after it is read.
If you need the full proposer schedule for an epoch rather than the single
current proposer, call bor_getSnapshot instead, which
returns the validator set together with the recent-signers history. To resolve
the proposer (author) of a historic block, use
bor_getAuthor.
This is a bor-namespace method available on the Pro tier and above. It is
rate limited per tier with a short burst allowance; there is no daily quota.
Parameters
This method takes no parameters. Pass an empty array.
——optionalparams must be [].Response
Response fields
| Field | Type | Description |
|---|---|---|
result | string | The 0x-prefixed 20-byte signer address of the validator currently scheduled to propose. |
Errors
| Code | Meaning | When it happens |
|---|---|---|
403 | tier_insufficient | Your API key's tier is below Pro; this bor-namespace method is not enabled for it. The error.data carries current_tier, required_tier, and upgrade_url. |
429 | rate_limited | You exceeded your tier's request rate (including burst). Honor the Retry-After header / error.data.retry_after_sec and retry after a short back-off. |
See the shared error envelope reference for the full error object shape and handling guidance.
Examples
JavaScript (fetch)
const res = await fetch("https://triport.io/polygon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.TRIPORT_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "bor_getCurrentProposer",
params: [],
}),
});
const { result } = await res.json();
console.log("current proposer:", result);Notes
- The proposer changes every block (~2.1s). Treat the result as a point-in-time snapshot; do not cache it across blocks.
- For the full epoch proposer schedule (validator set + recent signers),
use
bor_getSnapshot. For the proposer of a specific historic block, usebor_getAuthor. For the active validator set with stake weights, seebor_getCurrentValidators. bor_*methods reflect Polygon Bor consensus state and have no Ethereum equivalent.