Quickly find a block close to a target timestamp using an RPC URL or ethers Provider.
Install the package with the following command:
npm i block-at-timestamp
import { blockAtTimestamp } from "block-at-timestamp";
let timestamp = 1674420070; // unix timestamp in seconds
let block = await blockAtTimestamp("https://rpc-provider.example/", timestamp);
By default, the algorithm will attempt to find a block within 60 seconds of the target timestamp. If you want a faster result with less accuracy, you can increase the targetRangeSeconds
parameter like so:
await blockAtTimestamp(provider, timestamp, {
targetRangeSeconds: 60 * 60 // one hour
});
To see logs for debugging purposes, you can enable verbose logging with the following:
import { setVerbose } from "block-at-timestamp";
setVerbose(true);