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.
--header 'X-API-KEY: <OPENFORMAT_API_KEY>'
It is advised not to hardcode your credentials in a file in
production environments. Use environment variables instead.
OPENFORMAT provides a multitude of API endpoints that enable a variety of functionalities.
the base URL for the the OPENFORMAT API is https://api.openformat.tech.For instance, to get leaderboard data, the endpoint to use would look like this https://api.openformat.tech/v1/leaderboard.
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 endpointconst challenge = "7877fa9f42dd92bebfefa7d6469e774327afddf76718e93288182949af7d3ade";const signed = await account.signMessage({ message: challenge });console.log(signed);// 0x9fe5ad28c81419f5135aec3c....
import { ethers } from "ethers";const privateKey = "YOUR_PRIVATE_KEY";const wallet = new ethers.Wallet(privateKey);// Challenge returned from /key/challenge endpointconst challenge = "7877fa9f42dd92bebfefa7d6469e774327afddf76718e93288182949af7d3ade";const signed = await wallet.signMessage(challenge);console.log(signed);// 0x9fe5ad28c81419f5135aec3c....
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"OPENFORMAT","colors":{"primary":"#000000","light":"#FFF500","dark":"#000000"},"favicon":"/favicon.svg","logo":{"light":"https://mintcdn.com/openformat/vGurOUJG2onkcsD3/logo/light.svg?fit=max\u0026auto=format\u0026n=vGurOUJG2onkcsD3\u0026q=85\u0026s=23cfbea351e1a5a381a608e9f38b84c4","dark":"https://mintcdn.com/openformat/vGurOUJG2onkcsD3/logo/dark.svg?fit=max\u0026auto=format\u0026n=vGurOUJG2onkcsD3\u0026q=85\u0026s=4b41e34b3d2bb26c3f77884d6a95257c","href":"https://www.openformat.tech/"},"navbar":{"links":[{"label":"Discord","href":"https://discord.gg/Aays8HBkZ2"},{"label":"Github","href":"https://github.com/open-format"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.openformat.tech"}},"footer":{"socials":{"twitter":"https://twitter.com/openformat","github":"https://github.com/open-format","linkedin":"https://www.linkedin.com/company/openformat/"}},"integrations":{"pirsch":{"id":"MK1g8YABeE4ojbNVMTw5jUKUxlh5tcg4"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openformat","hasAudioNarration":false,"actualSubdomain":"openformat","customDomains":["docs.openformat.tech"],"gitSource":{"type":"github","owner":"open-format","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae91e50b06fa73e673c3ccd:success","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":24},{"language":"default","tag":"Overview","count":13},{"language":"default","tag":"Webhook","count":7},{"language":"default","tag":"API","count":5},{"language":"default","tag":"Credit","count":5},{"language":"default","tag":"Rewards","count":4},{"language":"default","tag":"SDKs","count":4},{"language":"default","tag":"Typescript","count":4},{"language":"default","tag":"Architecture","count":3},{"language":"default","tag":"API Key","count":2}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/introduction","slug":"/api-reference/introduction","pageMetadata":{"title":"API Overview","description":"In this page you will learn how to work with the the OPENFORMAT API","href":"/api-reference/introduction"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"In this page you will learn how to work with the the OPENFORMAT API\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(_components.p,{children:`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.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'X-API-KEY: \u003cOPENFORMAT_API_KEY>'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`It is advised not to hardcode your credentials in a file in\nproduction environments. Use environment variables instead.`})}),`\n`,_jsx(Heading,{level:`2`,id:`api-endpoints`,children:`API Endpoints`}),`\n`,_jsxs(_components.p,{children:[`OPENFORMAT provides a multitude of API endpoints that enable a variety of functionalities.\nthe base URL for the the OPENFORMAT API is `,_jsx(_components.code,{children:`https://api.openformat.tech`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`For instance, to get leaderboard data, the endpoint to use would look like this `,_jsx(_components.code,{children:`https://api.openformat.tech/v1/leaderboard`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`generating-an-api-key`,children:`Generating an API Key`}),`\n`,_jsxs(_components.p,{children:[`You can generate an API Key in the `,_jsx(_components.a,{href:`/api-reference/endpoint/api-key/post-keychallenge`,children:`API Reference`}),`. The process involves two steps: `,_jsx(_components.code,{children:`challenge`}),` and `,_jsx(_components.code,{children:`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.`]}),`\n`,_jsxs(_components.p,{children:[`We’ve developed a `,_jsx(_components.a,{href:`https://openformat-tools.vercel.app/`,children:`signing tool`}),` for signing messages with Metamask. If you prefer to sign messages locally, you can use the following scripts:`]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`viem (Recommended)`,numberOfLines:`12`,language:`tsx`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`tsx`,children:_jsxs(_components.code,{language:`tsx`,numberOfLines:`12`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`privateKeyToAccount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"viem/accounts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` account`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` privateKeyToAccount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_PRIVATE_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Challenge returned from /key/challenge endpoint`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` challenge`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"7877fa9f42dd92bebfefa7d6469e774327afddf76718e93288182949af7d3ade\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signed`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` account`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`signMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` challenge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signed`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 0x9fe5ad28c81419f5135aec3c....`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),_jsx(CodeBlock,{filename:`ethers`,numberOfLines:`12`,language:`tsx`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`tsx`,children:_jsxs(_components.code,{language:`tsx`,numberOfLines:`12`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ethers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ethers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` privateKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_PRIVATE_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` wallet`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ethers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Wallet`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`privateKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Challenge returned from /key/challenge endpoint`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` challenge`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"7877fa9f42dd92bebfefa7d6469e774327afddf76718e93288182949af7d3ade\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signed`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` wallet`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`signMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`challenge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signed`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 0x9fe5ad28c81419f5135aec3c....`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`transaction-lifecycle`,children:`Transaction Lifecycle`}),`\n`,_jsxs(_components.p,{children:[`We recommend reading and understanding the `,_jsx(_components.a,{href:`/api-reference/architecture/transaction-lifecycle`,children:`Transaction Lifecycle`}),` before continuing.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"API Overview","description":"In this page you will learn how to work with the the OPENFORMAT API","href":"/api-reference/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"API Endpoints","slug":"api-endpoints","depth":2,"children":[]},{"title":"Generating an API Key","slug":"generating-an-api-key","depth":2,"children":[]},{"title":"Transaction Lifecycle","slug":"transaction-lifecycle","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"openformat","siteName":"OPENFORMAT","title":"API Overview - OPENFORMAT","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-07T00:44:38.939Z","originalFileLocation":"api-reference/introduction.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"In this page you will learn how to work with the the OPENFORMAT API\">\u003cmeta data-mint-head name=\"application-name\" content=\"OPENFORMAT\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"API Overview - OPENFORMAT\">\u003cmeta data-mint-head property=\"og:description\" content=\"In this page you will learn how to work with the the OPENFORMAT API\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OPENFORMAT\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openformat.tech/api-reference/introduction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openformat.mintlify.site/_mintlify/api/og/v2?division=API\u0026amp;title=API+Overview\u0026amp;description=In+this+page+you+will+learn+how+to+work+with+the+the+OPENFORMAT+API\u0026amp;theme=514e1a8ddc51945eeb20a7c5\u0026amp;signature=152f3999ea367321483b57e572c407353f3ca163994c9b8d2a7238a27328b989\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"API Overview - OPENFORMAT\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"In this page you will learn how to work with the the OPENFORMAT API\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openformat.mintlify.site/_mintlify/api/og/v2?division=API\u0026amp;title=API+Overview\u0026amp;description=In+this+page+you+will+learn+how+to+work+with+the+the+OPENFORMAT+API\u0026amp;theme=514e1a8ddc51945eeb20a7c5\u0026amp;signature=152f3999ea367321483b57e572c407353f3ca163994c9b8d2a7238a27328b989\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/openformat/j3opCXlUvavNOscS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OPENFORMAT\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openformat.tech/api-reference/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/introduction.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openformat.tech/#organization\",\"name\":\"OPENFORMAT\",\"url\":\"https://docs.openformat.tech\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openformat/vGurOUJG2onkcsD3/logo/light.svg?fit=max\u0026auto=format\u0026n=vGurOUJG2onkcsD3\u0026q=85\u0026s=23cfbea351e1a5a381a608e9f38b84c4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openformat.tech#website\",\"name\":\"OPENFORMAT\",\"url\":\"https://docs.openformat.tech\",\"publisher\":{\"@id\":\"https://docs.openformat.tech/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openformat.tech/api-reference/introduction#webpage\",\"url\":\"https://docs.openformat.tech/api-reference/introduction\",\"name\":\"API Overview\",\"description\":\"In this page you will learn how to work with the the OPENFORMAT API\",\"dateModified\":\"2026-01-07T00:44:38.939Z\",\"isPartOf\":{\"@id\":\"https://docs.openformat.tech#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openformat.tech/api-reference/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openformat.tech/api-reference/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"OPENFORMAT\",\"item\":\"https://docs.openformat.tech\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Overview\",\"item\":\"https://docs.openformat.tech/api-reference/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.openformat.tech/api-reference/introduction#article\",\"headline\":\"API Overview\",\"name\":\"API Overview\",\"description\":\"In this page you will learn how to work with the the OPENFORMAT API\",\"url\":\"https://docs.openformat.tech/api-reference/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openformat.tech/api-reference/introduction#webpage\"},\"dateModified\":\"2026-01-07T00:44:38.939Z\",\"publisher\":{\"@id\":\"https://docs.openformat.tech/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openformat.tech#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OPENFORMAT\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OPENFORMAT","nav":{"global":null,"tabs":[{"tab":"Overview","groups":[{"group":"Overview","pages":[{"title":"Welcome","icon":"arrow-right-to-arc","mode":"wide","href":"/welcome"},{"title":"Get Started","description":null,"icon":"rocket","mode":"wide","href":"/get-started"}]},{"group":"API","pages":[{"title":"API Overview","href":"/api-reference/introduction"},{"group":"Architecture","pages":[{"title":"Transaction Lifecycle","description":"How OPENFORMAT creates and broadcasts transactions","icon":"arrows-spin","href":"/api-reference/architecture/transaction-lifecycle"},{"title":"Reading on-chain Data","icon":"glasses","href":"/api-reference/architecture/reading-data"},{"title":"Real-time Notifications","icon":"bell","href":"/api-reference/architecture/notifications"}]},{"group":"Cookbook","pages":[{"group":"API","pages":[{"title":"Generate api key","href":"/api-reference/cookbook/generate-api-key"},{"title":"Credit transfer with permit","href":"/api-reference/cookbook/credit-transfer-with-permit"}]},{"group":"SDK","pages":[{"title":"Reward token","href":"/api-reference/cookbook/reward-token"},{"title":"Reward badge","href":"/api-reference/cookbook/reward-badge"}]},{"group":"Subgraph","pages":[{"title":"Webhook setup","href":"/api-reference/cookbook/webhook-setup"},{"title":"Webhook trigger","href":"/api-reference/cookbook/webhook-trigger"}]}]},{"title":"API Reference","url":"/api-reference/endpoint/api-key","href":"/api-reference/reference"}]},{"group":"SDKs","pages":[{"group":"Typescript","icon":"square-js","pages":[{"title":"Quickstart","href":"/sdks/typescript/quickstart"},{"title":"Create App","href":"/sdks/typescript/create-dApp"},{"title":"Reward Tokens","href":"/sdks/typescript/reward-token"},{"title":"Reward Badge","href":"/sdks/typescript/reward-badge"}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/endpoint/api-key/post-keychallenge"}]}]},"basePath":"","title":"API Overview - OPENFORMAT","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}