Finrock uses API keys to authenticate your requests. You can generate them from the dashboard.⚠️ API keys are shown only once at the time of creation. Be sure to copy and store them securely — they cannot be retrieved later.
🔑 How Authentication Works
Pass your API key in the x-api-key header.
Pass a short-lived JWT signed with your RSA-4096 private key using the Bearer token Authorization header.
No username or password is required — just the API key.
All requests must be made over HTTPS; requests over plain HTTP are rejected.
Invalid or missing keys will return a 401 Unauthorized.
❗️ Keep your API keys secure. They grant full access to your account and should never be shared publicly or within internal tools like Slack or dashboards.
AI connectors such as Claude connect through Finrock sign-in instead. Which endpoints they can call depends on their MCP scopes. See MCP Scopes.
Example Request
POST /dac/v1/transactions HTTP/1.1Host: api.finrock.ioContent-Type: application/jsonAuthorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...x-api-key: 4466c45a-7b28-4c50-a0f7-198f8d7f34c5{"asset":"BTC","amount":0.0675,"type":"Withdraw","ts":1715933321398}
Common Authentication Errors
401 Unauthorised — token expired or window too large
The JWT was rejected because either it has already expired, or the exp value is more than 30 seconds ahead of iat. Regenerate the JWT immediately before each request and keep the exp window at 29 seconds or fewer.
401 Unauthorised — invalid signature
The signature on the JWT could not be verified against the public key registered in the control panel. Confirm that you are signing with the private key that corresponds to the public key you uploaded, and that you are using the RS256 algorithm (not HS256 or RS512).
401 Unauthorised — bodyHash mismatch
The hash in the JWT payload does not match the body the server received. Ensure you hash the raw JSON string before passing it to your HTTP client. Avoid pretty-printing or re-ordering keys between hashing and sending.
401 Unauthorised — nonce already used
The nonce value in this JWT has been seen before. Generate a fresh UUID or random string for every request — never cache or reuse a nonce.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Finrock","colors":{"primary":"#F6921A","light":"#040404"},"logo":{"light":"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/Finrocklogo.png?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=5ebb1db67970f798309dd7291873f2b7","dark":"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/2e3558e0.png?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=dd03ef47767e1348cb231a65d5d3d4f3","href":"https://finrock.io"},"favicon":{"light":"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/icon-1024-center.jpg?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=40246637b1cb4d6e35d94212b458515e","dark":"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/icon-1024-center.jpg?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=40246637b1cb4d6e35d94212b458515e"},"api":{"playground":{"display":"interactive"},"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://api.finrock.io"}},"appearance":{"default":"light","strict":true},"navbar":{"primary":{"type":"github","href":"https://github.com/gofinrock"}},"icons":{"library":"lucide"},"integrations":{"gtm":{"tagId":"GTM-PZ4JW889"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"finrock","hasAudioNarration":false,"actualSubdomain":"finrock","customDomains":["apidocs.finrock.io"],"gitSource":{"type":"github","owner":"mintlify-community","repo":"docs-finrock-6e1ffd21","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af5be0b5cae6d002f818697","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"API Reference","count":88},{"language":"default","tag":"Documentation","count":28},{"language":"default","tag":"Guides","count":13},{"language":"default","tag":"Wallets \u0026 Addresses","count":7},{"language":"default","tag":"Overview","count":6},{"language":"default","tag":"Core Concepts","count":5},{"language":"default","tag":"Platform Reference","count":5},{"language":"default","tag":"AML","count":4},{"language":"default","tag":"Exchanges","count":4},{"language":"default","tag":"Gas Fee","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":""}],"page":{"pagePath":"api-reference/authentication","slug":"/api-reference/authentication","pageMetadata":{"title":"Authentication","sidebarTitle":"Authentication","icon":{"name":"lock","library":"lucide"},"description":null,"href":"/api-reference/authentication"},"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`,blockquote:`blockquote`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,CodeBlock,Heading,Note}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Finrock uses API keys to authenticate your requests. You can generate them from the `,_jsx(_components.a,{href:`https://finrock.io/dashboard`,children:_jsx(_components.strong,{children:`dashboard`})}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`⚠️ API keys are shown only once`}),` at the time of creation. Be sure to copy and store them securely — they cannot be retrieved later.`]}),`\n`,_jsx(Heading,{level:`3`,id:`-how-authentication-works`,children:_jsx(_components.strong,{children:`🔑 How Authentication Works`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Pass your API key in the `,_jsx(_components.code,{children:`x-api-key`}),` header.`]}),`\n`,_jsx(_components.li,{children:`Pass a short-lived JWT signed with your RSA-4096 private key using the Bearer token Authorization header.`}),`\n`,_jsx(_components.li,{children:`No username or password is required — just the API key.`}),`\n`,_jsx(_components.li,{children:`All requests must be made over HTTPS; requests over plain HTTP are rejected.`}),`\n`,_jsx(_components.li,{children:`Invalid or missing keys will return a 401 Unauthorized.`}),`\n`]}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`❗️ Keep your API keys secure. They grant full access to your account and should never be shared publicly or within internal tools like Slack or dashboards.`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`AI connectors such as Claude connect through Finrock sign-in instead. Which endpoints they can call depends on their MCP scopes. See `,_jsx(_components.a,{href:`/api-reference/mcp-scopes`,children:`MCP Scopes`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`example-request`,children:`Example Request`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`http`,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:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`POST`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` /dac/v1/transactions `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`HTTP`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1.1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Host`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` api.finrock.io`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Content-Type`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` application/json`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Authorization`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`x-api-key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 4466c45a-7b28-4c50-a0f7-198f8d7f34c5`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"asset\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"BTC\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.0675`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Withdraw\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"ts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1715933321398`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`common-authentication-errors`,children:`Common Authentication Errors`}),`\n`,_jsx(Accordion,{title:`401 Unauthorised — token expired or window too large`,id:`401-unauthorised-token-expired-or-window-too-large`,children:_jsxs(_components.p,{children:[`The JWT was rejected because either it has already expired, or the `,_jsx(_components.code,{children:`exp`}),` value is more than 30 seconds ahead of `,_jsx(_components.code,{children:`iat`}),`. Regenerate the JWT immediately before each request and keep the `,_jsx(_components.code,{children:`exp`}),` window at 29 seconds or fewer.`]})}),`\n`,_jsx(Accordion,{title:`401 Unauthorised — invalid signature`,id:`401-unauthorised-invalid-signature`,children:_jsxs(_components.p,{children:[`The signature on the JWT could not be verified against the public key registered in the control panel. Confirm that you are signing with the private key that corresponds to the public key you uploaded, and that you are using the `,_jsx(_components.strong,{children:`RS256`}),` algorithm (not HS256 or RS512).`]})}),`\n`,_jsx(Accordion,{title:`401 Unauthorised — bodyHash mismatch`,id:`401-unauthorised-bodyhash-mismatch`,children:_jsxs(_components.p,{children:[`The hash in the JWT payload does not match the body the server received. Ensure you hash the raw JSON string `,_jsx(_components.strong,{children:`before`}),` passing it to your HTTP client. Avoid pretty-printing or re-ordering keys between hashing and sending.`]})}),`\n`,_jsx(Accordion,{title:`401 Unauthorised — nonce already used`,id:`401-unauthorised-nonce-already-used`,children:_jsx(_components.p,{children:`The nonce value in this JWT has been seen before. Generate a fresh UUID or random string for every request — never cache or reuse a nonce.`})})]})}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":"Authentication","sidebarTitle":"Authentication","icon":{"name":"lock","library":"lucide"},"description":null,"href":"/api-reference/authentication"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"🔑 How Authentication Works","slug":"-how-authentication-works","depth":3,"children":[]},{"title":"Example Request","slug":"example-request","depth":3,"children":[]},{"title":"Common Authentication Errors","slug":"common-authentication-errors","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"finrock","siteName":"Finrock","title":"Authentication - Finrock","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T21:29:55.294Z","originalFileLocation":"api-reference/authentication.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"application-name\" content=\"Finrock\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authentication - Finrock\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Finrock\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://apidocs.finrock.io/api-reference/authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://finrock.mintlify.site/_mintlify/api/og/v2?division=Overview\u0026amp;title=Authentication\u0026amp;theme=303f00c977b1c5bb32286452\u0026amp;signature=c9b5a8c54ebd5bc8cd15c43d41811f970ea728490fd8caa972f2b48f2766ae3d\">\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=\"Authentication - Finrock\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://finrock.mintlify.site/_mintlify/api/og/v2?division=Overview\u0026amp;title=Authentication\u0026amp;theme=303f00c977b1c5bb32286452\u0026amp;signature=c9b5a8c54ebd5bc8cd15c43d41811f970ea728490fd8caa972f2b48f2766ae3d\">\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/finrock/MCcXnkpjZeC08COI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Finrock\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F6921A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://apidocs.finrock.io/api-reference/authentication\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/authentication.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://apidocs.finrock.io/#organization\",\"name\":\"Finrock\",\"url\":\"https://apidocs.finrock.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/Finrocklogo.png?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=5ebb1db67970f798309dd7291873f2b7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://apidocs.finrock.io#website\",\"name\":\"Finrock\",\"url\":\"https://apidocs.finrock.io\",\"publisher\":{\"@id\":\"https://apidocs.finrock.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://apidocs.finrock.io/api-reference/authentication#webpage\",\"url\":\"https://apidocs.finrock.io/api-reference/authentication\",\"name\":\"Authentication\",\"dateModified\":\"2026-10-30T21:29:55.294Z\",\"isPartOf\":{\"@id\":\"https://apidocs.finrock.io#website\"},\"breadcrumb\":{\"@id\":\"https://apidocs.finrock.io/api-reference/authentication#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://apidocs.finrock.io/api-reference/authentication#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://apidocs.finrock.io/api-reference/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overview\",\"item\":\"https://apidocs.finrock.io/api-reference/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Authentication\",\"item\":\"https://apidocs.finrock.io/api-reference/authentication\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://apidocs.finrock.io/api-reference/authentication#article\",\"headline\":\"Authentication\",\"name\":\"Authentication\",\"url\":\"https://apidocs.finrock.io/api-reference/authentication\",\"mainEntityOfPage\":{\"@id\":\"https://apidocs.finrock.io/api-reference/authentication#webpage\"},\"dateModified\":\"2026-10-30T21:29:55.294Z\",\"publisher\":{\"@id\":\"https://apidocs.finrock.io/#organization\"},\"isPartOf\":{\"@id\":\"https://apidocs.finrock.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Finrock\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Finrock\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/authentication.md","siteName":"Finrock","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"group":"Overview","expanded":true,"pages":[{"title":"General","sidebarTitle":"General","icon":{"name":"book-open","library":"lucide"},"description":null,"href":"/api-reference/overview"},{"title":"Authentication","sidebarTitle":"Authentication","icon":{"name":"lock","library":"lucide"},"href":"/api-reference/authentication"},{"title":"MCP Scopes","sidebarTitle":"MCP Scopes","description":"Which Finrock API endpoints AI connectors such as Claude can call after Finrock sign-in, and the MCP scope each one needs.","icon":{"name":"key-square","library":"lucide"},"href":"/api-reference/mcp-scopes"},{"title":"Idempotent Transactions ","sidebarTitle":"Idempotency","icon":{"name":"repeat","library":"lucide"},"href":"/reference/idempotency"},{"title":"Receive Real-Time Notifications","sidebarTitle":"Webhooks","icon":{"name":"webhook","library":"lucide"},"href":"/guides/webhooks"},{"title":"HTTP Status Codes Returned by the Finrock REST API","sidebarTitle":"HTTP Status Codes","icon":{"name":"circle-alert","library":"lucide"},"href":"/reference/http-status-codes"}]},{"group":"Wallets \u0026 Addresses","expanded":false,"pages":[{"title":"List Wallets","sidebarTitle":"Wallets","api":"GET https://api.finrock.io/dac/v1/wallets","icon":{"name":"list","library":"lucide"},"href":"/api-reference/wallets/list-wallets"},{"title":"Create Wallet","sidebarTitle":"Create Wallet","api":"POST https://api.finrock.io/dac/v1/wallet","icon":{"name":"wallet","library":"lucide"},"href":"/api-reference/wallets/create-wallet"},{"title":"Edit Wallet","sidebarTitle":"Edit Wallet","api":"PATCH https://api.finrock.io/dac/v1/wallet","icon":{"name":"pencil","library":"lucide"},"href":"/api-reference/wallets/edit-wallet"},{"title":"Wallet Addresses","sidebarTitle":"Addresses","api":"GET https://api.finrock.io/dac/v1/addresses","icon":{"name":"list-ordered","library":"lucide"},"href":"/api-reference/wallets/list-addresses"},{"title":"Create Address","sidebarTitle":"Create Address","api":"POST https://api.finrock.io/dac/v1/generate-address","icon":{"name":"map-pin-plus","library":"lucide"},"href":"/api-reference/wallets/create-address"},{"title":"Edit Address","sidebarTitle":"Edit Address","api":"PATCH https://api.finrock.io/dac/v1/address","icon":{"name":"pencil","library":"lucide"},"href":"/api-reference/wallets/edit-address"},{"title":"Validate Address","sidebarTitle":"Validate Address","api":"GET https://api.finrock.io/dac/v1/validate-address","icon":{"name":"badge-check","library":"lucide"},"href":"/api-reference/wallets/validate-address"}]},{"group":"Transactions","expanded":false,"pages":[{"title":"Transactions","sidebarTitle":"Transactions","api":"GET https://api.finrock.io/dac/v1/transactions","icon":{"name":"history","library":"lucide"},"href":"/api-reference/transactions/list-transactions"},{"title":"Create Transaction","sidebarTitle":"Create Transaction","api":"POST https://api.finrock.io/dac/v1/transaction","icon":{"name":"send","library":"lucide"},"href":"/api-reference/transactions/create-transaction"},{"title":"Bump Fee","sidebarTitle":"Bump Fee","api":"POST https://api.finrock.io/dac/v1/bump-fee","icon":{"name":"trending-up","library":"lucide"},"href":"/api-reference/transactions/bump-fee"},{"title":"Manual Sweep","sidebarTitle":"Manual Sweep","api":"POST https://api.finrock.io/dac/v1/invoke-sweep","icon":{"name":"merge","library":"lucide"},"href":"/api-reference/wallets/manual-sweep"}]},{"group":"Spending Rules","pages":[{"title":"List Spending Rules","sidebarTitle":"List Spending Rules","api":"GET https://api.finrock.io/dac/v1/spending-rule","icon":{"name":"list-checks","library":"lucide"},"href":"/api-reference/spending-rules/list-spending-rules"},{"title":"Create Spending Rule","sidebarTitle":"Create Spending Rule","api":"POST https://api.finrock.io/dac/v1/spending-rule","icon":{"name":"shield-plus","library":"lucide"},"href":"/api-reference/spending-rules/create-spending-rule"},{"title":"Delete Spending Rule","sidebarTitle":"Delete Spending Rule","api":"DELETE https://api.finrock.io/dac/v1/spending-rule","icon":{"name":"trash-2","library":"lucide"},"href":"/api-reference/spending-rules/delete-spending-rule"}]},{"group":"Gas Fee","expanded":false,"pages":[{"title":"Network Fee Rates","sidebarTitle":"Network Fee Rates","api":"GET https://api.finrock.io/dac/v1/network-fee-rates","icon":{"name":"activity","library":"lucide"},"href":"/api-reference/gas/network-fee-rates"},{"title":"Estimate Fee","sidebarTitle":"Estimate Fee","api":"GET https://api.finrock.io/dac/v1/estimate-fee","icon":{"name":"calculator","library":"lucide"},"href":"/api-reference/transactions/estimate-fee"},{"title":"Gas Tanks","sidebarTitle":"Gas Tanks","api":"GET https://api.finrock.io/dac/v1/gas-tanks","icon":{"name":"fuel","library":"lucide"},"href":"/api-reference/gas/list-gas-tanks"},{"title":"Gas Tank Balance","sidebarTitle":"Gas Tank Balance","api":"GET https://api.finrock.io/dac/v1/gas-tank-bal/{asset}","icon":{"name":"gauge","library":"lucide"},"href":"/api-reference/gas/gas-tank-balance"}]},{"group":"Exchanges","expanded":false,"pages":[{"title":"Exchange Connections","sidebarTitle":"Supported Exchanges","icon":{"name":"building-2","library":"lucide"},"href":"/api-reference/exchanges/list-exchanges"},{"title":"Exchange Accounts","sidebarTitle":"Accounts","api":"GET https://api.finrock.io/dac/v1/exchange-accounts","icon":{"name":"users","library":"lucide"},"href":"/api-reference/exchanges/list-exchange-accounts"},{"title":"Exchange Balance","sidebarTitle":"Balance","api":"GET https://api.finrock.io/dac/v1/exchange-balance","icon":{"name":"scale","library":"lucide"},"href":"/api-reference/exchanges/exchange-balance"},{"title":"Transfer funds To/From an exchange","sidebarTitle":"Transfer","api":"POST https://api.finrock.io/dac/v1/transaction","icon":{"name":"arrow-left-right","library":"lucide"},"href":"/api-reference/exchanges/transfer-funds-to-from-an-exchange"}]},{"group":"Invoicing","expanded":false,"pages":[{"title":"Create Invoice","sidebarTitle":"Create Invoice","api":"POST https://api.finrock.io/dac/v1/invoice","icon":{"name":"file-plus","library":"lucide"},"href":"/api-reference/invoicing/create-invoice"},{"title":"List Invoices","sidebarTitle":"List Invoices","api":"GET https://api.finrock.io/dac/v1/invoice","icon":{"name":"receipt","library":"lucide"},"href":"/api-reference/invoicing/list-invoices"}]},{"group":"Webhooks","pages":[{"title":"Get Webhook","sidebarTitle":"Get Webhook","api":"GET https://api.finrock.io/dac/v1/webhook","icon":{"name":"webhook","library":"lucide"},"href":"/api-reference/webhooks/get-webhook"},{"title":"Add Webhook","sidebarTitle":"Add Webhook","api":"POST https://api.finrock.io/dac/v1/webhook","icon":{"name":"plus","library":"lucide"},"href":"/api-reference/webhooks/add-webhook"},{"title":"Delete Webhook","sidebarTitle":"Delete Webhook","api":"DELETE https://api.finrock.io/dac/v1/webhook","icon":{"name":"trash-2","library":"lucide"},"href":"/api-reference/webhooks/delete-webhook"}]},{"group":"AML","expanded":false,"pages":[{"title":"AML Status","sidebarTitle":"AML Status","api":"GET https://api.finrock.io/dac/v1/aml","icon":{"name":"shield","library":"lucide"},"href":"/api-reference/aml/aml-status"},{"title":"Configure AML","sidebarTitle":"Configure AML","api":"POST https://api.finrock.io/dac/v1/aml","icon":{"name":"settings","library":"lucide"},"href":"/api-reference/aml/manage-aml"},{"title":"Frozen Addresses","sidebarTitle":"Frozen Addresses","api":"GET https://api.finrock.io/dac/v1/frozen-addresses","icon":{"name":"snowflake","library":"lucide"},"href":"/api-reference/aml/frozen-addresses"},{"title":"Unfreeze Address","sidebarTitle":"Unfreeze Address","api":"POST https://api.finrock.io/dac/v1/unfreeze-address","icon":{"name":"lock-open","library":"lucide"},"href":"/api-reference/aml/unfreeze-address"}]},{"group":"Utilities","expanded":false,"pages":[{"title":"Supported Assets","sidebarTitle":"Supported Assets","api":"GET https://api.finrock.io/assets","icon":{"name":"coins","library":"lucide"},"href":"/api-reference/utilities/supported-assets"},{"title":"Asset Price","sidebarTitle":"Asset Price","api":"GET https://api.finrock.io/prices","icon":{"name":"dollar-sign","library":"lucide"},"href":"/api-reference/utilities/price"},{"title":"Prepaid Fee","sidebarTitle":"Prepaid Fee","api":"POST https://api.finrock.io/dac/v1/prepaid-fee","icon":{"name":"piggy-bank","library":"lucide"},"href":"/api-reference/utilities/prepaid-fee"}]},{"group":"TRON Staking","pages":[{"title":"Tron Stake","sidebarTitle":"Tron Stake","api":"POST https://api.finrock.io/dac/v1/tron/stake","icon":{"name":"zap","library":"lucide"},"href":"/api-reference/utilities/tron-stake"},{"title":"Tron Unstake","sidebarTitle":"Tron Unstake","api":"POST https://api.finrock.io/dac/v1/tron/unstake","icon":{"name":"timer","library":"lucide"},"href":"/api-reference/utilities/tron-unstake"},{"title":"Release Unstaked","sidebarTitle":"Release Unstaked","api":"POST https://api.finrock.io/dac/v1/tron/release-unstaked","icon":{"name":"hand-coins","library":"lucide"},"href":"/api-reference/utilities/tron-release"},{"title":"Stake Transactions","sidebarTitle":"Stake Transactions","api":"GET https://api.finrock.io/dac/v1/tron/stake-txns","icon":{"name":"history","library":"lucide"},"href":"/api-reference/utilities/tron-stake-txns"}]}]}]}]},"basePath":"","title":"Authentication - Finrock","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}