Authentication for the OPENFORMAT API involves the use of an API Key, which is a secure credential that is tied to a specific Ethereum account address. This key should be included in the header of the request.


It is advised not to hardcode your credentials in a file in production environments. Use environment variables instead.

API Endpoints

OPENFORMAT provides a multitude of API endpoints that enable a variety of functionalities. the base URL for the the OPENFORMAT API is

For instance, to get leaderboard data, the endpoint to use would look like this

Generating an API Key

You can generate an API Key in the API Reference. The process involves two steps: challenge and verify. As mentioned, an API Key is associated with a specific Ethereum account address. To achieve this, you must generate a challenge, sign it with your account address, and then verify the signed challenge.

We’ve developed a signing tool for signing messages with Metamask. If you prefer to sign messages locally, you can use the following scripts:

import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount("YOUR_PRIVATE_KEY");

// Challenge returned from /key/challenge endpoint
const challenge = "7877fa9f42dd92bebfefa7d6469e774327afddf76718e93288182949af7d3ade";

const signed = await account.signMessage({ message: challenge });

// 0x9fe5ad28c81419f5135aec3c....

Transaction Lifecycle

We recommend reading and understanding the Transaction Lifecycle before continuing.