# Create a new XRP Trust Set transaction

Create a new XRP Trust Set transaction

Endpoint: POST /v2/vaults/{vaultId}/wallets/{walletId}/transactions/xrp/trust-set
Version: 2.0
Security: TokenAuth

## Path parameters:

  - `vaultId` (string, required)
    The vault ID

  - `walletId` (string, required)
    The wallet ID

## Request fields (application/json):

  - `limitAmount` (object, required)

  - `limitAmount.value` (string, required)
    The quantity of the asset
    Example: "155.672"

  - `limitAmount.asset` (string, required)
    The asset symbol
    Example: "USD"

  - `limitAmount.issuer` (string)
    The contract/issuing address. Optional if asset is XRP.
    Example: "0xdAC17F958D2ee523a2206206994597C13D831ec7"

  - `qualityIn` (integer)
    Value incoming balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of 0 is shorthand for treating balances at face value.

  - `qualityOut` (integer)
    Value outgoing balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of 0 is shorthand for treating balances at face value.

  - `flags` (array)
    Configuration flags
    Enum: "SETF_AUTH", "SET_NORIPPLE", "UNSET_NORIPPLE", "SET_FREEZE", "UNSET_FREEZE", "SET_DEEP_FREEZE", "UNSET_DEEP_FREEZE"

  - `sequence` (string)
    The blockchain nonce/sequence to use
    Example: "2"

  - `lastLedgerSequence` (string)
    Highest ledger index this transaction can appear in.
    Example: "123456"

  - `sourceTag` (string)
    Source tag to use for this transaction
    Example: "123456"

## Response 200 fields (application/json):

  - `id` (string, required)
    The transaction ID
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `walletId` (string, required)
    The wallet ID
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `vaultId` (string, required)
    The vault ID
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `createdBy` (string, required)
    The ID of the user that created the transaction
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `createdAt` (string, required)
    The date and time the transaction was created
    Example: "2022-03-29T10:22:22.420Z"

  - `updatedAt` (string, required)
    The date and time the transaction was updated
    Example: "2022-03-29T10:22:22.420Z"

  - `attributes` (object)

  - `status` (string, required)
    Enum: "REQUESTED", "POLICY_CHECK_PENDING", "POLICY_CHECK_PASSED", "APPROVAL_CHECK_PENDING", "APPROVAL_CHECK_PASSED", "COMPILATION_PENDING", "COMPILED", "SIGNATURE_PENDING", "SIGNED", "PUBLISH_PENDING", "PUBLISHED", "CONFIRMATION_PENDING", "CONFIRMED", "REJECTED", "FAILED"

  - `action` (string, required)
    Enum: "DEPOSIT", "WITHDRAWAL", "WEB3_RAW", "WEB3_SIGN", "PASSKEY_RAW", "PASSKEY_SIGN", "PALISADE_TRANSFER", "PALISADE_RAW", "PALISADE_MANAGED", "PALISADE_SIGN_PLAINTEXT", "PALISADE_SWEEP"

  - `externalId` (string)
    External ID of this transaction, unique to the organization
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `correlationId` (string)
    The correlation ID of the transaction, used to link related transactions
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `asset` (object, required)

  - `asset.id` (string, required)
    ID is unique across all blockchains and created by combining the blockchain ID, contract address, and symbol
    Example: "5:0xbehbehfb:USDC"

  - `asset.standard` (string, required)
    Enum: "NATIVE", "ERC20", "ISSUED_CURRENCY", "ERC721", "SPL", "CUSTOM"

  - `asset.symbol` (string, required)
    The currency symbol of the asset
    Example: "LINK"

  - `asset.name` (string)
    The human readable name of the asset
    Example: "Chainlink"

  - `asset.blockchain` (string, required)
    Enum: "AVALANCHE", "ETHEREUM", "XRP_LEDGER", "POLYGON", "BNBCHAIN", "BASE", "HEDERA", "ARBITRUM", "ONE_MONEY", "SOLANA", "TRON", "BITCOIN"

  - `asset.decimals` (integer)
    Count of decimal places for the asset
    Example: 18

  - `asset.vetted` (boolean)
    Whether the asset is vetted on the regulated platform
    Example: true

  - `asset.enabled` (boolean)
    Whether the asset is currently enabled on the platform
    Example: true

  - `asset.contract` (string)
    The token contract address. This field will be empty if the asset is the native coin of the blockchain
    Example: "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846e"

  - `asset.createdAt` (string, required)
    The date and time the asset was created
    Example: "2022-03-29T10:22:22.420Z"

  - `asset.updatedAt` (string)
    The date and time the asset was last updated
    Example: "2022-03-29T10:22:22.420Z"

  - `asset.organizationId` (string)
    Organization ID for custom assets

  - `asset.coingeckoId` (string)
    CoinGecko identifier for price data (optional for testnet assets)
    Example: "ethereum"

  - `asset.source` (string)
    Enum: "ASSET_SOURCE_LEGACY", "ASSET_SOURCE_AUTO", "ASSET_SOURCE_COINGECKO", "ASSET_SOURCE_PALISADE", "ASSET_SOURCE_CUSTOMER"

  - `asset.sourceMetadata` (object)

  - `asset.sourceMetadata.@type` (string)

  - `asset.lastSyncedAt` (string)
    When this asset was last synchronized
    Example: "2024-08-08T10:22:22.420Z"

  - `asset.syncVersion` (integer)
    Version counter for sync updates
    Example: 1

  - `asset.contractAddressChecksummed` (string)
    Checksummed version of the contract address
    Example: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"

  - `feeAsset` (object, required)

  - `blockchain` (string, required)
    Enum: "AVALANCHE", "ETHEREUM", "XRP_LEDGER", "POLYGON", "BNBCHAIN", "BASE", "HEDERA", "ARBITRUM", "ONE_MONEY", "SOLANA", "TRON", "BITCOIN"

  - `destinationAddress` (string)
    The destination address
    Example: "0x55502b9d5a68b0F8a48384352295BeD968aD8AA4"

  - `destination` (object)

  - `destination.id` (string)
    Either addressID or walletID, or allowAddressID, or not set when the address does not exist within palisade e.g. a deposit from outside of Palisade
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `destination.counterpartyId` (string)
    The counterparty ID
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `destination.vaultId` (string)
    The vault ID
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `destination.type` (string, required)
    Enum: "COUNTERPARTY", "WALLET", "EXTERNAL", "ALLOW_ADDRESS"

  - `destination.address` (string, required)
    The address
    Example: "0x55502b9d5a68b0F8a48384352295BeD968aD8AA4"

  - `originAddress` (string, required)
    The origin address
    Example: "0x55502b9d5a68b0F8a48384352295BeD968aD8AA4"

  - `origin` (object, required)

  - `qty` (string, required)
    The quantity of the asset to transfer
    Example: "155.672"

  - `feeQtyLimit` (string)
    The maximum network fee to pay for this transaction in base asset units (eg ETH for Ethereum)
    Example: "155.672"

  - `sequence` (string)
    The blockchain nonce/sequence to use
    Example: "2"

  - `encodedTransaction` (string)
    The encoded transaction. Maximum size is 200KB.
    Example: "ed408505d21dba00825208942352d20fc81225c8ecd8f6faa1b37f24fed450c98089736f6d657468696e67808080"

  - `signOnly` (boolean, required)
    Whether to only sign the transaction, or also publish it to the blockchain
    Example: "true"

  - `config` (object)

  - `config.sourceTag` (string)
    The source tag for XRP transactions
    Example: "123456"

  - `config.destinationTag` (string)
    The destination tag for XRP transactions
    Example: "123456"

  - `freezeInfo` (object, required)

  - `freezeInfo.isFrozen` (boolean)
    Whether the transaction is currently frozen

  - `freezeInfo.history` (array)
    History of all freeze/unfreeze actions. Latest entry contains current state details when frozen.

  - `freezeInfo.history.id` (string)
    Unique identifier for this history entry
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `freezeInfo.history.action` (string)
    Enum: "FREEZE_ACTION_FREEZE", "FREEZE_ACTION_UNFREEZE"

  - `freezeInfo.history.reason` (string)
    Reason for the freeze or unfreeze action
    Example: "Transaction frozen due to suspicious activity pattern"

  - `freezeInfo.history.userId` (string)
    User who performed the action (empty for automatic actions)
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `freezeInfo.history.organizationId` (string)
    Organization of the user who performed the action (empty for automatic actions)
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `freezeInfo.history.performedAt` (string)
    Timestamp when the action was performed
    Example: "2022-03-29T10:22:22.420Z"

  - `freezeInfo.history.freezeType` (string)
    Enum: "FREEZE_TYPE_MANUAL", "FREEZE_TYPE_AUTO_RISK", "FREEZE_TYPE_AUTO_AMOUNT", "FREEZE_TYPE_COMPLIANCE", "FREEZE_TYPE_AUTO_WALLET_SETTING"

  - `freezeInfo.history.riskScore` (number)
    Risk score that triggered auto-freeze (0-100)
    Example: 85.5

  - `feeQty` (string)
    The actual network fee for this transaction in base asset units (eg ETH for Ethereum)
    Example: "155.672"

  - `hash` (string)
    The transaction hash
    Example: "0x30674cddb3025f9681839c63d20357f54e914bd7a9ddfe53a6691f4a530a5671"

  - `signature` (string)
    The transaction signature
    Example: "3046022100c60dc1337d69261e7c7e92e4dac78e0c317d444d4690be2b86cc53b1989d1b0602210090c63e3a5cf692c9387292451fada038a0e4d85a2f5c91ee1e7a635df0440b43"

  - `transactionType` (string)
    The transaction type
    Example: "Payment"

  - `reasons` (array)
    The reasons for transaction failure
    Example: ["unfunded"]

  - `canonicalSignature` (string)
    The canonical transaction signature
    Example: "3045022100C60DC1337D69261E7C7E92E4DAC78E0C317D444D4690BE2B86CC53B1989D1B0602206F39C1C5A3096D36C78D6DBAE0525FC619CA048C7FEC0E4DA157FB2EDFF235FE"

  - `signedTransaction` (string)
    The signed transaction (multi-sign is not supported). Maximum size is 200KB.
    Example: "12000024002A8F37201B002A8F5561400000000098968068400000000000000A732103E0C61B861ADE7AC58D27D65ABCEF4C22FA874DD13D809E02A99609A8CA31892C74473045022100C60DC1337D69261E7C7E92E4DAC78E0C317D444D4690BE2B86CC53B1989D1B0602206F39C1C5A3096D36C78D6DBAE0525FC619CA048C7FEC0E4DA157FB2EDFF235FE8114EC8E7F9FF5C9B157D55890956376D15740FAE943831451FE87A95FA6CAC3EBEF33387DE8225F7D0352CB"

  - `proposedAssetChanges` (array)
    Proposed asset changes

  - `proposedAssetChanges.purpose` (string, required)
    Enum: "FEE", "TRANSFER"

  - `proposedAssetChanges.asset` (object, required)

  - `proposedAssetChanges.qty` (string, required)
    The quantity of the asset to transfer
    Example: "155.672"

  - `proposedAssetChanges.source` (object)

  - `proposedAssetChanges.source.address` (string, required)
    The blockchain address of the wallet
    Example: "0xd8da6bf26964af9d7eed9e03e53415d37aa96045"

  - `proposedAssetChanges.source.walletId` (string)
    The wallet ID that is part of this change, populated only if it belongs to the same organization that is party to the transaction
    Example: "ce4918bf-a199-4ce2-85a3-d0d296855384"

  - `proposedAssetChanges.source.subAccountAddress` (string)
    The Rosetta SubAccount address (e.g., SPL token account address for Solana, contract-specific state address for other chains). This represents the actual on-chain address where the asset resides, while 'address' contains the owner wallet address.
    Example: "CaVHtunHxQfGYVKJ4WzUe1217UTCrREh3hg2RW8cS2Gk"

  - `proposedAssetChanges.destination` (object)

  - `confirmedAssetChanges` (array)
    Confirmed asset changes

  - `expiresAt` (string)
    The time after which this transaction will be rejected if not confirmed
    Example: "2026-03-16T16:22:22.420Z"

  - `signingPayloads` (array)
    Multiple signing payloads for UTXO-based transactions, one per input

  - `signingPayloads.inputIndex` (integer, required)
    The index of the UTXO input this signing payload corresponds to

  - `signingPayloads.signingHash` (string, required)
    The signing hash for this UTXO input
    Example: "30674cddb3025f9681839c63d20357f54e914bd7a9ddfe53a6691f4a530a5671"

  - `signingPayloads.signature` (string)
    The signature for this UTXO input
    Example: "3046022100c60dc1337d69261e7c7e92e4dac78e0c317d444d4690be2b86cc53b1989d1b0602210090c63e3a5cf692c9387292451fada038a0e4d85a2f5c91ee1e7a635df0440b43"

## Response 400 fields (application/json):

  - `code` (integer)

  - `message` (string)

  - `details` (array)


