# 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.backupId` (string, required)

  - `payload.type` (string, required)
    Enum: "v0_AcknowledgeBackup", "v0_AddAccountLedgers", "v0_AddTrustedPublicKeysForMigration", "v0_AttemptTransactionOrderCancellation", "v0_CreateAccount", "v0_CreateBackup", "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_RewrapVaultKeyMaterial", "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.reference` (object, required)

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

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

  - `payload.ledgerIds` (array)

  - `payload.newCollectionSigningPublicKey` (string, required)

  - `payload.newMessageSigningPublicKey` (string, required)

  - `payload.newApiSigningPublicKey` (string, required)

  - `payload.newKeyMaterial` (string, required)

  - `payload.currentCollectionSigningPublicKey` (string, required)

  - `payload.currentCollectionSigningPublicKeySignature` (string, required)

  - `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.parameters` (any, required)

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

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

  - `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.childrenDomainIds` (array)
    List of `domainId` values to reparent under the new domain. Populate this field only for domain injection.

  - `payload.address` (string, required)

  - `payload.trustScore` (integer, required)

  - `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.preferredAddressForChange` (string)
    Hint for specifically bitcoin ledgers to have the transaction happen with addressForChange PrimaryAddress - so change utxo goes to address \0\0 - aligned with dry-runs - rather than the default generate a new chain-internal address.
    Enum: "PrimaryAddress"

  - `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` (object, required)

  - `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)

## Response 200 fields (application/json):

  - `success` (boolean, required)

  - `errors` (array)

  - `type` (string, required)
    Enum: "v0_AcknowledgeBackup", "v0_AddAccountLedgers", "v0_AddTrustedPublicKeysForMigration", "v0_AttemptTransactionOrderCancellation", "v0_CreateAccount", "v0_CreateBackup", "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_RewrapVaultKeyMaterial", "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)

