bor_getAuthor
https://api.triport.io/v1/polygonReturns the block author — the validator address that proposed a given Polygon block.
bor_getAuthor returns the block author for a given block — the address of
the validator that proposed (signed) that block under Polygon's Bor consensus.
It is the historic counterpart of
bor_getCurrentProposer: where the latter tells
you who is proposing right now, bor_getAuthor answers "who proposed block N?"
for any block in the chain's history.
This is a method in the bor namespace, a Polygon-exclusive extension of
the standard EVM JSON-RPC surface. It exposes Bor consensus state — validator
sets, proposers, signers, and snapshots — that is not available on standard
Geth or Erigon nodes; calling these methods against a plain EVM provider
returns a method-not-found error. Triport serves the full bor namespace on
the Polygon endpoint.
The most common use is validator productivity indexing: by resolving the
author of each block over an epoch you can measure how many blocks each
validator proposed. Because the Polygon archive depth is ≥ 5,000,000 blocks
(roughly four months at ~2.1 s block time), you can look up authors well into
the past, not just for recent blocks. bor methods require the Pro tier or
higher.
Parameters
One positional parameter.
blockNumberstringoptional0x-prefixed hex block number (e.g. "0x3a6cf2f"). The string tags "latest", "earliest", and "pending" are also accepted. If omitted, the latest block is used.Response
The result is the validator's signer address as a 0x-prefixed hex string.
resultstring0x-prefixed 20-byte signer address of the validator that authored (proposed) the requested block.Errors
| Code | Meaning | When it happens |
|---|---|---|
-32002 | tier_insufficient | Your API key's tier is below Pro, so the bor namespace is not enabled for it. The error.data carries current_tier, required_tier, and upgrade_url. |
-32003 | rate_limited | You exceeded your tier's request rate (including burst) for this premium namespace. 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://api.triport.io/v1/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_getAuthor",
params: ["0x3a6cf2f"],
}),
});
const { result } = await res.json();
console.log("block author:", result);TypeScript SDK (@triport/sdk)
import { Triport } from "@triport/sdk";
const triport = new Triport({ apiKey: process.env.TRIPORT_API_KEY! });
const author = await triport.polygon.request("bor_getAuthor", ["0x3a6cf2f"]);
console.log("block author:", author);Python (triport-sdk)
import os
from triport import Triport
triport = Triport(api_key=os.environ["TRIPORT_API_KEY"])
author = triport.polygon.request("bor_getAuthor", ["0x3a6cf2f"])
print("block author:", author)Notes
- Historic lookups. The Polygon archive holds ≥ 5M blocks (~4 months),
so
bor_getAuthorworks for both recent and well-aged blocks — ideal for back-filling validator productivity metrics over past epochs. - Block number is hex. Pass the block as a
0x-prefixed hex string, not a decimal integer. To resolve the most recent block, omit the parameter or pass"latest". - Polygon-only.
bor_getAuthorand its siblingbor_*methods exist only on Polygon's Bor consensus layer; there is no Ethereum equivalent. - Related methods:
bor_getCurrentProposer(current block's proposer),bor_getCurrentValidators(the active validator set),bor_getSigners(authorized signers at a block), andbor_getSnapshot(full consensus snapshot, including recent signers).