{"templateId":"markdown","versions":[{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/accounts-and-assets/tokenization/token-management","default":true,"active":true,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/accounts-and-assets/tokenization/token-management","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/accounts-and-assets/tokenization/token-management","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/accounts-and-assets/tokenization/token-management","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/accounts-and-assets/tokenization/token-management","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/accounts-and-assets/tokenization/token-management","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Token management","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"token-management","__idx":0},"children":["Token management"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Executive summary"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Token management in ","Ripple Custody"," controls which tokens are visible and usable in the platform."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The Allowlist-Only visibility model ensures operators only see explicitly approved tokens."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Classify tokens as allowlisted, unclassified, or denylisted."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Bulk operations enable efficient token classification at scale."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Intent-based security protects all classification changes."]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"success","name":"Why this matters"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Custody operators face a growing challenge: anyone can send tokens to a blockchain address without permission. This creates security and operational risks that token management directly addresses."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Without token management:"]}," Operators waste time reviewing unsolicited tokens, scam tokens can mislead staff, and cluttered interfaces increase operational errors."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["With token management:"]}," Only approved tokens appear in balances and transactions, new tokens are quarantined until reviewed, and denylisted tokens are permanently hidden."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Prerequisites"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before using token management, you should understand:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/governance/intents"},"children":["Intents"]}," — Token classification changes follow the standard intent workflow."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ripple Custody Auth & Sign mobile app — Required to sign classification intents."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-problem-unsolicited-tokens","__idx":1},"children":["The problem: unsolicited tokens"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Blockchain addresses can receive tokens from anyone without approval. This creates operational challenges:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Spam tokens clutter the interface and waste operator time."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Scam tokens can mislead operators into risky transactions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Auto-discovered tokens from incoming transactions may be unknown or unwanted."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Token management solves these problems by hiding unverified tokens from standard views until an operator explicitly approves them."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"allowlist-only-visibility-model","__idx":2},"children":["Allowlist-Only visibility model"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With Allowlist-Only mode:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Only allowlisted token balances appear in account views."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Transfers involving unclassified or denylisted tokens are filtered at the transfer level."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You can only create transfer orders for allowlisted tokens."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This filtering happens at the individual transfer level, not the transaction level. A transaction containing both allowlisted and non-allowlisted tokens shows only the allowlisted portions."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"token-lifecycle","__idx":3},"children":["Token lifecycle"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tokens follow a defined lifecycle in ","Ripple Custody",":"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"stateDiagram-v2\n    [*] --> Unclassified: Auto-discovered or imported\n    Unclassified --> Allowlisted: Allowlist\n    Unclassified --> Denylisted: Denylist\n    Allowlisted --> Denylisted: Denylist\n    Denylisted --> Allowlisted: Restore\n","diagramHtml":"<svg id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"statediagram\" style=\"max-width: 240.24609375px;\" viewBox=\"0 0 240.24609375 396\" role=\"graphics-document document\" aria-roledescription=\"stateDiagram\"><style>#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .error-icon{fill:#552222;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .error-text{fill:#552222;stroke:#552222;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edge-thickness-normal{stroke-width:1px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edge-thickness-thick{stroke-width:3.5px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edge-pattern-solid{stroke-dasharray:0;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .marker{fill:#333333;stroke:#333333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .marker.cross{stroke:#333333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 p{margin:0;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 defs [id$=\"-barbEnd\"]{fill:#333333;stroke:#333333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 g.stateGroup text{fill:#9370DB;stroke:none;font-size:10px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 g.stateGroup text{fill:#333;stroke:none;font-size:10px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 g.stateGroup .state-title{font-weight:bolder;fill:#131300;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 g.stateGroup rect{fill:#ECECFF;stroke:#9370DB;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 g.stateGroup line{stroke:#333333;stroke-width:1;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .transition{stroke:#333333;stroke-width:1;fill:none;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .stateGroup .composit{fill:white;border-bottom:1px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .state-note{stroke:#aaaa33;fill:#fff5ad;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .state-note text{fill:black;stroke:none;font-size:10px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edgeLabel .label rect{fill:#ECECFF;opacity:0.5;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .edgeLabel .label text{fill:#333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .label div .edgeLabel{color:#333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .stateLabel text{fill:#131300;font-size:10px;font-weight:bold;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .node circle.state-start{fill:#333333;stroke:#333333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .node .fork-join{fill:#333333;stroke:#333333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .node circle.state-end{fill:#9370DB;stroke:white;stroke-width:1.5;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .end-state-inner{fill:white;stroke-width:1.5;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .node rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [id$=\"-barbEnd\"]{fill:#333333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .cluster-label,#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .nodeLabel{color:#131300;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-cluster rect.outer{rx:5px;ry:5px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-state .divider{stroke:#9370DB;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-state .title-state{rx:5px;ry:5px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-cluster.statediagram-cluster .inner{fill:white;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f0f0f0;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-cluster .inner{rx:0;ry:0;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-state rect.basic{rx:5px;ry:5px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f0f0f0;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .note-edge{stroke-dasharray:5;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-note text{fill:black;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram-note .nodeLabel{color:black;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagram .edgeLabel{color:red;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [id$=\"-dependencyStart\"],#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [id$=\"-dependencyEnd\"]{fill:#333333;stroke:#333333;stroke-width:1;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].statediagram-cluster rect.outer{rx:5px;ry:5px;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 .node .neo-node{stroke:#9370DB;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].node rect,#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].cluster rect,#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g><defs><marker id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3_stateDiagram-barbEnd\" refX=\"19\" refY=\"7\" markerWidth=\"20\" markerHeight=\"14\" markerUnits=\"userSpaceOnUse\" orient=\"auto\"><path d=\"M 19,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M108,22L108,30.167C108,38.333,108,54.667,108,71C108,87.333,108,103.667,108,111.833L108,120\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-edge0\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge0\" data-points=\"W3sieCI6MTA4LCJ5IjoyMn0seyJ4IjoxMDgsInkiOjcxfSx7IngiOjEwOCwieSI6MTIwfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3_stateDiagram-barbEnd)\"></path><path d=\"M127.831,160L133.946,166.167C140.061,172.333,152.29,184.667,158.405,197C164.52,209.333,164.52,221.667,164.52,227.833L164.52,234\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-edge1\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge1\" data-points=\"W3sieCI6MTI3LjgzMTQxNDQ3MzY4NDIsInkiOjE2MH0seyJ4IjoxNjQuNTE5NTMxMjUsInkiOjE5N30seyJ4IjoxNjQuNTE5NTMxMjUsInkiOjIzNH1d\" data-look=\"classic\" marker-end=\"url(#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3_stateDiagram-barbEnd)\"></path><path d=\"M85.473,160L78.527,166.167C71.581,172.333,57.689,184.667,50.743,200.333C43.797,216,43.797,235,43.797,254C43.797,273,43.797,292,52.614,307.667C61.431,323.333,79.064,335.667,87.881,341.833L96.698,348\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-edge2\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge2\" data-points=\"W3sieCI6ODUuNDcyNTg3NzE5Mjk4MjUsInkiOjE2MH0seyJ4Ijo0My43OTY4NzUsInkiOjE5N30seyJ4Ijo0My43OTY4NzUsInkiOjI1NH0seyJ4Ijo0My43OTY4NzUsInkiOjMxMX0seyJ4Ijo5Ni42OTc4NDgxMzU5NjQ5LCJ5IjozNDh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3_stateDiagram-barbEnd)\"></path><path d=\"M150.756,274L146.512,280.167C142.268,286.333,133.781,298.667,129.537,311C125.293,323.333,125.293,335.667,125.293,341.833L125.293,348\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-edge3\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge3\" data-points=\"W3sieCI6MTUwLjc1NTgyNTEwOTY0OTEyLCJ5IjoyNzR9LHsieCI6MTI1LjI5Mjk2ODc1LCJ5IjozMTF9LHsieCI6MTI1LjI5Mjk2ODc1LCJ5IjozNDh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3_stateDiagram-barbEnd)\"></path><path d=\"M152.82,348L161.308,341.833C169.796,335.667,186.771,323.333,191.015,311C195.258,298.667,186.771,286.333,182.527,280.167L178.283,274\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-edge4\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge4\" data-points=\"W3sieCI6MTUyLjgyMDM4MTAzMDcwMTc1LCJ5IjozNDh9LHsieCI6MjAzLjc0NjA5Mzc1LCJ5IjozMTF9LHsieCI6MTc4LjI4MzIzNzM5MDM1MDg4LCJ5IjoyNzR9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3_stateDiagram-barbEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\" transform=\"translate(108, 71)\"><g class=\"label\" data-id=\"edge0\" transform=\"translate(-100, -24)\"><foreignObject width=\"200\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\"><span class=\"edgeLabel\"><p>Auto-discovered or imported</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(164.51953125, 197)\"><g class=\"label\" data-id=\"edge1\" transform=\"translate(-30.6953125, -12)\"><foreignObject width=\"61.390625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Allowlist</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(43.796875, 254)\"><g class=\"label\" data-id=\"edge2\" transform=\"translate(-29.953125, -12)\"><foreignObject width=\"59.90625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Denylist</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(125.29296875, 311)\"><g class=\"label\" data-id=\"edge3\" transform=\"translate(-29.953125, -12)\"><foreignObject width=\"59.90625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Denylist</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(203.74609375, 311)\"><g class=\"label\" data-id=\"edge4\" transform=\"translate(-28.5, -12)\"><foreignObject width=\"57\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Restore</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-state-root_start-0\" data-look=\"classic\" transform=\"translate(108, 15)\"><circle class=\"state-start\" r=\"7\" width=\"14\" height=\"14\"></circle></g><g class=\"node  statediagram-state\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-state-Unclassified-2\" data-look=\"classic\" transform=\"translate(108, 140)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-52.796875\" y=\"-20\" width=\"105.59375\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-44.796875, -12)\"><rect></rect><foreignObject width=\"89.59375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Unclassified</p></span></div></foreignObject></g></g><g class=\"node  statediagram-state\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-state-Allowlisted-4\" data-look=\"classic\" transform=\"translate(164.51953125, 254)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-48.0859375\" y=\"-20\" width=\"96.171875\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-40.0859375, -12)\"><rect></rect><foreignObject width=\"80.171875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Allowlisted</p></span></div></foreignObject></g></g><g class=\"node  statediagram-state\" id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-state-Denylisted-4\" data-look=\"classic\" transform=\"translate(125.29296875, 368)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-47.34375\" y=\"-20\" width=\"94.6875\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-39.34375, -12)\"><rect></rect><foreignObject width=\"78.6875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Denylisted</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-d5e5eae976370316236249d30044fe87bf5484de8a0018c6e4876e28d5007dc3-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"statediagram\" style=\"max-width: 240.24609375px;\" viewBox=\"0 0 240.24609375 396\" role=\"graphics-document document\" aria-roledescription=\"stateDiagram\"><style>#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .error-icon{fill:#a44141;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .error-text{fill:#ddd;stroke:#ddd;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edge-thickness-normal{stroke-width:1px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edge-thickness-thick{stroke-width:3.5px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edge-pattern-solid{stroke-dasharray:0;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .marker.cross{stroke:lightgrey;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 p{margin:0;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 defs [id$=\"-barbEnd\"]{fill:lightgrey;stroke:lightgrey;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 g.stateGroup text{fill:#ccc;stroke:none;font-size:10px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 g.stateGroup text{fill:#ccc;stroke:none;font-size:10px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 g.stateGroup .state-title{font-weight:bolder;fill:#e0dfdf;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 g.stateGroup rect{fill:#1f2020;stroke:#ccc;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 g.stateGroup line{stroke:lightgrey;stroke-width:1;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .transition{stroke:lightgrey;stroke-width:1;fill:none;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .stateGroup .composit{fill:#333;border-bottom:1px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .state-note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .state-note text{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-size:10px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .stateLabel .box{stroke:none;stroke-width:0;fill:#1f2020;opacity:0.5;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edgeLabel .label rect{fill:#1f2020;opacity:0.5;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .edgeLabel .label text{fill:#ccc;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .label div .edgeLabel{color:#ccc;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .stateLabel text{fill:#e0dfdf;font-size:10px;font-weight:bold;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .node circle.state-start{fill:#f4f4f4;stroke:#f4f4f4;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .node .fork-join{fill:#f4f4f4;stroke:#f4f4f4;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .node circle.state-end{fill:#cccccc;stroke:#333;stroke-width:1.5;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .end-state-inner{fill:#333;stroke-width:1.5;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .node rect{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .node polygon{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [id$=\"-barbEnd\"]{fill:lightgrey;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-cluster rect{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .cluster-label,#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .nodeLabel{color:#e0dfdf;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-cluster rect.outer{rx:5px;ry:5px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-state .divider{stroke:#ccc;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-state .title-state{rx:5px;ry:5px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-cluster.statediagram-cluster .inner{fill:#333;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#555;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-cluster .inner{rx:0;ry:0;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-state rect.basic{rx:5px;ry:5px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#555;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .note-edge{stroke-dasharray:5;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-note rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:hsl(180, 0%, 18.3529411765%);stroke-width:1px;rx:0;ry:0;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-note rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:hsl(180, 0%, 18.3529411765%);stroke-width:1px;rx:0;ry:0;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-note text{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram-note .nodeLabel{color:rgb(183.8476190475, 181.5523809523, 181.5523809523);}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagram .edgeLabel{color:red;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [id$=\"-dependencyStart\"],#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [id$=\"-dependencyEnd\"]{fill:lightgrey;stroke:lightgrey;stroke-width:1;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].statediagram-cluster rect{fill:#1f2020;stroke:url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-gradient);stroke-width:1;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].statediagram-cluster rect.outer{rx:5px;ry:5px;filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 .node .neo-node{stroke:#ccc;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].node rect,#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].cluster rect,#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].node polygon{stroke:url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].node path{stroke:url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-gradient);stroke-width:1px;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].node circle{stroke:url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g><defs><marker id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9_stateDiagram-barbEnd\" refX=\"19\" refY=\"7\" markerWidth=\"20\" markerHeight=\"14\" markerUnits=\"userSpaceOnUse\" orient=\"auto\"><path d=\"M 19,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M108,22L108,30.167C108,38.333,108,54.667,108,71C108,87.333,108,103.667,108,111.833L108,120\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-edge0\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge0\" data-points=\"W3sieCI6MTA4LCJ5IjoyMn0seyJ4IjoxMDgsInkiOjcxfSx7IngiOjEwOCwieSI6MTIwfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9_stateDiagram-barbEnd)\"></path><path d=\"M127.831,160L133.946,166.167C140.061,172.333,152.29,184.667,158.405,197C164.52,209.333,164.52,221.667,164.52,227.833L164.52,234\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-edge1\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge1\" data-points=\"W3sieCI6MTI3LjgzMTQxNDQ3MzY4NDIsInkiOjE2MH0seyJ4IjoxNjQuNTE5NTMxMjUsInkiOjE5N30seyJ4IjoxNjQuNTE5NTMxMjUsInkiOjIzNH1d\" data-look=\"classic\" marker-end=\"url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9_stateDiagram-barbEnd)\"></path><path d=\"M85.473,160L78.527,166.167C71.581,172.333,57.689,184.667,50.743,200.333C43.797,216,43.797,235,43.797,254C43.797,273,43.797,292,52.614,307.667C61.431,323.333,79.064,335.667,87.881,341.833L96.698,348\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-edge2\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge2\" data-points=\"W3sieCI6ODUuNDcyNTg3NzE5Mjk4MjUsInkiOjE2MH0seyJ4Ijo0My43OTY4NzUsInkiOjE5N30seyJ4Ijo0My43OTY4NzUsInkiOjI1NH0seyJ4Ijo0My43OTY4NzUsInkiOjMxMX0seyJ4Ijo5Ni42OTc4NDgxMzU5NjQ5LCJ5IjozNDh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9_stateDiagram-barbEnd)\"></path><path d=\"M150.756,274L146.512,280.167C142.268,286.333,133.781,298.667,129.537,311C125.293,323.333,125.293,335.667,125.293,341.833L125.293,348\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-edge3\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge3\" data-points=\"W3sieCI6MTUwLjc1NTgyNTEwOTY0OTEyLCJ5IjoyNzR9LHsieCI6MTI1LjI5Mjk2ODc1LCJ5IjozMTF9LHsieCI6MTI1LjI5Mjk2ODc1LCJ5IjozNDh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9_stateDiagram-barbEnd)\"></path><path d=\"M152.82,348L161.308,341.833C169.796,335.667,186.771,323.333,191.015,311C195.258,298.667,186.771,286.333,182.527,280.167L178.283,274\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-edge4\" class=\"edge-thickness-normal edge-pattern-solid transition\" style=\"fill:none;;;fill:none\" data-edge=\"true\" data-et=\"edge\" data-id=\"edge4\" data-points=\"W3sieCI6MTUyLjgyMDM4MTAzMDcwMTc1LCJ5IjozNDh9LHsieCI6MjAzLjc0NjA5Mzc1LCJ5IjozMTF9LHsieCI6MTc4LjI4MzIzNzM5MDM1MDg4LCJ5IjoyNzR9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9_stateDiagram-barbEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\" transform=\"translate(108, 71)\"><g class=\"label\" data-id=\"edge0\" transform=\"translate(-100, -24)\"><foreignObject width=\"200\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\"><span class=\"edgeLabel\"><p>Auto-discovered or imported</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(164.51953125, 197)\"><g class=\"label\" data-id=\"edge1\" transform=\"translate(-30.6953125, -12)\"><foreignObject width=\"61.390625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Allowlist</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(43.796875, 254)\"><g class=\"label\" data-id=\"edge2\" transform=\"translate(-29.953125, -12)\"><foreignObject width=\"59.90625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Denylist</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(125.29296875, 311)\"><g class=\"label\" data-id=\"edge3\" transform=\"translate(-29.953125, -12)\"><foreignObject width=\"59.90625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Denylist</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(203.74609375, 311)\"><g class=\"label\" data-id=\"edge4\" transform=\"translate(-28.5, -12)\"><foreignObject width=\"57\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Restore</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-state-root_start-0\" data-look=\"classic\" transform=\"translate(108, 15)\"><circle class=\"state-start\" r=\"7\" width=\"14\" height=\"14\"></circle></g><g class=\"node  statediagram-state\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-state-Unclassified-2\" data-look=\"classic\" transform=\"translate(108, 140)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-52.796875\" y=\"-20\" width=\"105.59375\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-44.796875, -12)\"><rect></rect><foreignObject width=\"89.59375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Unclassified</p></span></div></foreignObject></g></g><g class=\"node  statediagram-state\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-state-Allowlisted-4\" data-look=\"classic\" transform=\"translate(164.51953125, 254)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-48.0859375\" y=\"-20\" width=\"96.171875\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-40.0859375, -12)\"><rect></rect><foreignObject width=\"80.171875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Allowlisted</p></span></div></foreignObject></g></g><g class=\"node  statediagram-state\" id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-state-Denylisted-4\" data-look=\"classic\" transform=\"translate(125.29296875, 368)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-47.34375\" y=\"-20\" width=\"94.6875\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-39.34375, -12)\"><rect></rect><foreignObject width=\"78.6875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Denylisted</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-9c0ac4d3af5e390223f42914d7d0fa9e47bb111da553ff6410f8c0da6ad9b9b9-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["stateDiagram-v2\n    [*] --> Unclassified: Auto-discovered or imported\n    Unclassified --> Allowlisted: Allowlist\n    Unclassified --> Denylisted: Denylist\n    Allowlisted --> Denylisted: Denylist\n    Denylisted --> Allowlisted: Restore\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"how-tokens-enter-the-system","__idx":4},"children":["How tokens enter the system"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When an incoming transaction contains a new token, ","Ripple Custody"," registers it automatically as unclassified."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Operators can add tokens manually, which land in the allowlisted state."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Token and ticker terminology"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The documentation uses ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["token"]}," for the user-facing asset, currency, or contract asset that operators manage. API payloads and some intent types use ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ticker"]}," for the internal token record, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tickerId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_ValidateTickers"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_LockTicker"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_UnlockTicker"]},". When an intent asks for a ticker, use the token's ticker ID from the token/ticker API response."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"state-transitions","__idx":5},"children":["State transitions"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"From"},"children":["From"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"To"},"children":["To"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Action"},"children":["Action"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"API intent"},"children":["API intent"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Unclassified"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allowlisted"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allowlist"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_ValidateTickers"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Unclassified"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Denylisted"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Denylist"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_ValidateTickers"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lock: Locked"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allowlisted"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Denylisted"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Denylist"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_LockTicker"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Denylisted"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allowlisted"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Restore"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_UnlockTicker"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"token-management-screen","__idx":6},"children":["Token management screen"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The token management screen provides a centralized view for managing all tokens:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/token_homepage_main.bd22653a1d98fc0c03d64df217060cbe6dd18e1c3992cc148fdc970152fedda9.0c9cd68b.png","alt":"Token management homepage showing tabs for allowlisted, unclassified, and denylisted tokens"},"children":[]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Separate tabs for allowlisted, unclassified, and denylisted tokens."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Each tab shows the number of tokens in that state."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Allowlist or denylist multiple tokens at once."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Find tokens by name, symbol, or ledger."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"accessing-token-management","__idx":7},"children":["Accessing token management"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custody Admin > Token Management"]}," to access the token management screen."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"security-model","__idx":8},"children":["Security model"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Token management uses the standard ","Ripple Custody"," intent-based security model:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Every classification change creates an intent that must be signed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Operators sign intents using the Ripple Custody Auth & Sign mobile app."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Before signing, operators can review the full JSON payload including asset IDs, contract addresses, and the specific action."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Organizations can require multiple approvals before changes take effect."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["All classification changes are logged with intent IDs and timestamps."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you submit a token classification change, a \"Check your device\" prompt appears. Use the Ripple Custody Auth & Sign mobile app to review and sign the intent."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"risk-mitigation","__idx":9},"children":["Risk mitigation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Allowlist-Only model helps protect against:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Unsolicited tokens from marketing campaigns are hidden by default."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tokens designed to impersonate legitimate assets are not visible."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tokens with harmful smart contract logic remain hidden until reviewed."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The denylisted tab includes a warning banner identifying tokens as potentially malicious, phishing attempts, or security risks."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/token_denied_assets.2465e8a92e0edabb48f57cc5b2c2b7d59af0c47edd982c08ab12cbf21df56818.0c9cd68b.png","alt":"Denylisted tokens view showing warning banner"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"supported-token-standards","__idx":10},"children":["Supported token standards"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can manage tokens that follow these standards:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["ERC-20 (fungible tokens)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["ERC-721 (NFTs)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["ERC-1155 (multi-token)."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"ERC-20 metadata requirement"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["ERC-20 tokens must implement the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IERC20Metadata"]}," interface — the contract must expose ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name()"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["symbol()"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["decimals()"]},". Contracts that omit any of these methods are not supported and will be silently ignored by the system. For details, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/reference/supported-ledgers#erc-20-metadata-requirement"},"children":["ERC-20 metadata requirement"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Native blockchain currencies (such as ETH or XRP) are always visible and cannot be denylisted."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":11},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/tokenization/token-management/ui"},"children":["Manage tokens in the UI"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/tokenization/token-management/api"},"children":["Manage tokens with the API"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/tokenization/ledger-specific"},"children":["Ledger-specific token operations"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/tokenization/xrpl-mpts"},"children":["XRPL Multi-Purpose Tokens"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/accounts/overview"},"children":["Accounts"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/governance/intents"},"children":["Intents"]}]}]}]},"headings":[{"value":"Token management","id":"token-management","depth":1},{"value":"The problem: unsolicited tokens","id":"the-problem-unsolicited-tokens","depth":2},{"value":"Allowlist-Only visibility model","id":"allowlist-only-visibility-model","depth":2},{"value":"Token lifecycle","id":"token-lifecycle","depth":2},{"value":"How tokens enter the system","id":"how-tokens-enter-the-system","depth":3},{"value":"State transitions","id":"state-transitions","depth":3},{"value":"Token management screen","id":"token-management-screen","depth":2},{"value":"Accessing token management","id":"accessing-token-management","depth":3},{"value":"Security model","id":"security-model","depth":2},{"value":"Risk mitigation","id":"risk-mitigation","depth":2},{"value":"Supported token standards","id":"supported-token-standards","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"Token management"}},"lastModified":"2026-08-04T20:25:11.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/accounts-and-assets/tokenization/token-management","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}