Permissioned DEXes Reference

The Permissioned DEXes amendment does not create any new data types, but it modifies several transactions, ledger entries, and API methods.

  • Transactions:
    • OfferCreate - Add DomainID field that specifies a domain.
    • Payment - Add DomainID field that specifies a domain.
  • Ledger Entries:
    • Offer - Add DomainID field that specifies a domain.
    • DirectoryNode - Add DomainID field and modify ledger entry ID calculation for directories with a domain.
  • API Methods:

OfferCreate transaction changes

OfferCreate transactions can include the following new field:

FieldJSON TypeInternal TypeRequired?Description
DomainIDString - HashHash256NoThe ledger entry ID of a permissioned domain. If provided, restrict this offer to the permissioned DEX of that domain. (Requires the PermissionedDEX amendment )

They can also use the following new flag:

Flag NameHex ValueDecimal ValueDescription
tfHybrid0x001000001048576Make this a hybrid offer that can use both a permissioned DEX and the open DEX. The DomainID field must be provided when using this flag.

Full reference documentation with these changes in context (draft): OfferCreate

Payment transaction changes

Payment transactions can include the following new field:

FieldJSON TypeInternal TypeRequired?Description
DomainIDString - HashHash256NoThe ledger entry ID of a permissioned domain. If this is a cross-currency payment, only use the corresponding permissioned DEX to convert currency. Both the sender and the recipient must have valid credentials that grant access to the specified domain. This field has no effect if the payment is not cross-currency. (Requires the PermissionedDEX amendment )

Full reference documentation with these changes in context (draft): Payment

Offer entry changes

Offer ledger entries can include the following new fields:

NameJSON TypeInternal TypeRequired?Description
AdditionalBooksArrayArrayNoA list of additional offer directories that link to this offer. This field is present if this is a hybrid offer in a permissioned DEX. The array always contains exactly 1 entry. (Requires the PermissionedDEX amendment )
DomainIDString - HashHash256NoThe ledger entry ID of a permissioned domain. If present, this offer belongs to the corresponding Permissioned DEX. (Requires the PermissionedDEX amendment )

Full reference documentation with these changes in context (draft): Offer

DirectoryNode entry changes

DirectoryNode ledger entries, specifically offer directories, can contain the following new field:

FieldJSON TypeInternal TypeRequired?Description
DomainIDString - HashHash256No(Offer directories only) The ledger entry ID of a permissioned domain. If present, this order book belongs to the corresponding Permissioned DEX. (Requires the PermissionedDEX amendment )

Additionally, the formula for the ledger entry ID of an offer directory's first page incorporates the DomainID field at the end of the hashed contents, if the directory is part of a permissioned DEX. The formula for open DEX offer directories' IDs is unchanged.

Full reference documentation with these changes in context (draft): DirectoryNode

book_offers API method changes

You can specify the following new field in book_offers API method requests:

FieldTypeRequired?Description
domainHashNoThe ledger entry ID of a permissioned domain. If provided, return offers from the corresponding permissioned DEX instead of using the open DEX. (Requires the PermissionedDEX amendment )

Full reference documentation with these changes in context (draft): book_offers method

path_find API method changes

You can specify the following new field in path_find API method requests when using the create sub-command:

FieldTypeRequired?Description
domainString - HashNoThe ledger entry ID of a permissioned domain. If provided, only return paths that use the corresponding permissioned DEX. (Requires the PermissionedDEX amendment )

Full reference documentation with these changes in context (draft): path_find method

ripple_path_find API method changes

You can specify the following new field in ripple_path_find API method requests:

FieldTypeRequired?Description
domainString - HashNoThe ledger entry ID of a permissioned domain. If provided, only return paths that use the corresponding permissioned DEX. (Requires the PermissionedDEX amendment )

Full reference documentation with these changes in context (draft): ripple_path_find method

subscribe API method changes

In the subscribe API method, when you subscribe to order books using the books field of the request, you can use the following new field in the objects nested inside books:

FieldTypeRequired?Description
domainString - HashNoThe ledger entry ID of a permissioned domain. If provided, subscribe to the order book for the corresponding Permissioned DEX instead of the open DEX. (Requires the PermissionedDEX amendment )

Full reference documentation with these changes in context (draft): subscribe method

Amendment Information

AmendmentPermissionedDEX
Amendment ID677E401A423E3708363A36BA8B3A7D019D21AC5ABD00387BDBEA6BDE4C91247E
StatusIn Development
Default Vote (Latest stable release)No
Pre-amendment functionality retired?No