Predicate’s enforcement model is narrow by design. Enforcement on an enrolled asset runs through a single, purpose-specific onchain role that the asset’s administrator grants to Predicate. Administrative control of the contract remains with the issuer throughout, and the authorization can be withdrawn at the issuer’s discretion.This page describes the controls that surround that role: how the signing keys behind it are protected, how the infrastructure that uses them is operated, and what guarantees apply to the delivery and recording of enforcement actions. It is intended as an overview for security and engineering teams conducting an initial review.
A more detailed security review is available under NDA, covering key management architecture, runtime hardening, and our threat model.
Onchain authorization
Predicate does not hold, custody, or require access to an asset’s administrative keys. Enforcement is authorized by a dedicated role granted by the contract administrator: FREEZE_MANAGER_ROLE on EVM-based assets, and the blocker role on Stellar.Under the interfaces we recommend, this role is limited to freeze, unfreeze, block, and unblock operations against individual addresses. It carries no authority to mint or burn supply, transfer balances, upgrade the contract, or modify role assignments. The asset’s own contract therefore defines and enforces the scope of what Predicate can do.
Key management
The signing keys that authorize enforcement transactions are protected by multiple independent factors, such that no single operator, system, or credential can produce a valid signature on its own.Keys are never exposed to human operators and signing is performed exclusively through automated workflows. There is no operational procedure under which an individual handles key material directly.
Infrastructure and operations
The signing service is isolated from application-facing services and sits behind its own set of controls. The architecture is designed so that the compromise of any single component, including an application service, is not sufficient to produce a signed transaction.Production access follows least-privilege principles. Access is scoped to the role that requires it, logged, reviewed on a recurring schedule, and revoked as part of offboarding.All changes to production systems are peer-reviewed and built through CI rather than on developer machines. Production deployments require explicit human approval through a controlled release process; no individual is able to deploy to production unilaterally.
Delivery and availability
Enforcement actions that fail to land are retried automatically. Contracts that persistently fail enforcement are surfaced to Predicate’s operations team and reflected in the customer dashboard, so the issuer has visibility into the condition.Transactions are submitted through multiple RPC providers, allowing enforcement to continue through a single provider’s outage. The signing service itself is designed to withstand infrastructure failure, and its failover behavior is tested.
Audit trail
Every enforcement action is recorded with its originating source, the affected wallet, the resulting transaction hash, and the final outcome. Records are written to an append-only log and retained to support regulatory and law enforcement review. The same records are available to the issuer through the dashboard.
Was this page helpful?
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Predicate","colors":{"primary":"#DAAD89","light":"#DAAD89","dark":"#DAAD89"},"logo":{"light":"https://mintcdn.com/aethos/ENRxKgeDxqeW8Zxv/logo/logo.png?fit=max\u0026auto=format\u0026n=ENRxKgeDxqeW8Zxv\u0026q=85\u0026s=3e5763bbbbac948d96bf11e531b80910","dark":"https://mintcdn.com/aethos/ENRxKgeDxqeW8Zxv/logo/logo.png?fit=max\u0026auto=format\u0026n=ENRxKgeDxqeW8Zxv\u0026q=85\u0026s=3e5763bbbbac948d96bf11e531b80910"},"favicon":"https://mintcdn.com/aethos/ENRxKgeDxqeW8Zxv/favicon.png?fit=max\u0026auto=format\u0026n=ENRxKgeDxqeW8Zxv\u0026q=85\u0026s=ac67c2740231e89ce8ccca69fb350a3e","appearance":{"default":"light"},"background":{"color":{"light":"#FFFFFF","dark":"#101010"}},"footer":{"socials":{"slack":"https://join.slack.com/t/predicatedevelopers/shared_invite/zt-39sot5850-k3GjZcPKDUX09_WYaKTyng","github":"https://github.com/PredicateLabs","x":"https://x.com/0xPredicate"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Social","icon":"x","href":"https://x.com/0xPredicate"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"aethos","hasAudioNarration":false,"actualSubdomain":"aethos","customDomains":["docs.predicate.io"],"gitSource":{"type":"github","owner":"predicatelabs","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"edits":false,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af2479645cf83d223a678b7","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"Compliance For","count":12},{"language":"default","tag":"Applications","count":9},{"language":"default","tag":"API Reference","count":6},{"language":"default","tag":"Identity Solution","count":6},{"language":"default","tag":"Essentials","count":5},{"language":"default","tag":"Assets","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v2/assets/security","slug":"/v2/assets/security","pageMetadata":{"title":"Security","description":"How Predicate secures enforcement infrastructure","href":"/v2/assets/security"},"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: \"How Predicate secures enforcement infrastructure\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,..._provideComponents(),...props.components},{Heading,Note}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Predicate’s enforcement model is narrow by design. Enforcement on an enrolled asset runs through a single, purpose-specific onchain role that the asset’s administrator grants to Predicate. Administrative control of the contract remains with the issuer throughout, and the authorization can be withdrawn at the issuer’s discretion.`}),`\n`,_jsx(_components.p,{children:`This page describes the controls that surround that role: how the signing keys behind it are protected, how the infrastructure that uses them is operated, and what guarantees apply to the delivery and recording of enforcement actions. It is intended as an overview for security and engineering teams conducting an initial review.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`A more detailed security review is available under NDA, covering key management architecture, runtime hardening, and our threat model.`})}),`\n`,_jsx(Heading,{level:`2`,id:`onchain-authorization`,children:`Onchain authorization`}),`\n`,_jsxs(_components.p,{children:[`Predicate does not hold, custody, or require access to an asset’s administrative keys. Enforcement is authorized by a dedicated role granted by the contract administrator: `,_jsx(_components.code,{children:`FREEZE_MANAGER_ROLE`}),` on EVM-based assets, and the `,_jsx(_components.code,{children:`blocker`}),` role on Stellar.`]}),`\n`,_jsx(_components.p,{children:`Under the interfaces we recommend, this role is limited to freeze, unfreeze, block, and unblock operations against individual addresses. It carries no authority to mint or burn supply, transfer balances, upgrade the contract, or modify role assignments. The asset’s own contract therefore defines and enforces the scope of what Predicate can do.`}),`\n`,_jsx(Heading,{level:`2`,id:`key-management`,children:`Key management`}),`\n`,_jsx(_components.p,{children:`The signing keys that authorize enforcement transactions are protected by multiple independent factors, such that no single operator, system, or credential can produce a valid signature on its own.`}),`\n`,_jsx(_components.p,{children:`Keys are never exposed to human operators and signing is performed exclusively through automated workflows. There is no operational procedure under which an individual handles key material directly.`}),`\n`,_jsx(Heading,{level:`2`,id:`infrastructure-and-operations`,children:`Infrastructure and operations`}),`\n`,_jsx(_components.p,{children:`The signing service is isolated from application-facing services and sits behind its own set of controls. The architecture is designed so that the compromise of any single component, including an application service, is not sufficient to produce a signed transaction.`}),`\n`,_jsx(_components.p,{children:`Production access follows least-privilege principles. Access is scoped to the role that requires it, logged, reviewed on a recurring schedule, and revoked as part of offboarding.`}),`\n`,_jsx(_components.p,{children:`All changes to production systems are peer-reviewed and built through CI rather than on developer machines. Production deployments require explicit human approval through a controlled release process; no individual is able to deploy to production unilaterally.`}),`\n`,_jsx(Heading,{level:`2`,id:`delivery-and-availability`,children:`Delivery and availability`}),`\n`,_jsx(_components.p,{children:`Enforcement actions that fail to land are retried automatically. Contracts that persistently fail enforcement are surfaced to Predicate’s operations team and reflected in the customer dashboard, so the issuer has visibility into the condition.`}),`\n`,_jsx(_components.p,{children:`Transactions are submitted through multiple RPC providers, allowing enforcement to continue through a single provider’s outage. The signing service itself is designed to withstand infrastructure failure, and its failover behavior is tested.`}),`\n`,_jsx(Heading,{level:`2`,id:`audit-trail`,children:`Audit trail`}),`\n`,_jsx(_components.p,{children:`Every enforcement action is recorded with its originating source, the affected wallet, the resulting transaction hash, and the final outcome. Records are written to an append-only log and retained to support regulatory and law enforcement review. The same records are available to the issuer through the dashboard.`})]})}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":"Security","description":"How Predicate secures enforcement infrastructure","href":"/v2/assets/security"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Onchain authorization","slug":"onchain-authorization","depth":2,"children":[]},{"title":"Key management","slug":"key-management","depth":2,"children":[]},{"title":"Infrastructure and operations","slug":"infrastructure-and-operations","depth":2,"children":[]},{"title":"Delivery and availability","slug":"delivery-and-availability","depth":2,"children":[]},{"title":"Audit trail","slug":"audit-trail","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"aethos","siteName":"Predicate","title":"Security - Predicate","navMaps":{"firstHrefInVersion":{"2.0.0":{"href":"/v2/assets/security","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T15:35:10.537Z","originalFileLocation":"v2/assets/security.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=\"How Predicate secures enforcement infrastructure\">\u003cmeta data-mint-head name=\"application-name\" content=\"Predicate\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/aethos/7cBvlVL47MFMxmk7/_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/aethos/7cBvlVL47MFMxmk7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/aethos/7cBvlVL47MFMxmk7/_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/aethos/7cBvlVL47MFMxmk7/_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/aethos/7cBvlVL47MFMxmk7/_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/aethos/7cBvlVL47MFMxmk7/_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/aethos/7cBvlVL47MFMxmk7/_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/aethos/7cBvlVL47MFMxmk7/_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/aethos/7cBvlVL47MFMxmk7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Security - Predicate\">\u003cmeta data-mint-head property=\"og:description\" content=\"How Predicate secures enforcement infrastructure\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Predicate\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.predicate.io/v2/assets/security\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://aethos.mintlify.site/_mintlify/api/og/v2?division=Assets\u0026amp;title=Security\u0026amp;description=How+Predicate+secures+enforcement+infrastructure\u0026amp;theme=97c0ae61bd7e8c692b786de8\u0026amp;signature=7fe3e70873cefaa4750034280cf94d0fe806227f3472b631fb7510b8fd5dd125\">\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=\"Security - Predicate\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How Predicate secures enforcement infrastructure\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://aethos.mintlify.site/_mintlify/api/og/v2?division=Assets\u0026amp;title=Security\u0026amp;description=How+Predicate+secures+enforcement+infrastructure\u0026amp;theme=97c0ae61bd7e8c692b786de8\u0026amp;signature=7fe3e70873cefaa4750034280cf94d0fe806227f3472b631fb7510b8fd5dd125\">\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/aethos/7cBvlVL47MFMxmk7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Predicate\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#DAAD89\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.predicate.io/v2/assets/security\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/assets/security.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.predicate.io/#organization\",\"name\":\"Predicate\",\"url\":\"https://docs.predicate.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/aethos/ENRxKgeDxqeW8Zxv/logo/logo.png?fit=max\u0026auto=format\u0026n=ENRxKgeDxqeW8Zxv\u0026q=85\u0026s=3e5763bbbbac948d96bf11e531b80910\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.predicate.io#website\",\"name\":\"Predicate\",\"url\":\"https://docs.predicate.io\",\"publisher\":{\"@id\":\"https://docs.predicate.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.predicate.io/v2/assets/security#webpage\",\"url\":\"https://docs.predicate.io/v2/assets/security\",\"name\":\"Security\",\"description\":\"How Predicate secures enforcement infrastructure\",\"dateModified\":\"2026-10-28T15:35:10.537Z\",\"isPartOf\":{\"@id\":\"https://docs.predicate.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.predicate.io/v2/assets/security#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.predicate.io/v2/assets/security#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Compliance For\",\"item\":\"https://docs.predicate.io/v2/applications/quickstart\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Assets\",\"item\":\"https://docs.predicate.io/v2/assets/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Security\",\"item\":\"https://docs.predicate.io/v2/assets/security\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.predicate.io/v2/assets/security#article\",\"headline\":\"Security\",\"name\":\"Security\",\"description\":\"How Predicate secures enforcement infrastructure\",\"url\":\"https://docs.predicate.io/v2/assets/security\",\"mainEntityOfPage\":{\"@id\":\"https://docs.predicate.io/v2/assets/security#webpage\"},\"dateModified\":\"2026-10-28T15:35:10.537Z\",\"publisher\":{\"@id\":\"https://docs.predicate.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.predicate.io#website\"}}]}\u003c/script>","agentPointerHref":"/v2/assets/security.md","siteName":"Predicate","nav":{"global":{"anchors":[{"anchor":"Social","icon":"x","href":"https://x.com/0xPredicate"}]},"versions":[{"version":"2.0.0","groups":[{"group":"Essentials","pages":[{"title":"Overview","href":"/v2/essentials/overview"},{"title":"Design","href":"/v2/essentials/design"},{"title":"Quickstart","href":"/v2/essentials/quickstart"},{"title":"Audits","href":"/v2/essentials/audits"},{"title":"Docs for Agents","href":"/v2/essentials/ai"}]},{"group":"Compliance For","pages":[{"group":"Applications","icon":"code","pages":[{"title":"Overview","href":"/v2/applications/quickstart"},{"title":"1. Dashboard Setup","href":"/v2/applications/dashboard-setup"},{"title":"2. Offchain Integration","href":"/v2/applications/offchain-integration"},{"title":"3. Onchain Enforcement","href":"/v2/applications/onchain-enforcement"},{"title":"4. Onchain Integration","href":"/v2/applications/onchain-integration"},{"title":"Migrating from V1","href":"/v2/applications/migration"},{"title":"FAQ","href":"/v2/applications/faq"},{"group":"API Reference","pages":[{"title":"Attestation","openapi":"POST /v2/attestation","href":"/api-reference/v2/endpoint/attestation"},{"title":"Common Errors","href":"/v2/applications/common-errors"}]}]},{"group":"Assets","icon":"coins","pages":[{"title":"Overview","href":"/v2/assets/overview"},{"title":"Enroll your Asset","description":"Once enrolled, Predicate freezes non-compliant addresses automatically — a one-time setup for ongoing compliance.","href":"/v2/assets/get-started"},{"title":"Security","href":"/v2/assets/security"}]}]},{"group":"Identity Solution","pages":[{"title":"Overview","description":"Wallet identity verification for compliant applications","href":"/v2/identity/overview"},{"title":"Integration Guide","href":"/v2/identity/integration"},{"group":"API Reference","pages":[{"title":"Register Session","href":"/api-reference/v2/endpoint/identity/register"},{"title":"Get Session Status","href":"/api-reference/v2/endpoint/identity/status"},{"title":"Stream Session Status (SSE)","href":"/api-reference/v2/endpoint/identity/realtime"},{"title":"Verify Wallet","href":"/api-reference/v2/endpoint/identity/verify"}]}]}]}]},"basePath":"","title":"Security - Predicate","buildId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","deploymentId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","dynamics":[],"chunks":[]}