{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/accounts-and-assets/tokenization/token-management","default":true,"active":false,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/accounts-and-assets/tokenization/token-management","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/accounts-and-assets/tokenization/token-management","default":false,"active":true,"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/v1.38/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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"statediagram\" style=\"max-width: 236.875px;\" viewBox=\"0 0 236.875 396\" role=\"graphics-document document\" aria-roledescription=\"stateDiagram\"><style>\n    #diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .error-icon{fill:#552222;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .error-text{fill:#552222;stroke:#552222;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edge-thickness-normal{stroke-width:1px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edge-thickness-thick{stroke-width:3.5px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edge-pattern-solid{stroke-dasharray:0;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edge-pattern-dashed{stroke-dasharray:3;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edge-pattern-dotted{stroke-dasharray:2;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .marker{fill:#333333;stroke:#333333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .marker.cross{stroke:#333333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e p{margin:0;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e defs [id$=\"-barbEnd\"]{fill:#333333;stroke:#333333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e g.stateGroup text{fill:#9370DB;stroke:none;font-size:10px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e g.stateGroup text{fill:#333;stroke:none;font-size:10px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e g.stateGroup .state-title{font-weight:bolder;fill:#131300;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e g.stateGroup rect{fill:#ECECFF;stroke:#9370DB;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e g.stateGroup line{stroke:#333333;stroke-width:1;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .transition{stroke:#333333;stroke-width:1;fill:none;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .stateGroup .composit{fill:white;border-bottom:1px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .state-note{stroke:#aaaa33;fill:#fff5ad;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .state-note text{fill:black;stroke:none;font-size:10px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edgeLabel .label rect{fill:#ECECFF;opacity:0.5;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .edgeLabel .label text{fill:#333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .label div .edgeLabel{color:#333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .stateLabel text{fill:#131300;font-size:10px;font-weight:bold;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .node circle.state-start{fill:#333333;stroke:#333333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .node .fork-join{fill:#333333;stroke:#333333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .node circle.state-end{fill:#9370DB;stroke:white;stroke-width:1.5;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .end-state-inner{fill:white;stroke-width:1.5;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .node rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [id$=\"-barbEnd\"]{fill:#333333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .cluster-label,#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .nodeLabel{color:#131300;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-cluster rect.outer{rx:5px;ry:5px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-state .divider{stroke:#9370DB;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-state .title-state{rx:5px;ry:5px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-cluster.statediagram-cluster .inner{fill:white;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f0f0f0;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-cluster .inner{rx:0;ry:0;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-state rect.basic{rx:5px;ry:5px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f0f0f0;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .note-edge{stroke-dasharray:5;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-note text{fill:black;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram-note .nodeLabel{color:black;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagram .edgeLabel{color:red;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [id$=\"-dependencyStart\"],#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [id$=\"-dependencyEnd\"]{fill:#333333;stroke:#333333;stroke-width:1;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].statediagram-cluster rect.outer{rx:5px;ry:5px;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e .node .neo-node{stroke:#9370DB;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].node rect,#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].cluster rect,#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><defs><marker id=\"diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e_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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e_stateDiagram-barbEnd)\"></path><path d=\"M127.167,160L133.076,166.167C138.986,172.333,150.806,184.667,156.715,197C162.625,209.333,162.625,221.667,162.625,227.833L162.625,234\" id=\"diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-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=\"W3sieCI6MTI3LjE2NjY2NjY2NjY2NjY3LCJ5IjoxNjB9LHsieCI6MTYyLjYyNSwieSI6MTk3fSx7IngiOjE2Mi42MjUsInkiOjIzNH1d\" data-look=\"classic\" marker-end=\"url(#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e_stateDiagram-barbEnd)\"></path><path d=\"M86.084,160L79.326,166.167C72.569,172.333,59.054,184.667,52.297,200.333C45.539,216,45.539,235,45.539,254C45.539,273,45.539,292,54.07,307.667C62.601,323.333,79.662,335.667,88.193,341.833L96.723,348\" id=\"diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-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=\"W3sieCI6ODYuMDgzODgxNTc4OTQ3MzcsInkiOjE2MH0seyJ4Ijo0NS41MzkwNjI1LCJ5IjoxOTd9LHsieCI6NDUuNTM5MDYyNSwieSI6MjU0fSx7IngiOjQ1LjUzOTA2MjUsInkiOjMxMX0seyJ4Ijo5Ni43MjM0MTAwODc3MTkzLCJ5IjozNDh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e_stateDiagram-barbEnd)\"></path><path d=\"M149.209,274L145.073,280.167C140.936,286.333,132.664,298.667,128.527,311C124.391,323.333,124.391,335.667,124.391,341.833L124.391,348\" id=\"diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-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=\"W3sieCI6MTQ5LjIwOTQyOTgyNDU2MTQsInkiOjI3NH0seyJ4IjoxMjQuMzkwNjI1LCJ5IjozMTF9LHsieCI6MTI0LjM5MDYyNSwieSI6MzQ4fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e_stateDiagram-barbEnd)\"></path><path d=\"M151.222,348L159.495,341.833C167.768,335.667,184.314,323.333,188.45,311C192.586,298.667,184.314,286.333,180.177,280.167L176.041,274\" id=\"diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-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=\"W3sieCI6MTUxLjIyMTc2NTM1MDg3NzIsInkiOjM0OH0seyJ4IjoyMDAuODU5Mzc1LCJ5IjozMTF9LHsieCI6MTc2LjA0MDU3MDE3NTQzODYsInkiOjI3NH1d\" data-look=\"classic\" marker-end=\"url(#diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e_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(162.625, 197)\"><g class=\"label\" data-id=\"edge1\" transform=\"translate(-28.8984375, -12)\"><foreignObject width=\"57.796875\" 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(45.5390625, 254)\"><g class=\"label\" data-id=\"edge2\" transform=\"translate(-28.453125, -12)\"><foreignObject width=\"56.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(124.390625, 311)\"><g class=\"label\" data-id=\"edge3\" transform=\"translate(-28.453125, -12)\"><foreignObject width=\"56.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(200.859375, 311)\"><g class=\"label\" data-id=\"edge4\" transform=\"translate(-28.015625, -12)\"><foreignObject width=\"56.03125\" 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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-state-Unclassified-2\" data-look=\"classic\" transform=\"translate(108, 140)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-51.1328125\" y=\"-20\" width=\"102.265625\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-43.1328125, -12)\"><rect></rect><foreignObject width=\"86.265625\" 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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-state-Allowlisted-4\" data-look=\"classic\" transform=\"translate(162.625, 254)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-45.796875\" y=\"-20\" width=\"91.59375\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-37.796875, -12)\"><rect></rect><foreignObject width=\"75.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>Allowlisted</p></span></div></foreignObject></g></g><g class=\"node  statediagram-state\" id=\"diagram-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-state-Denylisted-4\" data-look=\"classic\" transform=\"translate(124.390625, 368)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-45.3515625\" y=\"-20\" width=\"90.703125\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-37.3515625, -12)\"><rect></rect><foreignObject width=\"74.703125\" 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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-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-0a5a512de10dcb63ef2897782e39b63dfebd71df70e5fc165c4f0309ba83414e-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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"statediagram\" style=\"max-width: 236.875px;\" viewBox=\"0 0 236.875 396\" role=\"graphics-document document\" aria-roledescription=\"stateDiagram\"><style>\n    #diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .error-icon{fill:#a44141;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .error-text{fill:#ddd;stroke:#ddd;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edge-thickness-normal{stroke-width:1px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edge-thickness-thick{stroke-width:3.5px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edge-pattern-solid{stroke-dasharray:0;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .marker.cross{stroke:lightgrey;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 p{margin:0;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 defs [id$=\"-barbEnd\"]{fill:lightgrey;stroke:lightgrey;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 g.stateGroup text{fill:#ccc;stroke:none;font-size:10px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 g.stateGroup text{fill:#ccc;stroke:none;font-size:10px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 g.stateGroup .state-title{font-weight:bolder;fill:#e0dfdf;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 g.stateGroup rect{fill:#1f2020;stroke:#ccc;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 g.stateGroup line{stroke:lightgrey;stroke-width:1;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .transition{stroke:lightgrey;stroke-width:1;fill:none;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .stateGroup .composit{fill:#333;border-bottom:1px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .state-note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .state-note text{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-size:10px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .stateLabel .box{stroke:none;stroke-width:0;fill:#1f2020;opacity:0.5;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edgeLabel .label rect{fill:#1f2020;opacity:0.5;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .edgeLabel .label text{fill:#ccc;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .label div .edgeLabel{color:#ccc;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .stateLabel text{fill:#e0dfdf;font-size:10px;font-weight:bold;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .node circle.state-start{fill:#f4f4f4;stroke:#f4f4f4;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .node .fork-join{fill:#f4f4f4;stroke:#f4f4f4;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .node circle.state-end{fill:#cccccc;stroke:#333;stroke-width:1.5;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .end-state-inner{fill:#333;stroke-width:1.5;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .node rect{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .node polygon{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [id$=\"-barbEnd\"]{fill:lightgrey;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-cluster rect{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .cluster-label,#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .nodeLabel{color:#e0dfdf;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-cluster rect.outer{rx:5px;ry:5px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-state .divider{stroke:#ccc;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-state .title-state{rx:5px;ry:5px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-cluster.statediagram-cluster .inner{fill:#333;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#555;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-cluster .inner{rx:0;ry:0;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-state rect.basic{rx:5px;ry:5px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#555;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .note-edge{stroke-dasharray:5;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-note rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:hsl(180, 0%, 18.3529411765%);stroke-width:1px;rx:0;ry:0;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-note rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:hsl(180, 0%, 18.3529411765%);stroke-width:1px;rx:0;ry:0;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-note text{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram-note .nodeLabel{color:rgb(183.8476190475, 181.5523809523, 181.5523809523);}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagram .edgeLabel{color:red;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [id$=\"-dependencyStart\"],#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [id$=\"-dependencyEnd\"]{fill:lightgrey;stroke:lightgrey;stroke-width:1;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].statediagram-cluster rect{fill:#1f2020;stroke:url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-gradient);stroke-width:1;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].statediagram-cluster rect.outer{rx:5px;ry:5px;filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 .node .neo-node{stroke:#ccc;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].node rect,#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].cluster rect,#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].node polygon{stroke:url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].node path{stroke:url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-gradient);stroke-width:1px;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].node circle{stroke:url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><defs><marker id=\"diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6_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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6_stateDiagram-barbEnd)\"></path><path d=\"M127.167,160L133.076,166.167C138.986,172.333,150.806,184.667,156.715,197C162.625,209.333,162.625,221.667,162.625,227.833L162.625,234\" id=\"diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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=\"W3sieCI6MTI3LjE2NjY2NjY2NjY2NjY3LCJ5IjoxNjB9LHsieCI6MTYyLjYyNSwieSI6MTk3fSx7IngiOjE2Mi42MjUsInkiOjIzNH1d\" data-look=\"classic\" marker-end=\"url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6_stateDiagram-barbEnd)\"></path><path d=\"M86.084,160L79.326,166.167C72.569,172.333,59.054,184.667,52.297,200.333C45.539,216,45.539,235,45.539,254C45.539,273,45.539,292,54.07,307.667C62.601,323.333,79.662,335.667,88.193,341.833L96.723,348\" id=\"diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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=\"W3sieCI6ODYuMDgzODgxNTc4OTQ3MzcsInkiOjE2MH0seyJ4Ijo0NS41MzkwNjI1LCJ5IjoxOTd9LHsieCI6NDUuNTM5MDYyNSwieSI6MjU0fSx7IngiOjQ1LjUzOTA2MjUsInkiOjMxMX0seyJ4Ijo5Ni43MjM0MTAwODc3MTkzLCJ5IjozNDh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6_stateDiagram-barbEnd)\"></path><path d=\"M149.209,274L145.073,280.167C140.936,286.333,132.664,298.667,128.527,311C124.391,323.333,124.391,335.667,124.391,341.833L124.391,348\" id=\"diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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=\"W3sieCI6MTQ5LjIwOTQyOTgyNDU2MTQsInkiOjI3NH0seyJ4IjoxMjQuMzkwNjI1LCJ5IjozMTF9LHsieCI6MTI0LjM5MDYyNSwieSI6MzQ4fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6_stateDiagram-barbEnd)\"></path><path d=\"M151.222,348L159.495,341.833C167.768,335.667,184.314,323.333,188.45,311C192.586,298.667,184.314,286.333,180.177,280.167L176.041,274\" id=\"diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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=\"W3sieCI6MTUxLjIyMTc2NTM1MDg3NzIsInkiOjM0OH0seyJ4IjoyMDAuODU5Mzc1LCJ5IjozMTF9LHsieCI6MTc2LjA0MDU3MDE3NTQzODYsInkiOjI3NH1d\" data-look=\"classic\" marker-end=\"url(#diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6_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(162.625, 197)\"><g class=\"label\" data-id=\"edge1\" transform=\"translate(-28.8984375, -12)\"><foreignObject width=\"57.796875\" 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(45.5390625, 254)\"><g class=\"label\" data-id=\"edge2\" transform=\"translate(-28.453125, -12)\"><foreignObject width=\"56.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(124.390625, 311)\"><g class=\"label\" data-id=\"edge3\" transform=\"translate(-28.453125, -12)\"><foreignObject width=\"56.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(200.859375, 311)\"><g class=\"label\" data-id=\"edge4\" transform=\"translate(-28.015625, -12)\"><foreignObject width=\"56.03125\" 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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-state-Unclassified-2\" data-look=\"classic\" transform=\"translate(108, 140)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-51.1328125\" y=\"-20\" width=\"102.265625\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-43.1328125, -12)\"><rect></rect><foreignObject width=\"86.265625\" 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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-state-Allowlisted-4\" data-look=\"classic\" transform=\"translate(162.625, 254)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-45.796875\" y=\"-20\" width=\"91.59375\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-37.796875, -12)\"><rect></rect><foreignObject width=\"75.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>Allowlisted</p></span></div></foreignObject></g></g><g class=\"node  statediagram-state\" id=\"diagram-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-state-Denylisted-4\" data-look=\"classic\" transform=\"translate(124.390625, 368)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-45.3515625\" y=\"-20\" width=\"90.703125\" height=\"40\"></rect><g class=\"label\" style=\"\" transform=\"translate(-37.3515625, -12)\"><rect></rect><foreignObject width=\"74.703125\" 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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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-d73ea281ea6223a9895a8cea23b8836ef742f92d5a685e99dc38e651e44fe2a6-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.ff5a377d.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.ff5a377d.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/v1.38/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/v1.38/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/v1.38/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/v1.38/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/v1.38/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/v1.38/accounts-and-assets/accounts/overview"},"children":["Accounts"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/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-07-27T10:10:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/v1.38/accounts-and-assets/tokenization/token-management","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}