# 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_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_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. If not specified, a default internal login will be created.

  - `payload.users.loginIds.id` (string, required)
    User name. For internal login, set to the user alias. For external identity providers, must match the external provider user name.

  - `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", "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 include at least a default internal login. External providers must be pre-configured by Ripple.

  - `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.loginIds` (array)
    Domain-unique `loginId`-`loginProviderId` pairs. If not specified, a default internal login will be created.

  - `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_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_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", "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)

