# Perform a dry-run for given intent payload

Endpoint: POST /v1/intents/dry-run
Security: httpAuth

## Security:

  - `httpAuth` (unknown)
    http bearer

## Request fields (application/json):

  - `author` (object, required)

  - `author.id` (string, required)

  - `author.domainId` (string, required)

  - `expiryAt` (string, required)

  - `targetDomainId` (string, required)

  - `id` (string, required)

  - `payload` (any, required)

  - `payload.reference` (object, required)

  - `payload.reference.id` (string, required)

  - `payload.reference.revision` (integer, required)

  - `payload.ledgerIds` (array)

  - `payload.type` (string, required)
    Enum: "v0_AddAccountLedgers", "v0_AttemptTransactionOrderCancellation", "v0_CreateAccount", "v0_CreateDomain", "v0_CreateEndpoint", "v0_CreateLedger", "v0_CreatePolicy", "v0_CreateTicker", "v0_CreateTransactionOrder", "v0_CreateTransferOrder", "v0_CreateUser", "v0_CreateVault", "v0_ExecuteExtension", "v0_LockAccount", "v0_LockDomain", "v0_LockEndpoint", "v0_LockPolicy", "v0_LockTicker", "v0_LockUser", "v0_LockVault", "v0_MigrateSilo3AccountBatch", "v0_NotarizeData", "v0_ReleaseQuarantinedTransfers", "v0_SetSystemProperty", "v0_SignManifest", "v0_UnlockAccount", "v0_UnlockDomain", "v0_UnlockEndpoint", "v0_UnlockPolicy", "v0_UnlockTicker", "v0_UnlockUser", "v0_UnlockVault", "v0_UpdateAccount", "v0_UpdateDomain", "v0_UpdateDomainPermissions", "v0_UpdateEndpoint", "v0_UpdateLedger", "v0_UpdatePolicy", "v0_UpdateTicker", "v0_UpdateUser", "v0_UpdateVault", "v0_ValidateTickers"

  - `payload.targetTransactionOrderId` (string, required)

  - `payload.replacementTransactionOrderId` (string, required)

  - `payload.reason` (string, required)

  - `payload.maximumFee` (string)
    This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `payload.id` (string, required)

  - `payload.alias` (string, required)

  - `payload.providerDetails` (any, required)

  - `payload.providerDetails.vaultId` (string, required)

  - `payload.providerDetails.keyStrategy` (string, required)
    Enum: "VaultHard", "VaultSoft", "Random"

  - `payload.providerDetails.type` (string, required)
    Enum: "Vault"

  - `payload.ledgerId` (string)

  - `payload.lock` (string, required)
    Enum: "Unlocked", "Locked"

  - `payload.description` (string)

  - `payload.customProperties` (object, required)

  - `payload.governingStrategy` (string)
    Enum: "ConsiderDescendants", "CoerceDescendants"

  - `payload.permissions` (object, required)

  - `payload.permissions.readAccess` (object, required)

  - `payload.permissions.readAccess.domains` (array, required)

  - `payload.permissions.readAccess.users` (array, required)

  - `payload.permissions.readAccess.endpoints` (array, required)

  - `payload.permissions.readAccess.policies` (array, required)

  - `payload.permissions.readAccess.accounts` (array, required)

  - `payload.permissions.readAccess.transactions` (array, required)

  - `payload.permissions.readAccess.requests` (array, required)

  - `payload.permissions.readAccess.events` (array, required)

  - `payload.users` (array, required)

  - `payload.users.id` (string, required)

  - `payload.users.alias` (string, required)

  - `payload.users.publicKey` (string, required)

  - `payload.users.roles` (array, required)

  - `payload.users.description` (string)

  - `payload.users.loginIds` (array)
    Domain-unique `loginId`-`loginProviderId` pairs. Must be specified for login and match pre-configured values.

  - `payload.users.loginIds.id` (string, required)
    User identifier used by the provider.

  - `payload.users.loginIds.providerId` (string, required)
    Login provider. For internal login, set to `harmonize`. For external identity providers, must match the provider name.

  - `payload.policies` (array, required)

  - `payload.policies.id` (string, required)

  - `payload.policies.alias` (string, required)

  - `payload.policies.rank` (integer, required)

  - `payload.policies.intentTypes` (array)

  - `payload.policies.scope` (string, required)
    Enum: "Self", "Descendants", "SelfAndDescendants"

  - `payload.policies.scriptingEngine` (string, required)
    Enum: "Javascript_v0"

  - `payload.policies.condition` (any)
    Example: {"left":{"left":{"expression":"true == true","type":"Expression"},"right":{"expression":"false == true","type":"Expression"},"type":"And"},"right":{"left":{"expression":"true == false","type":"Express…

  - `payload.policies.condition.type` (string, required)
    Enum: "And", "Expression", "Or"

  - `payload.policies.condition.expression` (string, required)

  - `payload.policies.workflow` (array)

  - `payload.policies.workflow.type` (string, required)
    Enum: "And", "Or", "RoleQuorum"

  - `payload.policies.workflow.role` (string, required)

  - `payload.policies.workflow.quorum` (integer, required)

  - `payload.policies.description` (string)

  - `payload.address` (string, required)

  - `payload.trustScore` (integer, required)

  - `payload.parameters` (any)

  - `payload.parameters.ABI` (string)
    This field can be used to provide an Application Binary Interface (ABI) for EVM-based smart contracts, Ripple Custody's front-end uses the field to provide an extended support when interacting with smart contracts, therefore it is not recommended to submit invalid ABIs in this field but Ripple Custody will not prevent the submission of invalid ABIs to tolerate use cases outside of Ripple Custody's front-end.

  - `payload.parameters.type` (string, required)
    Enum: "Ethereum"

  - `payload.rank` (integer, required)

  - `payload.intentTypes` (array)

  - `payload.workflow` (array)

  - `payload.kind` (string, required)
    Enum: "Native", "Contract", "Token"

  - `payload.name` (string, required)

  - `payload.decimals` (integer)

  - `payload.symbol` (string)

  - `payload.ledgerDetails` (any, required)

  - `payload.ledgerDetails.properties` (any, required)

  - `payload.ledgerDetails.properties.type` (string, required)
    Enum: "Native"

  - `payload.ledgerDetails.type` (string, required)
    Enum: "Algorand", "Bitcoin", "Cardano", "Ethereum", "Hedera", "Solana", "Stellar", "Substrate", "Tezos", "Tron", "XRPL"

  - `payload.accountId` (string, required)

  - `payload.tickerId` (string, required)

  - `payload.outputs` (array, required)

  - `payload.outputs.destination` (any, required)

  - `payload.outputs.destination.accountId` (string, required)

  - `payload.outputs.destination.type` (string, required)
    Enum: "Account", "Address", "Endpoint"

  - `payload.outputs.destination.address` (string, required)

  - `payload.outputs.destination.endpointId` (string, required)

  - `payload.outputs.amount` (string, required)
    This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `payload.outputs.paysFee` (boolean)

  - `payload.feeStrategy` (string, required)
    Enum: "High", "Medium", "Low"

  - `payload.publicKey` (string, required)

  - `payload.roles` (array, required)

  - `payload.loginIds` (array)
    Domain-unique `loginId`-`loginProviderId` pairs. Must be specified for login and match pre-configured values.

  - `payload.payload` (any, required)

  - `payload.payload.id` (string, required)

  - `payload.payload.externalAccountId` (string, required)

  - `payload.payload.parameters` (object, required)

  - `payload.payload.description` (string, required)

  - `payload.payload.customProperties` (object, required)

  - `payload.payload.type` (string, required)
    Enum: "Flows_v0_CreateTransactionOrder"

  - `payload.vaultId` (string, required)

  - `payload.wasColdSilo` (boolean, required)

  - `payload.wasTestSilo` (boolean, required)

  - `payload.accounts` (array, required)

  - `payload.accounts.id` (string, required)

  - `payload.accounts.alias` (string, required)

  - `payload.accounts.description` (string)

  - `payload.accounts.ledgerId` (string, required)

  - `payload.accounts.publicId` (string, required)
    Example: D37D-04ACF7C4

  - `payload.data` (string, required)

  - `payload.transferIds` (array, required)

  - `payload.revision` (integer)

  - `payload.value` (any, required)

  - `payload.value.value` (object, required)

  - `payload.value.value.publicKey` (any, required)

  - `payload.value.value.publicKey.value` (string, required)

  - `payload.value.value.publicKey.type` (string, required)
    Enum: "PublicKey"

  - `payload.value.type` (string, required)
    Enum: "StateReviewAuthorityProperty"

  - `payload.content` (any, required)

  - `payload.content.value` (string, required)

  - `payload.content.type` (string, required)
    Enum: "EIP-191", "JWT", "Unsafe"

  - `payload.content.header` (object, required)

  - `payload.content.header.type` (string)

  - `payload.content.header.algorithm` (string)

  - `payload.content.payload` (object, required)

  - `payload.content.payload.issuer` (string)

  - `payload.content.payload.subject` (string)

  - `payload.content.payload.audience` (string)

  - `payload.content.payload.expiration` (integer)

  - `payload.content.payload.notBefore` (integer)

  - `payload.content.payload.issuedAt` (integer)

  - `payload.content.payload.jwtId` (string)

  - `payload.tickers` (array, required)

  - `payload.tickers.id` (string, required)

  - `payload.tickers.ledgerId` (string, required)

  - `payload.tickers.kind` (string, required)
    Enum: "Native", "Contract", "Token"

  - `payload.tickers.name` (string, required)

  - `payload.tickers.decimals` (integer)

  - `payload.tickers.symbol` (string)

  - `payload.tickers.description` (string)

  - `description` (string)

  - `type` (string)
    Enum: "Propose"

## Response 200 fields (application/json):

  - `success` (boolean, required)

  - `errors` (array)

  - `type` (string, required)
    Enum: "v0_AddAccountLedgers", "v0_AttemptTransactionOrderCancellation", "v0_CreateAccount", "v0_CreateDomain", "v0_CreateEndpoint", "v0_CreateLedger", "v0_CreatePolicy", "v0_CreateTicker", "v0_CreateTransactionOrder", "v0_CreateTransferOrder", "v0_CreateUser", "v0_CreateVault", "v0_ExecuteExtension", "v0_LockAccount", "v0_LockDomain", "v0_LockEndpoint", "v0_LockPolicy", "v0_LockTicker", "v0_LockUser", "v0_LockVault", "v0_MigrateSilo3AccountBatch", "v0_NotarizeData", "v0_ReleaseQuarantinedTransfers", "v0_SetSystemProperty", "v0_SignManifest", "v0_UnlockAccount", "v0_UnlockDomain", "v0_UnlockEndpoint", "v0_UnlockPolicy", "v0_UnlockTicker", "v0_UnlockUser", "v0_UnlockVault", "v0_UpdateAccount", "v0_UpdateDomain", "v0_UpdateDomainPermissions", "v0_UpdateEndpoint", "v0_UpdateLedger", "v0_UpdatePolicy", "v0_UpdateTicker", "v0_UpdateUser", "v0_UpdateVault", "v0_ValidateTickers"

  - `cancellation` (any)

  - `cancellation.type` (string, required)
    Enum: "OffLedger", "OnLedger"

  - `cancellation.fee` (string, required)
    This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `result` (object, required)

  - `result.ledgers` (array, required)

  - `result.ledgers.ledgerId` (string, required)

  - `result.ledgers.available` (boolean, required)

  - `estimate` (any, required)

  - `estimate.fee` (string, required)
    This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `estimate.type` (string, required)
    Enum: "Algorand", "Bitcoin", "Cardano", "Ethereum", "Failure", "Hedera", "Solana", "Stellar", "Substrate", "Tezos", "Tron", "XRPL"

  - `estimate.vbytes` (string, required)
    This field is a large integer and represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `estimate.feeEstimationMargin` (string, required)
    This field is a large integer and represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `estimate.gas` (string, required)
    This field is a large integer and represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `estimate.defaultedToBlockGasLimit` (boolean, required)

  - `estimate.nodeErrorMessage` (string)

  - `estimate.hint` (string, required)
    Enum: "AccountAlreadyActivatedOnLedger", "AccountNotReadyOnLedger", "BroadcastExpired", "CurrentlyFeesTooLarge", "CurrentlyFeesTooSmall", "CurrentlyFundsTooFragmented", "CurrentlyNotEnoughFunds", "CurrentlyUnusableDestination", "InternalError", "InvalidAccountStateOnLedger", "InvalidAmount", "InvalidContractParameters", "InvalidDestination", "InvalidUserPayload", "LockedDestination", "OnLedgerFailure", "ReplacementTransactionFeesTooLow", "TransactionEstimationFailure", "TransactionNotEligibleForReplacement", "TransactionRejected", "TransientIssue"

  - `estimate.reason` (string, required)

  - `estimate.tokenFees` (array)

  - `estimate.tokenFees.fee` (string, required)
    This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `estimate.tokenFees.tickerId` (string, required)

  - `estimate.tokenFees.paidByRecipient` (boolean, required)

  - `estimate.minimalFee` (string, required)
    This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

  - `estimate.minimumCostInDrops` (string, required)
    This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.

## Response 400:

  - `400` (unknown)
    Invalid value for: body

## Response 401:

  - `401` (unknown)
    One of: Invalid JWT (InvalidJwtError); User not authorized (PermissionDeniedError)

## Response 401 fields (application/json):

  - `reason` (string, required)

  - `message` (string)

## Response 404:

  - `404` (unknown)
    Entity or Domain not found (EntityNotFoundError)

## Response 404 fields (application/json):

  - `reason` (string, required)

  - `message` (string)

