The auto-claim service automates the claiming of bridge transactions on the destination chain. It polls the Bridge Hub API for transactions in READY_TO_CLAIM status, fetches Merkle proofs, and submits claim transactions. It handles both ASSET and MESSAGE claim types and filters out zero-amount MESSAGE transactions.
Claims are processed sequentially to avoid nonce conflicts. One auto-claim instance should run per destination network.
Errors on one transaction do not affect others. The blockchain enforces claim uniqueness, so the service is safe to restart at any time without risk of double-claiming. Failed claim transactions are reverted onchain and do not result in lost funds.
The auto-claim service requires a private key to submit onchain transactions. Follow these guidelines to protect it:
Never log or expose private keys. Ensure your logging configuration does not capture environment variables.
Load keys from a secret management system such as AWS Secrets Manager, HashiCorp Vault, or Kubernetes Secrets. Avoid hardcoding keys in configuration files.
Use a dedicated wallet with minimal funding. The wallet only needs enough native tokens to cover gas on the destination chain.
Monitor for unusual activity. Set up alerts for unexpected balance changes or transaction patterns on the claiming wallet.
Claims are atomic: they either succeed or revert entirely. The blockchain enforces uniqueness, so a transaction cannot be claimed twice even if the service processes it again after a restart.
Check that the claiming wallet has sufficient gas on the destination chain.
”API unreachable” errors
Verify BRIDGE_HUB_API_URL is correct and accessible from the auto-claim service.
Nonce conflicts
Ensure only one auto-claim instance runs per destination network.
Claims failing
Check RPC endpoint connectivity. Verify the BRIDGE_CONTRACT address is correct for the destination network.
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":"6ae227de12cf5a20bf48f656","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":"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":"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":"editor-nav-generations","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":"editor-agent-model-picker","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":"interoperability/agglayer/integrations/bridge-hub/auto-claim","slug":"/interoperability/agglayer/integrations/bridge-hub/auto-claim","pageMetadata":{"title":"Auto-Claim Service","description":"Automated bridge transaction claiming: configuration, deployment, and security.","href":"/interoperability/agglayer/integrations/bridge-hub/auto-claim"},"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: \"Automated bridge transaction claiming: configuration, deployment, and security.\"\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`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`The auto-claim service automates the claiming of bridge transactions on the destination chain. It polls the Bridge Hub API for transactions in `,_jsx(_components.code,{children:`READY_TO_CLAIM`}),` status, fetches Merkle proofs, and submits claim transactions. It handles both `,_jsx(_components.code,{children:`ASSET`}),` and `,_jsx(_components.code,{children:`MESSAGE`}),` claim types and filters out zero-amount `,_jsx(_components.code,{children:`MESSAGE`}),` transactions.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsx(_components.p,{children:`The auto-claim service runs a continuous polling loop on a 30-second interval. Each cycle follows this sequence:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Poll the Bridge Hub API for transactions with `,_jsx(_components.code,{children:`READY_TO_CLAIM`}),` status.`]}),`\n`,_jsx(_components.li,{children:`Filter the returned transactions by source network and claim type.`}),`\n`,_jsx(_components.li,{children:`For each transaction: fetch the Merkle proof, compute the global index, submit the claim transaction, and wait for onchain confirmation.`}),`\n`,_jsx(_components.li,{children:`Sleep for 30 seconds, then repeat.`}),`\n`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`26`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`26`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ┌─────────────────┐`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ Poll API │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ (30s interval) │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` └────────┬────────┘`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▼`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ┌─────────────────┐`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ Filter Txs │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` └────────┬────────┘`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▼`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ┌─────────────────┐`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ For Each Tx: │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ 1. Get Proof │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ 2. Compute Index│`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ 3. Submit Claim │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ 4. Wait Confirm │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` └────────┬────────┘`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▼`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ┌─────────────────┐`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │ Sleep 30s │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` └────────┬────────┘`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` └──────→ (repeat)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Claims are processed sequentially to avoid nonce conflicts. One auto-claim instance should run per destination network.`})}),`\n`,_jsx(_components.p,{children:`Errors on one transaction do not affect others. The blockchain enforces claim uniqueness, so the service is safe to restart at any time without risk of double-claiming. Failed claim transactions are reverted onchain and do not result in lost funds.`}),`\n`,_jsx(Heading,{level:`2`,id:`configuration`,children:`Configuration`}),`\n`,_jsx(_components.p,{children:`The auto-claim service is configured through environment variables.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Example`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BRIDGE_HUB_API_URL`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`http://api:3000`})}),_jsx(_components.td,{children:`Bridge Hub API URL`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SOURCE_NETWORKS`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`[1,137]`})}),_jsx(_components.td,{children:`Source network IDs (JSON array)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DESTINATION_NETWORK`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`2442`})}),_jsx(_components.td,{children:`Destination network ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DESTINATION_NETWORK_CHAINID`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`2442`})}),_jsx(_components.td,{children:`Destination chain ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BRIDGE_CONTRACT`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`0x...`})}),_jsx(_components.td,{children:`Bridge contract address`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PRIVATE_KEY`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`0x...`})}),_jsx(_components.td,{children:`Wallet private key for submitting claims`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`RPC_CONFIG`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{\"2442\":\"https://...\"}`})}),_jsx(_components.td,{children:`RPC endpoints (JSON object)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SENTRY_DSN`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`https://...@sentry.io/...`})}),_jsx(_components.td,{children:`Error tracking DSN`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`deployment`,children:`Deployment`}),`\n`,_jsx(_components.p,{children:`Deploy one auto-claim instance for each destination network you want to auto-claim for.`}),`\n`,_jsx(Heading,{level:`3`,id:`docker-compose`,children:`Docker Compose`}),`\n`,_jsxs(_components.p,{children:[`Add the following service to your `,_jsx(_components.code,{children:`docker-compose.yml`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`autoclaim`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` dockerfile`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Dockerfile.autoclaim`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` environment`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` NODE_ENV`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`production`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` BRIDGE_HUB_API_URL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`http://api:3001`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` SOURCE_NETWORKS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"${SOURCE_NETWORKS}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` DESTINATION_NETWORK`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"${DESTINATION_NETWORK}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` DESTINATION_NETWORK_CHAINID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"${DESTINATION_NETWORK_CHAINID}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` BRIDGE_CONTRACT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"${BRIDGE_CONTRACT}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` PRIVATE_KEY`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"${PRIVATE_KEY}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` RPC_CONFIG`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"${RPC_CONFIG}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` SENTRY_DSN`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"${SENTRY_DSN}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` depends_on`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`api`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` restart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`unless-stopped`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` networks`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`bridge-hub`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`direct-execution-with-bun`,children:`Direct execution with Bun`}),`\n`,_jsx(_components.p,{children:`You can also run the service directly:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Auto-claim for destination network 2442`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BRIDGE_HUB_API_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`http://localhost:3001`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`DESTINATION_NETWORK=2442 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`DESTINATION_NETWORK_CHAINID=2442 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`SOURCE_NETWORKS=[0,1,137] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BRIDGE_CONTRACT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`0x...`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`PRIVATE_KEY=0x... `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`RPC_CONFIG=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'{\"2442\":\"https://rpc.example.com\"}'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`bun `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`start`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`To auto-claim for multiple destination networks, run a separate instance for each:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Instance 1: destination 2442`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`DESTINATION_NETWORK`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`2442`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` DESTINATION_NETWORK_CHAINID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`2442`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` start`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Instance 2: destination 1101`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`DESTINATION_NETWORK`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`1101`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` DESTINATION_NETWORK_CHAINID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`1101`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` start`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`security`,children:`Security`}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:`The auto-claim service requires a private key to submit onchain transactions. Follow these guidelines to protect it:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Never log or expose private keys.`}),` Ensure your logging configuration does not capture environment variables.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Load keys from a secret management system`}),` such as AWS Secrets Manager, HashiCorp Vault, or Kubernetes Secrets. Avoid hardcoding keys in configuration files.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Use a dedicated wallet with minimal funding.`}),` The wallet only needs enough native tokens to cover gas on the destination chain.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Monitor for unusual activity.`}),` Set up alerts for unexpected balance changes or transaction patterns on the claiming wallet.`]}),`\n`]})]}),`\n`,_jsx(_components.p,{children:`Claims are atomic: they either succeed or revert entirely. The blockchain enforces uniqueness, so a transaction cannot be claimed twice even if the service processes it again after a restart.`}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Problem`}),_jsx(_components.th,{children:`Solution`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Transactions stuck in `,_jsx(_components.code,{children:`READY_TO_CLAIM`})]}),_jsx(_components.td,{children:`Check that the claiming wallet has sufficient gas on the destination chain.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”API unreachable” errors`}),_jsxs(_components.td,{children:[`Verify `,_jsx(_components.code,{children:`BRIDGE_HUB_API_URL`}),` is correct and accessible from the auto-claim service.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Nonce conflicts`}),_jsx(_components.td,{children:`Ensure only one auto-claim instance runs per destination network.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Claims failing`}),_jsxs(_components.td,{children:[`Check RPC endpoint connectivity. Verify the `,_jsx(_components.code,{children:`BRIDGE_CONTRACT`}),` address is correct for the destination network.`]})]})]})]})]})}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":"Auto-Claim Service","description":"Automated bridge transaction claiming: configuration, deployment, and security.","href":"/interoperability/agglayer/integrations/bridge-hub/auto-claim"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"Configuration","slug":"configuration","depth":2,"children":[]},{"title":"Deployment","slug":"deployment","depth":2,"children":[{"title":"Docker Compose","slug":"docker-compose","depth":3,"children":[]},{"title":"Direct execution with Bun","slug":"direct-execution-with-bun","depth":3,"children":[]}]},{"title":"Security","slug":"security","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","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":"Auto-Claim Service - Polygon Developer Docs","contextualStarterQuestions":[{"_id":"6a206e683dc71338acbae8c6","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"What claim types are supported?","status":"active","generatedBy":"contextual","path":"interoperability/agglayer/integrations/bridge-hub/auto-claim","createdAt":"2026-06-03T18:11:52.781Z","updatedAt":"2026-06-03T18:11:52.781Z","__v":0},{"_id":"6a206e683dc71338acbae8c7","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"How do I configure the service?","status":"active","generatedBy":"contextual","path":"interoperability/agglayer/integrations/bridge-hub/auto-claim","createdAt":"2026-06-03T18:11:52.781Z","updatedAt":"2026-06-03T18:11:52.781Z","__v":0},{"_id":"6a206e683dc71338acbae8c5","deploymentId":"69a9bcc427671ec5a2e05f92","questionText":"How does auto-claim polling work?","status":"active","generatedBy":"contextual","path":"interoperability/agglayer/integrations/bridge-hub/auto-claim","createdAt":"2026-06-03T18:11:52.781Z","updatedAt":"2026-06-03T18:11:52.781Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-03T18:11:11.777Z","originalFileLocation":"interoperability/agglayer/integrations/bridge-hub/auto-claim.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"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=\"Automated bridge transaction claiming: configuration, deployment, and security.\">\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=\"Auto-Claim Service - Polygon Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Automated bridge transaction claiming: configuration, deployment, and security.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Polygon Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/auto-claim\">\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=Bridge+Hub\u0026amp;title=Auto-Claim+Service\u0026amp;description=Automated+bridge+transaction+claiming%3A+configuration%2C+deployment%2C+and+security.\u0026amp;theme=430e64796fff481709b26ceb\u0026amp;signature=dce7219536b88bd89842b777d269f633b5d814b0c7128a18af355988ef71cb01\">\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=\"Auto-Claim Service - Polygon Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Automated bridge transaction claiming: configuration, deployment, and security.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://polygon-labs.mintlify.app/_mintlify/api/og/v2?division=Bridge+Hub\u0026amp;title=Auto-Claim+Service\u0026amp;description=Automated+bridge+transaction+claiming%3A+configuration%2C+deployment%2C+and+security.\u0026amp;theme=430e64796fff481709b26ceb\u0026amp;signature=dce7219536b88bd89842b777d269f633b5d814b0c7128a18af355988ef71cb01\">\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/interoperability/agglayer/integrations/bridge-hub/auto-claim\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/interoperability/agglayer/integrations/bridge-hub/auto-claim.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/interoperability/agglayer/integrations/bridge-hub/auto-claim#webpage\",\"url\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/auto-claim\",\"name\":\"Auto-Claim Service\",\"description\":\"Automated bridge transaction claiming: configuration, deployment, and security.\",\"dateModified\":\"2026-06-03T18:11:11.777Z\",\"isPartOf\":{\"@id\":\"https://docs.polygon.technology#website\"},\"breadcrumb\":{\"@id\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/auto-claim#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/auto-claim#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Interoperability\",\"item\":\"https://docs.polygon.technology/interoperability/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agglayer\",\"item\":\"https://docs.polygon.technology/interoperability/agglayer/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Integrations\",\"item\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/index\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Bridge Hub\",\"item\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/index\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Auto-Claim Service\",\"item\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/auto-claim\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/auto-claim#article\",\"headline\":\"Auto-Claim Service\",\"name\":\"Auto-Claim Service\",\"description\":\"Automated bridge transaction claiming: configuration, deployment, and security.\",\"url\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/auto-claim\",\"mainEntityOfPage\":{\"@id\":\"https://docs.polygon.technology/interoperability/agglayer/integrations/bridge-hub/auto-claim#webpage\"},\"dateModified\":\"2026-06-03T18:11:11.777Z\",\"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","pages":[{"title":"Wallets","href":"/wallets/overview"}]},{"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","groups":[{"group":"Interoperability","expanded":true,"pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/interoperability/overview"},{"group":"Agglayer","expanded":true,"pages":[{"title":"Agglayer: secure cross-chain bridge for heterogeneous blockchains","sidebarTitle":"Overview","href":"/interoperability/agglayer/index"},{"title":"Get Started","href":"/interoperability/agglayer/get-started/index"},{"title":"Supported Chains","href":"/interoperability/agglayer/supported-chains"},{"title":"Observability","href":"/interoperability/agglayer/observability"},{"group":"Core Concepts","expanded":true,"pages":[{"title":"Architecture","href":"/interoperability/agglayer/core-concepts/architecture"},{"title":"What is Agglayer?","href":"/interoperability/agglayer/core-concepts/what-is-agglayer"},{"group":"Aggkit","pages":[{"title":"Architecture","href":"/interoperability/agglayer/core-concepts/aggkit/architecture"},{"group":"Components","pages":[{"title":"AggchainProofGen","href":"/interoperability/agglayer/core-concepts/aggkit/components/aggchain-proof-gen"},{"title":"AggOracle","href":"/interoperability/agglayer/core-concepts/aggkit/components/aggoracle"},{"title":"AggSender","href":"/interoperability/agglayer/core-concepts/aggkit/components/aggsender"},{"title":"AutoClaim","href":"/interoperability/agglayer/core-concepts/aggkit/components/autoclaim"},{"title":"BridgeSync","href":"/interoperability/agglayer/core-concepts/aggkit/components/bridge-sync"},{"title":"Components Overview","href":"/interoperability/agglayer/core-concepts/aggkit/components/index"},{"title":"L1InfoTreeSync","href":"/interoperability/agglayer/core-concepts/aggkit/components/l1infotree-sync"},{"title":"L2GERSync","href":"/interoperability/agglayer/core-concepts/aggkit/components/l2ger-sync"}]}]},{"group":"Pessimistic Proof","pages":[{"title":"Architecture Overview","href":"/interoperability/agglayer/core-concepts/pessimistic-proof/architecture"},{"title":"Benchmarks","href":"/interoperability/agglayer/core-concepts/pessimistic-proof/benchmarks"},{"title":"Data Structures","href":"/interoperability/agglayer/core-concepts/pessimistic-proof/data-structures"},{"title":"Proof Generation","href":"/interoperability/agglayer/core-concepts/pessimistic-proof/proof-generation"}]},{"group":"State Transition Proof","pages":[{"title":"Aggchain Proof","href":"/interoperability/agglayer/core-concepts/state-transition-proof/aggchain-proof"},{"title":"Architecture Overview","href":"/interoperability/agglayer/core-concepts/state-transition-proof/architecture"}]},{"group":"Unified Bridge","pages":[{"title":"Architecture Overview","href":"/interoperability/agglayer/core-concepts/unified-bridge/architecture"},{"title":"Asset Bridging","href":"/interoperability/agglayer/core-concepts/unified-bridge/asset-bridging"},{"title":"Bridge Components","href":"/interoperability/agglayer/core-concepts/unified-bridge/bridge-components"},{"title":"Data Structures","href":"/interoperability/agglayer/core-concepts/unified-bridge/data-structures"},{"title":"Message Bridging","href":"/interoperability/agglayer/core-concepts/unified-bridge/message-bridging"}]}]},{"group":"Integrations","expanded":true,"pages":[{"title":"Integrations","href":"/interoperability/agglayer/integrations/index"},{"group":"Bridge Hub","pages":[{"title":"Bridge Hub","href":"/interoperability/agglayer/integrations/bridge-hub/index"},{"title":"Architecture","href":"/interoperability/agglayer/integrations/bridge-hub/architecture"},{"title":"Deployment","href":"/interoperability/agglayer/integrations/bridge-hub/deployment"},{"title":"API Reference","description":"Bridge Hub REST API: endpoints, parameters, and response formats for querying bridge transactions.","href":"/interoperability/agglayer/integrations/bridge-hub/api-reference"},{"title":"Auto-Claim Service","href":"/interoperability/agglayer/integrations/bridge-hub/auto-claim"}]},{"group":"AggKit Bridge Service","pages":[{"title":"AggKit Bridge Service","description":"REST API for bridge data, transaction status, and proof generation without running AggKit infrastructure.","href":"/interoperability/agglayer/integrations/aggkit-bridge-service/index"},{"title":"API Reference","href":"/interoperability/agglayer/integrations/aggkit-bridge-service/api-reference"}]},{"title":"Exit Certificate Tool","href":"/interoperability/agglayer/integrations/exit-certificate-tool"},{"title":"Paychannels on CDK Besu","sidebarTitle":"Paychannels on CDK Besu","href":"/interoperability/agglayer/integrations/paychannels-cdk-besu"}]}]}]}]},{"tab":"Agentic","pages":[{"title":"Agentic","href":"/payment-services/agentic-payments/agent-integration/intro"}]}]},"title":"Auto-Claim Service - Polygon Developer Docs","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":[],"chunks":[]}