Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.
Signing produces a signature without submitting a transaction. Both signing methods verify the result against the wallet before returning it, so a signature you receive has already been checked.Signing requires an active wallet and uses the same idempotency IDs as transfers.
signTypedData validates the EIP-712 domain and data before signing, then verifies the signature against the wallet. Invalid domains, unknown types, and values that do not match their declared types are rejected rather than signed.
The SDK validates that typed data is well formed. It cannot judge what a given payload authorizes, and that remains your responsibility.
Do not expose signTypedData as a general-purpose endpoint that signs caller-supplied payloads. A signature over attacker-chosen typed data can authorize transfers, approvals, or contract calls that your application never intended. Construct the payload in your backend from values you control.
Continue with balances for reads that need no active wallet.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Polygon Developer Docs","colors":{"primary":"#670DE5","light":"#9551F5","dark":"#500AB2"},"logo":{"light":"https://mintcdn.com/polygon-labs/ll1LL3IdpC3YxXZu/logo/light.svg?fit=max\u0026auto=format\u0026n=ll1LL3IdpC3YxXZu\u0026q=85\u0026s=d54ddb30492807a0eadf38093c075f2f","dark":"https://mintcdn.com/polygon-labs/ll1LL3IdpC3YxXZu/logo/dark.svg?fit=max\u0026auto=format\u0026n=ll1LL3IdpC3YxXZu\u0026q=85\u0026s=3b2b67f82ff1720328da11b176a86499"},"favicon":"https://mintcdn.com/polygon-labs/neKXk5towK-oBDip/favicon.png?fit=max\u0026auto=format\u0026n=neKXk5towK-oBDip\u0026q=85\u0026s=64034729f6d0b52274b3093da8c47b2c","api":{"openapi":"api-reference/openapi.yaml","params":{"expanded":"all"},"playground":{"display":"interactive"},"mdx":{"server":["https://sandbox-api.polygon.technology/v0.13","https://api.polygon.technology/v0.13"]}},"appearance":{"default":"light"},"navbar":{"links":[{"href":"/resources/build-with-ai","label":"Build with AI"},{"href":"https://polygon.technology/get-access?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=oms_access","label":"Request OMS Access"}]},"footer":{"socials":{"x":"https://x.com/0xPolygon","github":"https://github.com/0xPolygon","linkedin":"https://www.linkedin.com/company/polygonlabs","discord":"https://discord.com/invite/polygon-support-635865020172861441"},"links":[{"items":[{"label":"Support","href":"https://support.polygon.technology/support/home"}]}]},"fonts":{"family":"Fustat"},"integrations":{"ga4":{"measurementId":"G-RJ6JC0EEY5"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"polygon-labs","hasAudioNarration":false,"actualSubdomain":"polygon-labs","customDomains":["docs.polygon.technology"],"gitSource":{"type":"github","owner":"0xpolygon","repo":"new-polygon-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae227de12cf5a20bf48f656","collectionId":"5a6bdf1b-e2a5-41d4-822f-a5b676cf4ba1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae227de12cf5a20bf48f656"},"feedback":{"contextualFeedback":{"allowEmail":true},"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae3128c90bdcff7cbc2fb55","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Polygon Chain","count":385},{"language":"default","tag":"Wallets","count":164},{"language":"default","tag":"Developer Tools","count":94},{"language":"default","tag":"API Reference","count":78},{"language":"default","tag":"Agglayer","count":73},{"language":"default","tag":"Platform","count":64},{"language":"default","tag":"Matic.js","count":59},{"language":"default","tag":"SDK","count":57},{"language":"default","tag":"Non-custodial","count":55},{"language":"default","tag":"Guides","count":46}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@polygon.technology","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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":"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":"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":"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":"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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"69cbd3d67f226f107dbd9b72","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"Can I move assets between different chains with OMS?","status":"active","generatedBy":"manual","createdAt":"2026-03-31T14:01:58.134Z","updatedAt":"2026-03-31T14:01:58.134Z","__v":0},{"_id":"69cbd3b07f226f107dbd9a9b","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"What are my options for integrating a wallet?","status":"active","generatedBy":"manual","createdAt":"2026-03-31T14:01:20.206Z","updatedAt":"2026-03-31T14:01:20.206Z","__v":0},{"_id":"69cbd3737f226f107dbd9910","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"How does KYC / KYB work in OMS?","status":"active","generatedBy":"manual","createdAt":"2026-03-31T14:00:19.974Z","updatedAt":"2026-03-31T14:00:19.974Z","__v":0}],"googleFontsInlined":true},"customCss":[{"filePath":"custom.css","content":".nav-tabs{gap:0!important;align-items:center!important}div:has(>.nav-tabs){height:58px!important}.fam-grp .nav-tabs-item,.nav-tabs a.nav-tabs-item{padding:7px 12px!important;font-size:14px;font-weight:500;color:#64708f!important;transition:color 120ms ease,background 120ms ease}.fam-grp .nav-tabs-item:hover,.nav-tabs a.nav-tabs-item:hover{color:#141635!important}html.dark .fam-grp .nav-tabs-item,html.dark .nav-tabs a.nav-tabs-item{color:rgba(255,255,255,.55)!important}html.dark .fam-grp .nav-tabs-item:hover,html.dark .nav-tabs a.nav-tabs-item:hover{color:#fff!important}.fam-grp{display:inline-flex;align-items:center;gap:4px}.fam-gap{width:1px;height:22px;background:#dfe3f0;margin:0 16px;flex-shrink:0}.fam-grp .nav-tabs-item>div{display:none!important}.fam-grp .nav-tabs-item{border-radius:8px;white-space:nowrap;text-decoration:none;transition:color 120ms ease,background 120ms ease!important}.fam-grp .nav-tabs-item.fam-active-tab{background:#eae4f5!important;color:#500ab2!important;font-weight:500!important}.fam-grp .nav-tabs-item.fam-active-tab svg{color:#500ab2!important}html.dark .fam-gap{background:rgba(255,255,255,.14)}html.dark .fam-grp .nav-tabs-item.fam-active-tab{background:rgba(103,13,229,.22)!important;color:#a78bfa!important}html.dark .fam-grp .nav-tabs-item.fam-active-tab svg{color:#a78bfa!important}#navbar a[href*=build-with-ai]{background:#fff!important;color:#141635!important;border:1px solid #c8cfe1!important;font-weight:600!important;transition:border-color 140ms ease,background 140ms ease!important}#navbar a[href*=build-with-ai]:hover{border-color:#141635!important;background:#f6f6fc!important}html.dark #navbar a[href*=build-with-ai]{background:0 0!important;color:#fff!important;border-color:rgba(255,255,255,.25)!important}html.dark #navbar a[href*=build-with-ai]:hover{border-color:#fff!important;background:rgba(255,255,255,.06)!important}#navbar a[href*=get-access]{background:#0b0814!important;color:#fff!important;border:1px solid #0b0814!important;transition:background 140ms ease!important}#navbar a[href*=get-access]:hover{background:#2a2640!important}html.dark #navbar a[href*=get-access]{background:#fff!important;color:#0b0814!important;border-color:#fff!important}html.dark #navbar a[href*=get-access]:hover{background:#e5e7eb!important;border-color:#e5e7eb!important}#sidebar-content a.text-primary,#sidebar-content a[class*=text-primary-light]{background-color:transparent!important}#sidebar-content a:not(.text-primary):not([class*=text-primary-light]):hover{background-color:rgba(103,13,229,.06)!important}#content-area:has(.api-section) #page-title{font-size:1.75rem;line-height:2.25rem}#content-area:has(.api-section) #header .prose{font-size:.9375rem;line-height:1.6}@container page-header (min-width: 520px){#content-area:has(.api-section) #header:has(.eyebrow) .eyebrow{display:flex;align-items:center;min-height:2.25rem;padding-right:11rem}#content-area:has(.api-section) #header:has(.eyebrow) .eyebrow~div:has(#page-context-menu){position:static}#content-area:has(.api-section) #header:has(.eyebrow) .eyebrow~div #page-context-menu{position:absolute;top:0;right:0;margin:0}}.api-section[data-api-section=authorizations]:has(+.api-section[data-api-section=headers]) .api-section-heading-title{font-size:0}.api-section[data-api-section=authorizations]:has(+.api-section[data-api-section=headers]) .api-section-heading-title::after{content:\"Authorization and headers\";font-size:1.125rem}.api-section[data-api-section=authorizations]+.api-section[data-api-section=headers] .api-section-heading{display:none}.api-section[data-api-section=authorizations]:has(+.api-section[data-api-section=headers]) .primitive-param-field:last-child{border-bottom-width:1px}.api-section .api-section-heading .border-b,.api-section .primitive-param-field{border-color:#d1d5db}html.dark .api-section .api-section-heading .border-b,html.dark .api-section .primitive-param-field{border-color:#374151}.api-section .primitive-param-field>.py-6{padding-top:.875rem;padding-bottom:.875rem}.api-section .primitive-param-field .mt-4{margin-top:.5rem}@media (min-width:1600px){#body-content:has(.api-section){max-width:1760px}#body-content:has(.api-section) #content-container{max-width:1440px}}"}],"page":{"pagePath":"wallets/sdk/server/sign-and-verify","slug":"/wallets/sdk/server/sign-and-verify","pageMetadata":{"title":"Sign and verify","sidebarTitle":"Sign and verify","description":"Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.","href":"/wallets/sdk/server/sign-and-verify"},"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: \"Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.\"\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,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Signing produces a signature without submitting a transaction. Both signing methods verify the result against the wallet before returning it, so a signature you receive has already been checked.`}),`\n`,_jsxs(_components.p,{children:[`Signing requires an active wallet and uses the same idempotency IDs as `,_jsx(_components.a,{href:`/wallets/sdk/server/transfers`,children:`transfers`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`sign-a-plain-message`,children:`Sign a plain message`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_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:` operationId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` crypto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`randomUUID`}),_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:` operation`}),_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:`operationId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`137`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Hello OMS'`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Signature:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`operation`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signature`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Verified:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`operation`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`verified`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The operation returns with status `,_jsx(_components.code,{children:`signed`}),`. `,_jsx(_components.code,{children:`signature`}),` holds the hex signature and `,_jsx(_components.code,{children:`verified`}),` reports the wallet-aware verification result.`]}),`\n`,_jsx(Heading,{level:`2`,id:`sign-typed-data`,children:`Sign typed data`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_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:` operation`}),_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:`signTypedData`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`operationId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`137`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` domain:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Example'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`version:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '1'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`chainId:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 137`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` types:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Order:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'asset'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`type:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'address'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'amount'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`type:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'uint256'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` primaryType:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Order'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` asset:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '0x1111111111111111111111111111111111111111'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` amount:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '1000000'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`signTypedData`}),` validates the EIP-712 domain and data before signing, then verifies the signature against the wallet. Invalid domains, unknown types, and values that do not match their declared types are rejected rather than signed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`treat-typed-data-signing-as-an-authorization`,children:`Treat typed-data signing as an authorization`}),`\n`,_jsx(_components.p,{children:`The SDK validates that typed data is well formed. It cannot judge what a given payload authorizes, and that remains your responsibility.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not expose `,_jsx(_components.code,{children:`signTypedData`}),` as a general-purpose endpoint that signs caller-supplied payloads. A signature over attacker-chosen typed data can authorize transfers, approvals, or contract calls that your application never intended. Construct the payload in your backend from values you control.`]})}),`\n`,_jsxs(_components.p,{children:[`Continue with `,_jsx(_components.a,{href:`/wallets/sdk/server/balances`,children:`balances`}),` for reads that need no active wallet.`]})]})}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":"Sign and verify","sidebarTitle":"Sign and verify","description":"Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.","href":"/wallets/sdk/server/sign-and-verify"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Sign a plain message","slug":"sign-a-plain-message","depth":2,"children":[]},{"title":"Sign typed data","slug":"sign-typed-data","depth":2,"children":[]},{"title":"Treat typed-data signing as an authorization","slug":"treat-typed-data-signing-as-an-authorization","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/polygon-labs/3aef159c73509324/analytics.js","/_mintlify/custom/polygon-labs/3af50e0aa9bbe82e/custom.js"],"subdomain":"polygon-labs","siteName":"Polygon Developer Docs","title":"Sign and verify - Polygon Developer Docs","contextualStarterQuestions":[{"_id":"6aadb90bf2341be554e849d0","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"What is EIP-712 typed data signing?","status":"active","generatedBy":"contextual","path":"wallets/sdk/server/sign-and-verify","createdAt":"2026-09-18T22:19:55.651Z","updatedAt":"2026-09-18T22:19:55.651Z","__v":0},{"_id":"6aadb90bf2341be554e849d1","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"How are signatures verified?","status":"active","generatedBy":"contextual","path":"wallets/sdk/server/sign-and-verify","createdAt":"2026-09-18T22:19:55.651Z","updatedAt":"2026-09-18T22:19:55.651Z","__v":0},{"_id":"6aadb90bf2341be554e849cf","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"How do I sign a plain message?","status":"active","generatedBy":"contextual","path":"wallets/sdk/server/sign-and-verify","createdAt":"2026-09-18T22:19:55.651Z","updatedAt":"2026-09-18T22:19:55.651Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-18T22:19:49.500Z","originalFileLocation":"wallets/sdk/server/sign-and-verify.md"},"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=\"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=\"description\" content=\"Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Polygon Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/polygon-labs/62XjF4p_S3sLlTMv/_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/polygon-labs/62XjF4p_S3sLlTMv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/polygon-labs/62XjF4p_S3sLlTMv/_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/polygon-labs/62XjF4p_S3sLlTMv/_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/polygon-labs/62XjF4p_S3sLlTMv/_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/polygon-labs/62XjF4p_S3sLlTMv/_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/polygon-labs/62XjF4p_S3sLlTMv/_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/polygon-labs/62XjF4p_S3sLlTMv/_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/polygon-labs/62XjF4p_S3sLlTMv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Sign and verify - Polygon Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Polygon Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://polygon-labs.mintlify.app/_mintlify/api/og/v2?division=SDK\u0026amp;title=Sign+and+verify\u0026amp;description=Sign+plain+messages+and+EIP-712+typed+data+from+a+Server+Wallet%2C+with+each+signature+verified+against+the+wallet+before+it+is+returned.\u0026amp;theme=430e64796fff481709b26ceb\u0026amp;signature=204471d54fef4240be084a968fc7b30251486e8927e6ebf3528de72ed4cb3389\">\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=\"Sign and verify - Polygon Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://polygon-labs.mintlify.app/_mintlify/api/og/v2?division=SDK\u0026amp;title=Sign+and+verify\u0026amp;description=Sign+plain+messages+and+EIP-712+typed+data+from+a+Server+Wallet%2C+with+each+signature+verified+against+the+wallet+before+it+is+returned.\u0026amp;theme=430e64796fff481709b26ceb\u0026amp;signature=204471d54fef4240be084a968fc7b30251486e8927e6ebf3528de72ed4cb3389\">\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/polygon-labs/62XjF4p_S3sLlTMv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Polygon Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#670DE5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/wallets/sdk/server/sign-and-verify.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.polygon.technology/#organization\",\"name\":\"Polygon Developer Docs\",\"url\":\"https://docs.polygon.technology\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/polygon-labs/ll1LL3IdpC3YxXZu/logo/light.svg?fit=max\u0026auto=format\u0026n=ll1LL3IdpC3YxXZu\u0026q=85\u0026s=d54ddb30492807a0eadf38093c075f2f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.polygon.technology#website\",\"name\":\"Polygon Developer Docs\",\"url\":\"https://docs.polygon.technology\",\"publisher\":{\"@id\":\"https://docs.polygon.technology/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify#webpage\",\"url\":\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify\",\"name\":\"Sign and verify\",\"description\":\"Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.\",\"dateModified\":\"2026-09-18T22:19:49.500Z\",\"isPartOf\":{\"@id\":\"https://docs.polygon.technology#website\"},\"breadcrumb\":{\"@id\":\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Wallets\",\"item\":\"https://docs.polygon.technology/wallets/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Custodial\",\"item\":\"https://docs.polygon.technology/wallets/custodial-wallets\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Server Wallets\",\"item\":\"https://docs.polygon.technology/wallets/server-wallets\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"SDK\",\"item\":\"https://docs.polygon.technology/wallets/sdk/server/quickstart\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Sign and verify\",\"item\":\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify#article\",\"headline\":\"Sign and verify\",\"name\":\"Sign and verify\",\"description\":\"Sign plain messages and EIP-712 typed data from a Server Wallet, with each signature verified against the wallet before it is returned.\",\"url\":\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify\",\"mainEntityOfPage\":{\"@id\":\"https://docs.polygon.technology/wallets/sdk/server/sign-and-verify#webpage\"},\"dateModified\":\"2026-09-18T22:19:49.500Z\",\"publisher\":{\"@id\":\"https://docs.polygon.technology/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.polygon.technology#website\"}}]}\u003c/script>","siteName":"Polygon Developer Docs","nav":{"global":null,"tabs":[{"tab":"Platform","icon":"layer-group","pages":[{"title":"Platform","href":""}]},{"tab":"Payments","pages":[{"title":"Payments","href":"/payments/overview"}]},{"tab":"Wallets","groups":[{"group":"Wallets","expanded":true,"pages":[{"title":"OMS wallets","sidebarTitle":"Overview","href":"/wallets/overview"},{"group":"Custodial","expanded":true,"pages":[{"title":"OMS Custodial Wallets","sidebarTitle":"Overview","href":"/wallets/custodial-wallets"},{"title":"Custodial wallet quickstart","sidebarTitle":"Quickstart","href":"/wallets/custodial-wallets-quickstart"},{"title":"OMS fiat wallets","sidebarTitle":"Fiat wallets","href":"/wallets/fiat-wallets"},{"group":"Server Wallets","pages":[{"title":"Server Wallets","sidebarTitle":"Overview","href":"/wallets/server-wallets"},{"group":"SDK","pages":[{"title":"Server Wallet SDK quickstart","sidebarTitle":"Quickstart","href":"/wallets/sdk/server/quickstart"},{"title":"Identity and credentials","sidebarTitle":"Identity and credentials","href":"/wallets/sdk/server/identity-and-credentials"},{"title":"Storage and concurrency","sidebarTitle":"Storage and concurrency","href":"/wallets/sdk/server/storage-and-concurrency"},{"title":"Transfers","sidebarTitle":"Transfers","href":"/wallets/sdk/server/transfers"},{"title":"Swaps","sidebarTitle":"Swaps","description":"Quote, review, and execute same-chain and cross-chain swaps from a Server Wallet, with durable progress tracking and recovery.","href":"/wallets/sdk/server/swaps"},{"title":"Sign and verify","sidebarTitle":"Sign and verify","href":"/wallets/sdk/server/sign-and-verify"},{"title":"Balances","sidebarTitle":"Balances","description":"Read native and ERC-20 balances for any address with the Server Wallet SDK indexer client, including pagination and per-chain errors.","href":"/wallets/sdk/server/balances"}]}]}]},{"group":"Non-custodial","expanded":true,"pages":[{"title":"OMS Non-Custodial Wallets","sidebarTitle":"Overview","href":"/wallets/non-custodial-wallets"},{"title":"SDK Quickstart","sidebarTitle":"Quickstart","href":"/wallets/quickstart"},{"group":"Features","pages":[{"title":"Authentication","href":"/wallets/authentication"},{"title":"Wallet Operations","href":"/wallets/wallet-operations"},{"title":"Gas Sponsorship","href":"/wallets/gas-sponsorship"},{"title":"Smart Sessions","href":"/wallets/smart-sessions"},{"title":"Private Send","href":"/wallets/private-send"},{"title":"Recovery","href":"/wallets/recovery"},{"title":"Security","href":"/wallets/security"}]},{"group":"SDK","pages":[{"title":"OMS Wallet SDKs","sidebarTitle":"Overview","href":"/wallets/sdk/overview"},{"group":"Guides","pages":[{"title":"Send USDC","sidebarTitle":"Send USDC","href":"/wallets/sdk/guides/send-usdc"},{"title":"Swap wallet assets","sidebarTitle":"Swap","href":"/wallets/sdk/guides/swap"},{"title":"Earn with Trails","sidebarTitle":"Earn","href":"/wallets/sdk/guides/earn"},{"title":"Backend wallet verification","sidebarTitle":"Backend verification","href":"/wallets/sdk/guides/backend-wallet-verification"},{"title":"Manage smart sessions from a backend","sidebarTitle":"Backend smart sessions","href":"/wallets/sdk/guides/backend-smart-sessions"}]},{"group":"TypeScript","pages":[{"title":"TypeScript SDK quickstart","sidebarTitle":"Quickstart","href":"/wallets/sdk/typescript/quickstart"},{"title":"TypeScript SDK authentication","sidebarTitle":"Authentication","href":"/wallets/sdk/typescript/authentication"},{"title":"TypeScript sessions and access","sidebarTitle":"Sessions and access","href":"/wallets/sdk/typescript/sessions-and-access"},{"title":"Send transactions with TypeScript","sidebarTitle":"Send transactions","href":"/wallets/sdk/typescript/send-transactions"},{"title":"Sign and verify with TypeScript","sidebarTitle":"Sign and verify","href":"/wallets/sdk/typescript/sign-and-verify"},{"title":"TypeScript balances and history","sidebarTitle":"Balances and history","href":"/wallets/sdk/typescript/balances-and-history"},{"title":"TypeScript networks","sidebarTitle":"Networks","href":"/wallets/sdk/typescript/networks-and-reference"},{"title":"TypeScript API reference","sidebarTitle":"API reference","href":"/wallets/sdk/typescript/api-reference"},{"title":"Use the TypeScript SDK with wagmi","sidebarTitle":"Using with wagmi","href":"/wallets/sdk/typescript/using-with-wagmi-connector"}]},{"group":"React Native","pages":[{"title":"React Native SDK quickstart","sidebarTitle":"Quickstart","href":"/wallets/sdk/react-native/quickstart"},{"title":"React Native authentication","sidebarTitle":"Authentication","href":"/wallets/sdk/react-native/authentication"},{"title":"React Native sessions and access","sidebarTitle":"Sessions and access","href":"/wallets/sdk/react-native/sessions-and-access"},{"title":"Send transactions with React Native","sidebarTitle":"Send transactions","href":"/wallets/sdk/react-native/send-transactions"},{"title":"Sign and verify with React Native","sidebarTitle":"Sign and verify","href":"/wallets/sdk/react-native/sign-and-verify"},{"title":"React Native balances and history","sidebarTitle":"Balances and history","href":"/wallets/sdk/react-native/balances-and-history"},{"title":"React Native networks","sidebarTitle":"Networks","href":"/wallets/sdk/react-native/networks-and-reference"},{"title":"React Native API reference","sidebarTitle":"API reference","href":"/wallets/sdk/react-native/api-reference"}]},{"group":"Swift","pages":[{"title":"Swift SDK quickstart","sidebarTitle":"Quickstart","href":"/wallets/sdk/swift/quickstart"},{"title":"Swift SDK authentication","sidebarTitle":"Authentication","href":"/wallets/sdk/swift/authentication"},{"title":"Swift sessions and access","sidebarTitle":"Sessions and access","href":"/wallets/sdk/swift/sessions-and-access"},{"title":"Send transactions with Swift","sidebarTitle":"Send transactions","href":"/wallets/sdk/swift/send-transactions"},{"title":"Sign and verify with Swift","sidebarTitle":"Sign and verify","href":"/wallets/sdk/swift/sign-and-verify"},{"title":"Swift balances and history","sidebarTitle":"Balances and history","href":"/wallets/sdk/swift/balances-and-history"},{"title":"Swift networks","sidebarTitle":"Networks","href":"/wallets/sdk/swift/networks-and-reference"},{"title":"Swift API reference","sidebarTitle":"API reference","href":"/wallets/sdk/swift/api-reference"}]},{"group":"Kotlin","pages":[{"title":"Kotlin SDK quickstart","sidebarTitle":"Quickstart","href":"/wallets/sdk/kotlin/quickstart"},{"title":"Kotlin SDK authentication","sidebarTitle":"Authentication","href":"/wallets/sdk/kotlin/authentication"},{"title":"Kotlin SDK sessions and access","sidebarTitle":"Sessions and access","href":"/wallets/sdk/kotlin/sessions-and-access"},{"title":"Kotlin SDK send transactions","sidebarTitle":"Send transactions","href":"/wallets/sdk/kotlin/send-transactions"},{"title":"Kotlin SDK sign and verify","sidebarTitle":"Sign and verify","href":"/wallets/sdk/kotlin/sign-and-verify"},{"title":"Kotlin SDK balances and history","sidebarTitle":"Balances and history","href":"/wallets/sdk/kotlin/balances-and-history"},{"title":"Kotlin SDK networks","sidebarTitle":"Networks","href":"/wallets/sdk/kotlin/networks-and-reference"},{"title":"Kotlin API reference","sidebarTitle":"API reference","href":"/wallets/sdk/kotlin/api-reference"}]}]},{"group":"Examples","pages":[{"title":"Interactive Demo","mode":"wide","href":"/wallets/examples/interactive-demo"},{"title":"Neobank iOS Demo","href":"/wallets/examples/neobank-ios"},{"title":"Hosted Wallet","href":"/wallets/hosted-wallet"},{"title":"Custom Wallet","href":"/wallets/custom-wallet"},{"title":"Automate USDC collection with a Treasury Wallet","sidebarTitle":"Treasury Wallet","href":"/wallets/treasury-wallet"},{"title":"Offer Yield Accounts to Your Users","sidebarTitle":"Offer Yield Accounts","href":"/wallets/morpho-vault-deposit"},{"title":"Agentic Wallets","href":"/wallets/agentic-wallets-overview"}]}]},{"group":"Technical Reference","expanded":true,"pages":[{"title":"OMS Wallet Architecture","href":"/wallets/architecture"},{"title":"Smart Sessions: Technical Deep Dive","href":"/wallets/smart-sessions-deep-dive"},{"title":"Wallet Configuration","href":"/wallets/wallet-configuration"},{"title":"Guard Firewall","href":"/wallets/guard-firewall"},{"title":"OMS Wallet Infrastructure","href":"/wallets/infrastructure"},{"title":"Timed Recovery: Technical Reference","href":"/wallets/timed-recovery-technical"},{"title":"Multi-Auth Linking","href":"/wallets/multi-auth-linking"},{"title":"Supported networks","sidebarTitle":"Supported networks","mode":"wide","href":"/wallets/supported-networks"}]}]}]},{"tab":"Cross-chain","pages":[{"title":"Cross-chain","href":"/cross-chain"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"Infrastructure","icon":"server","pages":[{"title":"Infrastructure","href":"/infrastructure"}]},{"tab":"Polygon Chain","pages":[{"title":"Polygon Chain","href":"/pos/overview"}]},{"tab":"Polygon CDK","pages":[{"title":"Polygon CDK","href":"/chain-development/cdk"}]},{"tab":"Agglayer","pages":[{"title":"Agglayer","href":"/interoperability/overview"}]},{"tab":"Agentic","pages":[{"title":"Agentic","href":"/payment-services/agentic-payments/agent-integration/intro"}]}]},"title":"Sign and verify - Polygon Developer Docs","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":[],"chunks":[]}