Registers a new decentralized identifier (DID) on-chain after the user’s identifier has been verified via OTP, completing the HyperAuth signup flow.
Registers a DID after the identifier has been verified. For non-handle channels, an attestation object must be present and is validated against the ATTESTATION_SIGNING_KEY before the DO call is made.
Attestation identifier/channel does not match request
409
"credential_already_registered"
Credential ID already in registered_dids
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"HyperAuth","colors":{"primary":"#0A0A0A","light":"#FAFAFA","dark":"#0A0A0A"},"logo":{"light":"https://mintcdn.com/hyperauth-896d2df5/LToRzrn5zjXWGN3_/logo/light.svg?fit=max\u0026auto=format\u0026n=LToRzrn5zjXWGN3_\u0026q=85\u0026s=b28a40224c5080702ce8d88bea8bc003","dark":"https://mintcdn.com/hyperauth-896d2df5/LToRzrn5zjXWGN3_/logo/dark.svg?fit=max\u0026auto=format\u0026n=LToRzrn5zjXWGN3_\u0026q=85\u0026s=ea245ffd5b70954546cd0588cf94087e"},"favicon":"https://mintlify.s3.us-west-1.amazonaws.com/hyperauth-896d2df5/favicon.svg","navbar":{"links":[{"href":"https://github.com/hyper-auth","label":"GitHub"}],"primary":{"type":"button","label":"Get Started","href":"/quickstart"}},"footer":{"socials":{"github":"https://github.com/hyper-auth"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/hyper-auth"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hyperauth-896d2df5","hasAudioNarration":false,"actualSubdomain":"hyperauth-896d2df5","customDomains":["docs.hyperauth.dev"],"gitSource":{"type":"github","owner":"wltbs","repo":"core","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a4a7c96c7b1e661f9c0a518","collectionId":"66dc6556-7f77-470b-a282-2d7413da978d","schemaVersion":"v3"},"feedback":{"thumbs":true,"edits":false,"agentFeedback":true,"issues":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a4a7c96c7b1e661f9c0a518:success","clientVersion":"0.0.3894","searchFilterCounts":[{"language":"default","tag":"API Reference","count":20},{"language":"default","tag":"SDK","count":20},{"language":"default","tag":"Guides","count":9},{"language":"default","tag":"Stateless","count":7},{"language":"default","tag":"Registration","count":6},{"language":"default","tag":"Reference","count":6},{"language":"default","tag":"Concepts","count":5},{"language":"default","tag":"Get Started","count":5},{"language":"default","tag":"Introduction","count":3},{"language":"default","tag":"Global Lookups","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"editor-v7-file-tree","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","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":"editor-private-page-search","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":"teamspace","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","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":"byok-sep-25","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":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/registration/dids","slug":"/api-reference/registration/dids","pageMetadata":{"title":"POST /api/dids","description":"Registers a new decentralized identifier (DID) on-chain after the user's identifier has been verified via OTP, completing the HyperAuth signup flow.","href":"/api-reference/registration/dids"},"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: \"Registers a new decentralized identifier (DID) on-chain after the user’s identifier has been verified via OTP, completing the HyperAuth signup flow.\"\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={code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Registers a DID after the identifier has been verified. For non-handle channels, an `,_jsx(_components.code,{children:`attestation`}),` object must be present and is validated against the `,_jsx(_components.code,{children:`ATTESTATION_SIGNING_KEY`}),` before the DO call is made.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request body`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`credentialId`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`WebAuthn credential ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`identifier`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`Registration identifier (also accepts `,_jsx(_components.code,{children:`handle`}),` or `,_jsx(_components.code,{children:`name`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`channel`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Channel type`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`did`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`DID to register`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`txHash`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Transaction hash of the on-chain registration`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`blockNumber`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`number`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Block number of the transaction`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`smartAccount`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Smart account address`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`attestation`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`VerificationAttestation`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Required for non-handle channels`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`response-200`,children:`Response (200)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_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:`\"ok\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"identifier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"alice\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"channel\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"handle\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"txHash\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0x...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`error`})}),_jsx(_components.th,{children:`Condition`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`\"Missing required fields: credentialId, identifier, channel, did, txHash\"`})}),_jsx(_components.td,{children:`Field absent`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`\"attestation_invalid\"`})}),_jsx(_components.td,{children:`Attestation signature invalid`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`\"attestation_mismatch\"`})}),_jsx(_components.td,{children:`Attestation identifier/channel does not match request`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`409`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`\"credential_already_registered\"`})}),_jsxs(_components.td,{children:[`Credential ID already in `,_jsx(_components.code,{children:`registered_dids`})]})]})]})]})]})}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":"POST /api/dids","description":"Registers a new decentralized identifier (DID) on-chain after the user's identifier has been verified via OTP, completing the HyperAuth signup flow.","href":"/api-reference/registration/dids"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Request body","slug":"request-body","depth":2,"children":[]},{"title":"Response (200)","slug":"response-200","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"hyperauth-896d2df5","siteName":"HyperAuth","title":"POST /api/dids - HyperAuth","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-19T12:40:31.771Z","originalFileLocation":"api-reference/registration/dids.mdx"},"headHtml":"\u003cmeta data-mint-head name=\"description\" content=\"Registers a new decentralized identifier (DID) on-chain after the user\u0026#x27;s identifier has been verified via OTP, completing the HyperAuth signup flow.\">\u003cmeta data-mint-head name=\"application-name\" content=\"HyperAuth\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hyperauth-896d2df5/m4aOYsHrUumexr-M/_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/hyperauth-896d2df5/m4aOYsHrUumexr-M/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hyperauth-896d2df5/m4aOYsHrUumexr-M/_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/hyperauth-896d2df5/m4aOYsHrUumexr-M/_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/hyperauth-896d2df5/m4aOYsHrUumexr-M/_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/hyperauth-896d2df5/m4aOYsHrUumexr-M/_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/hyperauth-896d2df5/m4aOYsHrUumexr-M/_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/hyperauth-896d2df5/m4aOYsHrUumexr-M/_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/hyperauth-896d2df5/m4aOYsHrUumexr-M/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"POST /api/dids - HyperAuth\">\u003cmeta data-mint-head property=\"og:description\" content=\"Registers a new decentralized identifier (DID) on-chain after the user\u0026#x27;s identifier has been verified via OTP, completing the HyperAuth signup flow.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HyperAuth\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hyperauth.dev/api-reference/registration/dids\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"POST /api/dids - HyperAuth\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Registers a new decentralized identifier (DID) on-chain after the user\u0026#x27;s identifier has been verified via OTP, completing the HyperAuth signup flow.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hyperauth-896d2df5/m4aOYsHrUumexr-M/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HyperAuth\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0A0A0A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hyperauth.dev/api-reference/registration/dids\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/registration/dids.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hyperauth.dev/#organization\",\"name\":\"HyperAuth\",\"url\":\"https://docs.hyperauth.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hyperauth-896d2df5/LToRzrn5zjXWGN3_/logo/light.svg?fit=max\u0026auto=format\u0026n=LToRzrn5zjXWGN3_\u0026q=85\u0026s=b28a40224c5080702ce8d88bea8bc003\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hyperauth.dev#website\",\"name\":\"HyperAuth\",\"url\":\"https://docs.hyperauth.dev\",\"publisher\":{\"@id\":\"https://docs.hyperauth.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hyperauth.dev/api-reference/registration/dids#webpage\",\"url\":\"https://docs.hyperauth.dev/api-reference/registration/dids\",\"name\":\"POST /api/dids\",\"description\":\"Registers a new decentralized identifier (DID) on-chain after the user's identifier has been verified via OTP, completing the HyperAuth signup flow.\",\"dateModified\":\"2026-05-19T12:40:31.771Z\",\"isPartOf\":{\"@id\":\"https://docs.hyperauth.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hyperauth.dev/api-reference/registration/dids#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hyperauth.dev/api-reference/registration/dids#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Registration\",\"item\":\"https://docs.hyperauth.dev/api-reference/registration/sessions\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"POST /api/dids\",\"item\":\"https://docs.hyperauth.dev/api-reference/registration/dids\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.hyperauth.dev/api-reference/registration/dids#article\",\"headline\":\"POST /api/dids\",\"name\":\"POST /api/dids\",\"description\":\"Registers a new decentralized identifier (DID) on-chain after the user's identifier has been verified via OTP, completing the HyperAuth signup flow.\",\"url\":\"https://docs.hyperauth.dev/api-reference/registration/dids\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hyperauth.dev/api-reference/registration/dids#webpage\"},\"dateModified\":\"2026-05-19T12:40:31.771Z\",\"publisher\":{\"@id\":\"https://docs.hyperauth.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hyperauth.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HyperAuth\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"HyperAuth","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/hyper-auth"}]},"tabs":[{"tab":"Get Started","icon":"rocket","pages":[{"title":"Get Started","href":""}]},{"tab":"SDK","icon":"code","pages":[{"title":"SDK","href":"/guides/authentication"}]},{"tab":"API Reference","icon":"server","groups":[{"group":"Overview","pages":[{"title":"Introduction","icon":"book-open","href":"/api-reference/introduction"}]},{"group":"Static / CDN","pages":[{"title":"GET /enclave.wasm","href":"/api-reference/static/enclave-wasm"}]},{"group":"Stateless","pages":[{"title":"GET /api/contracts","href":"/api-reference/stateless/contracts"},{"title":"POST /api/bundler","href":"/api-reference/stateless/bundler"},{"title":"GET /api/status","href":"/api-reference/stateless/status"},{"title":"GET /api/accounts/predict","href":"/api-reference/stateless/accounts-predict"},{"title":"GET /api/accounts/state","href":"/api-reference/stateless/accounts-state"},{"title":"GET /api/balance","href":"/api-reference/stateless/balance"},{"title":"GET /api/sessions/status","href":"/api-reference/stateless/sessions-status"}]},{"group":"Global Lookups","pages":[{"title":"GET /api/dids/lookup","href":"/api-reference/lookups/dids-lookup"},{"title":"GET /api/aliases/check","href":"/api-reference/lookups/aliases-check"}]},{"group":"Registration","pages":[{"title":"POST /api/sessions","href":"/api-reference/registration/sessions"},{"title":"GET /api/sessions/check","href":"/api-reference/registration/sessions-check"},{"title":"POST /api/verify/send","href":"/api-reference/registration/verify-send"},{"title":"POST /api/verify/check","href":"/api-reference/registration/verify-check"},{"title":"GET /api/verify/status","description":"Returns the current OTP verification state for a given identifier and channel so clients can poll registration progress and surface accurate UI.","href":"/api-reference/registration/verify-status"},{"title":"POST /api/dids","href":"/api-reference/registration/dids"}]},{"group":"Indexer","pages":[{"title":"GET /api/indexer/{path}","description":"Proxies arbitrary requests to the upstream HyperAuth indexer service, stripping the /api/indexer prefix and forwarding the remaining path.","href":"/api-reference/indexer/proxy"}]},{"group":"Payments","pages":[{"title":"Payment Handler","href":"/api-reference/payments/handler"}]},{"group":"Rate Limits","pages":[{"title":"Rate Limits and Constants","href":"/api-reference/rate-limits"}]}]},{"tab":"Changelog","icon":"rss","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},"title":"POST /api/dids - HyperAuth","buildId":"dpl_8LJVMfxYNq6LJkohTrn2iyWT8umj","deploymentId":"dpl_8LJVMfxYNq6LJkohTrn2iyWT8umj","dynamics":[],"chunks":[]}