mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-23 13:15:49 +00:00
add permissioned domains docs
This commit is contained in:
@@ -71,6 +71,7 @@
|
||||
[Clawback transaction]: /docs/references/protocol/transactions/types/clawback.md
|
||||
[Clawback transactions]: /docs/references/protocol/transactions/types/clawback.md
|
||||
[Clawbackトランザクション]: /docs/references/protocol/transactions/types/clawback.md
|
||||
[credentials]: /docs/concepts/decentralized-storage/credentials.md
|
||||
[Credentials amendment]: /resources/known-amendments.md#credentials
|
||||
[CredentialCreate transaction]: /docs/references/protocol/transactions/types/credentialcreate.md
|
||||
[CredentialCreate transactions]: /docs/references/protocol/transactions/types/credentialcreate.md
|
||||
@@ -240,6 +241,8 @@
|
||||
[PaymentChannelFundトランザクション]: /docs/references/protocol/transactions/types/paymentchannelfund.md
|
||||
[Payment]: /docs/references/protocol/transactions/types/payment.md
|
||||
[Paymentトランザクション]: /docs/references/protocol/transactions/types/payment.md
|
||||
[PermissionedDomains amendment]: /resources/known-amendments.md#permissioneddomains
|
||||
[permissioned domain]: /docs/concepts/tokens/decentralized-exchange/permissioned-domains.md
|
||||
[PriceOracle amendment]: /resources/known-amendments.md#priceoracle
|
||||
[RFC-1751]: https://tools.ietf.org/html/rfc1751
|
||||
[Reporting Mode]: /docs/concepts/networks-and-servers/rippled-server-modes.md#reporting-mode
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
seo:
|
||||
description: The definition and details of a Permissioned Domain instance.
|
||||
labels:
|
||||
- Compliance
|
||||
- Permissioned Domains
|
||||
---
|
||||
# Permissioned Domains
|
||||
|
||||
Permissioned domains are controlled environments within the broader ecosystem of the XRP Ledger blockchain. Domains do nothing on their own, but features such as Permissioned DEXes and Lending Protocols can use domains to restrict access, so that traditional financial institutions can offer services on chain while complying with various compliance rules.
|
||||
|
||||
The only configurable rule for a domain is the set of accepted [credentials][]. Future amendments may add new and different types of rules to encompass any limits that a financial institution may need to follow to maintain compliance with the laws of the jurisdictions where they do business.
|
||||
|
||||
Anyone can define a permissioned domain in the ledger. That person becomes the owner of that domain, and can update its settings or delete it. The only limit to the number of domains that can exist in the ledger is the reserve requirement: each Domain counts as one item toward its owner's reserve requirement.
|
||||
|
||||
_(Requires the [PermissionedDomains amendment][] {% not-enabled /%})_
|
||||
|
||||
{% admonition type="info" name="Note" %}
|
||||
The [Credentials amendment][] is also required. If the [PermissionedDomains amendment][] is enabled without Credentials, PermissionedDomainSet transactions are considered invalid.
|
||||
{% /admonition %}
|
||||
|
||||
## Accepted Credentials
|
||||
|
||||
A permissioned domain has a set of _accepted credentials_, a list of 1 to 10 credentials that grant access. Each item in the list describes a credential by its issuer and credential type. Any account that holds _at least one_ matching credential automatically gains access to the domain.
|
||||
|
||||
A domain serves as an abstraction layer between credentials and a resource being resricted, because the owner of the domain can update the list of required credentials without changing the restricted resource itself.
|
||||
|
||||
[{% inline-svg file="../../../img/permissioned-domain.svg" /%}](../../../img/permissioned-domain.svg "Diagram: a permissioned DEX points to a permissioned domain by ID. The domain's Accepted Credentials describes 3 possible credentials to get access")
|
||||
|
||||
Users do not need to apply to join or leave a domain. When a transaction requires access to a resource that is restricted by a domain, the transaction automatically checks if the account holds a credential matching that domain's accepted credentials, and fails if they have none. The user's credential must be accepted and not expired.
|
||||
|
||||
## Uses for Domains
|
||||
|
||||
Currently, there are no available XRP Ledger features that use permissioned domains. However, amendments that are in development and use domains include:
|
||||
|
||||
- Single Asset Vault and Lending Protocol
|
||||
- Permissioned DEXes
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
219
docs/img/permissioned-domain.svg
Normal file
219
docs/img/permissioned-domain.svg
Normal file
@@ -0,0 +1,219 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
|
||||
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
|
||||
<svg fill-opacity="1" xmlns:xlink="http://www.w3.org/1999/xlink" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="900" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" viewBox="40 30 900 320" height="320" xmlns="http://www.w3.org/2000/svg" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto"
|
||||
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
|
||||
/><g
|
||||
><defs id="defs1"
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
|
||||
><path d="M0 0 L2147483647 0 L2147483647 2147483647 L0 2147483647 L0 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath2"
|
||||
><path d="M0 0 L0 80 L100 80 L100 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath3"
|
||||
><path d="M0 0 L0 60 L120 60 L120 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath4"
|
||||
><path d="M0 0 L0 40 L100 40 L100 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath5"
|
||||
><path d="M0 0 L0 120 L160 120 L160 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath6"
|
||||
><path d="M0 0 L0 210 L190 210 L190 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath7"
|
||||
><path d="M0 0 L0 30 L200 30 L200 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath8"
|
||||
><path d="M0 0 L0 40 L200 40 L200 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath9"
|
||||
><path d="M0 0 L0 70 L70 70 L70 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath10"
|
||||
><path d="M0 0 L0 30 L70 30 L70 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath11"
|
||||
><path d="M0 0 L0 60 L180 60 L180 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath12"
|
||||
><path d="M0 0 L0 80 L70 80 L70 0 Z"
|
||||
/></clipPath
|
||||
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath13"
|
||||
><path d="M0 0 L0 30 L170 30 L170 0 Z"
|
||||
/></clipPath
|
||||
></defs
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(660,200)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><rect x="0.5" width="98.5" height="78.5" y="0.5" clip-path="url(#clipPath2)" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(660,200)"
|
||||
><rect fill="none" x="0.5" width="98.5" height="78.5" y="0.5" clip-path="url(#clipPath2)"
|
||||
/><text x="13" font-size="14px" y="18.1094" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Credential</text
|
||||
><path fill="none" d="M1 24.1094 L99 24.1094" clip-path="url(#clipPath2)"
|
||||
/><text x="5" font-size="14px" y="39.2188" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Type: 1</text
|
||||
><text x="5" font-size="14px" y="55.3281" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Issuer: E</text
|
||||
><text x="5" font-size="14px" y="71.4375" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Subject: D</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(660,90)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><rect x="0.5" width="98.5" height="78.5" y="0.5" clip-path="url(#clipPath2)" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(660,90)"
|
||||
><rect fill="none" x="0.5" width="98.5" height="78.5" y="0.5" clip-path="url(#clipPath2)"
|
||||
/><text x="13" font-size="14px" y="18.1094" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Credential</text
|
||||
><path fill="none" d="M1 24.1094 L99 24.1094" clip-path="url(#clipPath2)"
|
||||
/><text x="5" font-size="14px" y="39.2188" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Type: 1</text
|
||||
><text x="5" font-size="14px" y="55.3281" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Issuer: A</text
|
||||
><text x="5" font-size="14px" y="71.4375" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Subject: C</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(800,200)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><ellipse rx="59.25" ry="29.25" clip-path="url(#clipPath3)" cx="59.75" cy="29.75" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(800,200)"
|
||||
><ellipse rx="59.25" fill="none" ry="29.25" clip-path="url(#clipPath3)" cx="59.75" cy="29.75"
|
||||
/><text x="23" font-size="14px" y="27" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Account D</text
|
||||
><text x="31" font-size="14px" y="43.1094" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>(Holder)</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(800,120)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><ellipse rx="59.25" ry="29.25" clip-path="url(#clipPath3)" cx="59.75" cy="29.75" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(800,120)"
|
||||
><ellipse rx="59.25" fill="none" ry="29.25" clip-path="url(#clipPath3)" cx="59.75" cy="29.75"
|
||||
/><text x="24" font-size="14px" y="27" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Account C</text
|
||||
><text x="31" font-size="14px" y="43.1094" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>(Holder)</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(800,270)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><ellipse rx="59.25" ry="29.25" clip-path="url(#clipPath3)" cx="59.75" cy="29.75" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(800,270)"
|
||||
><ellipse rx="59.25" fill="none" ry="29.25" clip-path="url(#clipPath3)" cx="59.75" cy="29.75"
|
||||
/><text x="24" font-size="14px" y="27" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Account E</text
|
||||
><text x="33" font-size="14px" y="43.1094" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>(Issuer)</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(800,50)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><ellipse rx="59.25" ry="29.25" clip-path="url(#clipPath3)" cx="59.75" cy="29.75" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(800,50)"
|
||||
><ellipse rx="59.25" fill="none" ry="29.25" clip-path="url(#clipPath3)" cx="59.75" cy="29.75"
|
||||
/><text x="24" font-size="14px" y="27" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Account A</text
|
||||
><text x="33" font-size="14px" y="43.1094" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>(Issuer)</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(390,210)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><rect x="0.5" width="98.5" height="38.5" y="0.5" clip-path="url(#clipPath4)" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(390,210)"
|
||||
><rect fill="none" x="0.5" width="98.5" height="38.5" y="0.5" clip-path="url(#clipPath4)"
|
||||
/><text x="19" font-size="14px" y="17" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Issuer: B</text
|
||||
><text x="23" font-size="14px" y="33.1094" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Type: 2</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(390,170)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><rect x="0.5" width="98.5" height="38.5" y="0.5" clip-path="url(#clipPath4)" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(390,170)"
|
||||
><rect fill="none" x="0.5" width="98.5" height="38.5" y="0.5" clip-path="url(#clipPath4)"
|
||||
/><text x="19" font-size="14px" y="17" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Issuer: B</text
|
||||
><text x="23" font-size="14px" y="33.1094" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Type: 1</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(390,130)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><rect x="0.5" width="98.5" height="38.5" y="0.5" clip-path="url(#clipPath4)" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(390,130)"
|
||||
><rect fill="none" x="0.5" width="98.5" height="38.5" y="0.5" clip-path="url(#clipPath4)"
|
||||
/><text x="19" font-size="14px" y="17" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Issuer: A</text
|
||||
><text x="23" font-size="14px" y="33.1094" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Type: 1</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(60,70)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><rect x="0.5" width="158.5" height="118.5" y="0.5" clip-path="url(#clipPath5)" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(60,70)"
|
||||
><rect fill="none" x="0.5" width="158.5" height="118.5" y="0.5" clip-path="url(#clipPath5)"
|
||||
/><text x="16" font-size="14px" y="22.2812" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Permissioned DEX</text
|
||||
><path fill="none" d="M1 28.2812 L159 28.2812" clip-path="url(#clipPath5)"
|
||||
/><text x="40" font-size="14px" y="43.3906" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Domain ID</text
|
||||
><text x="32" font-size="14px" y="75.6094" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>(Trade offers)</text
|
||||
></g
|
||||
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(320,70)" stroke-opacity="0" stroke="rgb(255,255,255)"
|
||||
><rect x="0.5" width="188.5" height="208.5" y="0.5" clip-path="url(#clipPath6)" stroke="none"
|
||||
/></g
|
||||
><g transform="translate(320,70)"
|
||||
><rect fill="none" x="0.5" width="188.5" height="208.5" y="0.5" clip-path="url(#clipPath6)"
|
||||
/><text x="67" font-size="14px" y="18.9531" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Domain</text
|
||||
><path fill="none" d="M1 24.9531 L189 24.9531" clip-path="url(#clipPath6)"
|
||||
/><text x="17" font-size="14px" y="40.0625" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
|
||||
>Accepted Credentials:</text
|
||||
></g
|
||||
><g fill="blue" stroke-miterlimit="5" stroke-dasharray="8,5" transform="translate(210,140)" stroke-linecap="butt" stroke="blue"
|
||||
><path fill="none" d="M11.5 10.5 L180.5 10.5" clip-path="url(#clipPath7)"
|
||||
/><path fill="white" d="M22.2583 17 L11 10.5 L22.2583 4 Z" clip-path="url(#clipPath7)" stroke="none"
|
||||
/><path fill="none" stroke-miterlimit="10" stroke-dasharray="none" d="M22.2583 17 L11 10.5 L22.2583 4 Z" clip-path="url(#clipPath7)" stroke-linecap="square"
|
||||
/></g
|
||||
><g fill="blue" stroke-miterlimit="5" stroke-dasharray="8,5" transform="translate(480,130)" stroke-linecap="butt" stroke="blue"
|
||||
><path fill="none" d="M11.5 20.5 L180.5 20.5" clip-path="url(#clipPath8)"
|
||||
/><path fill="white" d="M22.2583 27 L11 20.5 L22.2583 14 Z" clip-path="url(#clipPath8)" stroke="none"
|
||||
/><path fill="none" stroke-miterlimit="10" stroke-dasharray="none" d="M22.2583 27 L11 20.5 L22.2583 14 Z" clip-path="url(#clipPath8)" stroke-linecap="square"
|
||||
/></g
|
||||
><g fill="blue" font-size="14px" font-family="sans-serif" transform="translate(480,130)" stroke="blue"
|
||||
><text x="46.5005" xml:space="preserve" y="16" clip-path="url(#clipPath8)" stroke="none"
|
||||
>Grants access</text
|
||||
></g
|
||||
><g transform="translate(750,250)"
|
||||
><path fill="none" d="M10.5 10.5 L50.5 50.5" clip-path="url(#clipPath9)"
|
||||
/></g
|
||||
><g fill="red" stroke-miterlimit="5" stroke-dasharray="1,2" transform="translate(750,220)" stroke-linecap="butt" stroke="red"
|
||||
><path fill="none" d="M10.5 10.5 L50.5 10.5" clip-path="url(#clipPath10)"
|
||||
/></g
|
||||
><g fill="red" stroke-miterlimit="5" stroke-dasharray="1,2" transform="translate(500,210)" stroke-linecap="butt" stroke="red"
|
||||
><path fill="none" d="M11.5 20.5 L160.5 20.5" clip-path="url(#clipPath11)"
|
||||
/><path fill="none" stroke-miterlimit="10" stroke-dasharray="none" d="M17.136 14.136 L29.864 26.864" clip-path="url(#clipPath11)" stroke-linecap="square"
|
||||
/><path fill="none" stroke-miterlimit="10" stroke-dasharray="none" d="M17.136 26.864 L29.864 14.136" clip-path="url(#clipPath11)" stroke-linecap="square"
|
||||
/></g
|
||||
><g fill="red" font-size="14px" font-family="sans-serif" transform="translate(500,210)" stroke="red"
|
||||
><text x="50.6982" xml:space="preserve" y="16" clip-path="url(#clipPath11)" stroke="none"
|
||||
>No access</text
|
||||
><text x="34.7764" xml:space="preserve" y="32.1094" clip-path="url(#clipPath11)" stroke="none"
|
||||
>(Issuer + Type </text
|
||||
><text x="37.5796" xml:space="preserve" y="48.2188" clip-path="url(#clipPath11)" stroke="none"
|
||||
>not accepted)</text
|
||||
></g
|
||||
><g fill="blue" stroke-miterlimit="5" stroke-dasharray="8,5" transform="translate(750,140)" stroke-linecap="butt" stroke="blue"
|
||||
><path fill="none" d="M11.5 10.5 L50.5 10.5" clip-path="url(#clipPath10)"
|
||||
/><path fill="white" d="M22.2583 17 L11 10.5 L22.2583 4 Z" clip-path="url(#clipPath10)" stroke="none"
|
||||
/><path fill="none" stroke-miterlimit="10" stroke-dasharray="none" d="M22.2583 17 L11 10.5 L22.2583 4 Z" clip-path="url(#clipPath10)" stroke-linecap="square"
|
||||
/></g
|
||||
><g transform="translate(750,70)"
|
||||
><path fill="none" d="M10.5 60.5 L50.5 10.5" clip-path="url(#clipPath12)"
|
||||
/></g
|
||||
><g transform="translate(170,100)"
|
||||
><path fill="none" d="M149.5 10.5 L10.5 10.5" clip-path="url(#clipPath13)"
|
||||
/><path fill="none" d="M138.7417 4 L150 10.5 L138.7417 17" clip-path="url(#clipPath13)"
|
||||
/></g
|
||||
></g
|
||||
></svg
|
||||
>
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,48 @@
|
||||
---
|
||||
seo:
|
||||
description: Delete a Permissioned Domain entry from the ledger.
|
||||
labels:
|
||||
- Compliance
|
||||
- Permissioned Domains
|
||||
---
|
||||
# PermissionedDomainDelete
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PermissionedDomainDelete.cpp "Source")
|
||||
|
||||
Delete a [permissioned domain][] that you own.
|
||||
|
||||
_(Requires the [PermissionedDomains amendment][] {% not-enabled /%})_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "PermissionedDomainDelete",
|
||||
"Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
|
||||
"Fee": "10",
|
||||
"Sequence": 392,
|
||||
"DomainID": "77D6234D074E505024D39C04C3F262997B773719AB29ACFA83119E4210328776"
|
||||
}
|
||||
```
|
||||
|
||||
<!-- TODO: {% tx-example txid="TODO" /%} -->
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:-----------|:------------------|:------------------|:----------|:------------|
|
||||
| `DomainID` | String - [Hash][] | Hash256 | Yes | The ledger entry ID of the Permissioned Domain entry to delete. |
|
||||
|
||||
## {% $frontmatter.seo.title %} Flags
|
||||
|
||||
There are no flags defined for {% $frontmatter.seo.title %} transactions.
|
||||
|
||||
## Error Cases
|
||||
|
||||
Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](https://xrpl.org/docs/references/protocol/transactions/transaction-results):
|
||||
|
||||
| Error Code | Description |
|
||||
|:--------------|:---------------------------------------------|
|
||||
| `tecNO_ENTRY` | The permissioned domain specified in the `DomainID` field doesn't exist in the ledger. |
|
||||
| `temDISABLED` | The `PermissionedDomains` amendment is not enabled. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
@@ -0,0 +1,63 @@
|
||||
---
|
||||
seo:
|
||||
description: Create or update a Permissioned Domain.
|
||||
labels:
|
||||
- Compliance
|
||||
- Permissioned Domains
|
||||
---
|
||||
# PermissionedDomainSet
|
||||
[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PermissionedDomainSet.cpp "Source")
|
||||
|
||||
Create a [permissioned domain][], or modify one that you own.
|
||||
|
||||
_(Requires the [PermissionedDomains amendment][] {% not-enabled /%})_
|
||||
|
||||
## Example {% $frontmatter.seo.title %} JSON
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "PermissionedDomainSet",
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Fee": "10",
|
||||
"Sequence": 390,
|
||||
"AcceptedCredentials": [
|
||||
{
|
||||
"Credential": {
|
||||
"Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||
"CredentialType": "6D795F63726564656E7469616C"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
<!-- TODO: {% tx-example txid="TODO" /%} -->
|
||||
|
||||
{% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%}
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:----------------------|:------------------|:------------------|:----------|:------------|
|
||||
| `DomainID` | String - [Hash][] | Hash256 | No | The ledger entry ID of an existing permissioned domain to modify. If omitted, creates a new permissioned domain. |
|
||||
| `AcceptedCredentials` | Array | Array | Yes | A list of 1 to 10 [**Accepted Credentials objects**](#accepted-credentials-objects) that grant access to this domain. The list does not need to be sorted, but it cannot contain duplicates. When modifying an existing domain, this list replaces the existing list. |
|
||||
|
||||
{% raw-partial file="/docs/_snippets/accepted-credentials-objects.md" /%}
|
||||
|
||||
## {% $frontmatter.seo.title %} Flags
|
||||
|
||||
There are no flags defined for {% $frontmatter.seo.title %} transactions.
|
||||
|
||||
## Error Cases
|
||||
|
||||
Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](https://xrpl.org/docs/references/protocol/transactions/transaction-results):
|
||||
|
||||
| Error Code | Description |
|
||||
|:--------------------------|:------------|
|
||||
| `tecDIR_FULL` | The transaction would create a new PermissionedDomain, but the sender's owner directory is full. |
|
||||
| `tecINSUFFICIENT_RESERVE` | The transaction would create a new PermissionedDomain, but the sender does not have enough XRP to meet the increased owner reserve. |
|
||||
| `tecNO_ENTRY` | The transaction attempted to modify a Domain that does not exist. Check the `DomainID` field of the transaction. |
|
||||
| `tecNO_ISSUER` | At least one of the issuers specified in the `AcceptedCredentials` field is does not exist in the XRP Ledger. Check the `Issuer` field of each member of the array. |
|
||||
| `tecNO_PERMISSION` | The transaction attempted to modify an existing Domain, but the sender of the transaction is not the owner of the specified Domain. |
|
||||
| `temDISABLED` | Either the `PermissionedDomains` amendment is not enabled, or the `Credentials` amendment is not enabled. |
|
||||
|
||||
|
||||
{% raw-partial file="/docs/_snippets/common-links.md" /%}
|
||||
Reference in New Issue
Block a user