openapi: 3.1.0
info:
  version: 1.968.0
  title: Dfns
servers:
  - url: https://api.dfns.io
    description: Default - Europe
  - url: https://api.uae.dfns.io
    description: UAE
  - url: https://api.dfns.ninja
    description: <Deprecated> Staging
components:
  securitySchemes:
    authenticationToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        **Bearer Token:** Used to authenticate API requests.

        More details how to generate the token: [Authentication
        flows](https://docs.dfns.co/api-reference/auth/login-flows)
    userActionSignature:
      type: apiKey
      in: header
      name: X-DFNS-USERACTION
      description: >-
        **User Action Signature:** Used to sign the change-inducing API
        requests.

        More details how to generate the token: [User Action Signing
        flows](https://docs.dfns.co/api-reference/auth/signing-flows)
  schemas:
    WebhookEnvelopeBase:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^whe-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Unique identifier for this webhook event.
          example: whe-544ul-uqgad-jkgltj5p6fvd04cj
        date:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). Timestamp when the event occurred.
          example: 2023-04-14T20:41:28.715Z
        retryOf:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^whe-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: ID of the original event if this is a retry.
          example: whe-544ul-uqgad-jkgltj5p6fvd04cj
        timestampSent:
          type: integer
          description: Unix timestamp when the event was sent
          example: 1719566994
        deliveryAttempt:
          type: integer
          minimum: 1
          description: Delivery attempt number
          example: 1
      required:
        - id
        - date
        - timestampSent
        - deliveryAttempt
    Network:
      type: string
      description: Network the address is watched on.
      title: Network
      enum: &ref_54
        - Algorand
        - AlgorandTestnet
        - Aptos
        - AptosTestnet
        - ArbitrumOne
        - ArbitrumSepolia
        - ArcTestnet
        - AvalancheC
        - AvalancheCFuji
        - BabylonGenesis
        - BabylonTestnet5
        - Base
        - BaseSepolia
        - Berachain
        - BerachainBepolia
        - Bitcoin
        - BitcoinSignet
        - BitcoinTestnet4
        - BitcoinCash
        - Bob
        - BobSepolia
        - Bsc
        - BscTestnet
        - Canton
        - CantonTestnet
        - Cardano
        - CardanoPreprod
        - Concordium
        - ConcordiumTestnet
        - Celo
        - CeloAlfajores
        - Codex
        - CodexSepolia
        - CosmosHub4
        - CosmosIcsTestnet
        - Dogecoin
        - DogecoinTestnet
        - Ethereum
        - EthereumClassic
        - EthereumClassicMordor
        - EthereumSepolia
        - EthereumHoodi
        - FlareC
        - FlareCCoston2
        - FlowEvm
        - FlowEvmTestnet
        - Hedera
        - HederaTestnet
        - Ink
        - InkSepolia
        - InternetComputer
        - Ion
        - IonTestnet
        - Iota
        - IotaTestnet
        - Kusama
        - KusamaAssetHub
        - Litecoin
        - LitecoinTestnet
        - Movement
        - MovementTestnet
        - Near
        - NearTestnet
        - Optimism
        - OptimismSepolia
        - Origyn
        - Plasma
        - PlasmaTestnet
        - Plume
        - PlumeSepolia
        - Paseo
        - PaseoAssetHub
        - Polkadot
        - PolkadotAssetHub
        - Polygon
        - PolygonAmoy
        - Polymesh
        - PolymeshTestnet
        - Race
        - RaceSepolia
        - Rayls
        - RaylsTestnet
        - Robinhood
        - RobinhoodSepolia
        - SeiAtlantic2
        - SeiPacific1
        - Solana
        - SolanaDevnet
        - Sonic
        - SonicTestnet
        - Starknet
        - StarknetSepolia
        - Stellar
        - StellarTestnet
        - Sui
        - SuiTestnet
        - Tezos
        - TezosGhostnet
        - TezosShadownet
        - Tempo
        - TempoModerato
        - Tsc
        - TscTestnet1
        - Ton
        - TonTestnet
        - Tron
        - TronNile
        - Westend
        - WestendAssetHub
        - Xdc
        - XdcApothem
        - XLayer
        - XLayerSepolia
        - XrpLedger
        - XrpLedgerTestnet
    AddressWatch:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^aw-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: ID of the address watch.
          example: aw-0pbh4-7sdh4-2occ0e4r1g7obe8c
        network:
          $ref: '#/components/schemas/Network'
        address:
          type: string
          description: The watched on chain address.
        name:
          type: string
          maxLength: 100
          pattern: ^[a-z0-9-]+$
          description: Address watch nickname. Lowercase letters, digits and dashes.
        externalId:
          type: string
          maxLength: 100
          description: >-
            User-defined value that can be used to correlate the entity with an
            external system.
        tags:
          type: array
          items:
            type: string
            pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
            description: Wallet Tag.
          maxItems: 10
          description: List of tags.
        status:
          type: string
          enum:
            - Active
            - Archived
          description: Address watch status.
        dateCreated:
          type: string
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string when
            the address watch was created.
          example: 2026-07-03T20:41:28.715Z
        dateDeleted:
          type: string
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string when
            the address watch was archived.
          example: 2026-07-03T20:41:28.715Z
      required:
        - id
        - network
        - address
        - tags
        - status
        - dateCreated
      additionalProperties: false
      example:
        id: aw-3f9b2-8k4m1-xxxxxxxxxxxxxxxx
        network: Ethereum
        address: '0x00e3495cf6af59008f22ffaf32d4c92ac33dac47'
        name: exchange-hot-wallet
        tags: []
        status: Active
        dateCreated: 2026-07-03T20:41:28.715Z
    AddressWatchBlockchainEvent:
      type: object
      properties:
        id:
          type: string
          description: Deterministic event id, safe to deduplicate on.
        addressWatchId:
          type: string
        network:
          $ref: '#/components/schemas/Network'
        name:
          type: string
          description: Decoded event name.
        blockNumber:
          type: number
        txHash:
          type: string
        index:
          type: string
          description: Block scoped log index of the event, as a decimal string.
        timestamp:
          type: string
        status:
          type: string
          enum:
            - Included
            - Confirmed
          description: >-
            Webhooks are emitted only once Confirmed; the list can contain
            Included events on networks with unfinalized indexing.
        data:
          type: object
          additionalProperties: {}
          description: Decoded event fields, the emitting contract included.
      required:
        - id
        - addressWatchId
        - network
        - name
        - blockNumber
        - txHash
        - index
        - timestamp
        - status
        - data
      example:
        id: ce-2c5o1-eaqqp-xxxxxxxxxxxxxxxx
        addressWatchId: aw-1f04s-lqc9q-xxxxxxxxxxxxxxxx
        network: Ethereum
        name: OrderSettled
        blockNumber: 19036906
        txHash: '0x8e88793607610a83798eb5ec6dde861f3e459c7e4a22e78b0d2e675b86d0d1e7'
        index: '134'
        timestamp: 2026-01-18T23:03:59.000Z
        status: Confirmed
        data:
          contract: '0x11a4a5aa04d840f0c692ba297dd60c2871ad0b56'
          orderId: '0x0102030405060708090a0b0c0d0e0f10'
          amount: '1000'
          currency: EUR
    AddressWatchHistoryEvent:
      oneOf:
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_0
                          type: number
                        USD: *ref_0
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_1
                          type: number
                        USD: *ref_1
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - NativeTransfer
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
            liquidityPool:
              type: string
            balanceId:
              type: string
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            decimals:
              type: number
              description: '@deprecated use metadata.asset.decimals instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - value
            - symbol
            - decimals
            - addressWatchId
          title: Native Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_2
                          type: number
                        USD: *ref_2
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_3
                          type: number
                        USD: *ref_3
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Aip21Transfer
            metadataAddress:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - metadataAddress
            - from
            - to
            - value
            - addressWatchId
          title: Aptos Fungible Asset (AIP-21) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_4
                          type: number
                        USD: *ref_4
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_5
                          type: number
                        USD: *ref_5
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - AsaTransfer
            assetId:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            optIn:
              type: boolean
            optOut:
              type: boolean
            clawback:
              type: boolean
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - assetId
            - from
            - to
            - value
            - addressWatchId
          title: Algorand Standard Asset Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_6
                          type: number
                        USD: *ref_6
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_7
                          type: number
                        USD: *ref_7
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - AssetTransfer
            assetId:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - assetId
            - value
            - addressWatchId
          title: Cardano Asset Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_8
                          type: number
                        USD: *ref_8
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_9
                          type: number
                        USD: *ref_9
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Cip56Transfer
            instrumentId:
              type: string
            instrumentAdmin:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - instrumentId
            - instrumentAdmin
            - from
            - to
            - value
            - addressWatchId
          title: Canton Standard Token (CIP-56) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_10
                          type: number
                        USD: *ref_10
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_11
                          type: number
                        USD: *ref_11
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - CoinTransfer
            coin:
              type: string
            from:
              type: string
            tos:
              type: array
              items:
                type: string
            value:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - coin
            - from
            - value
            - addressWatchId
          title: Sui Coin Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_12
                          type: number
                        USD: *ref_12
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_13
                          type: number
                        USD: *ref_13
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Cis2Transfer
            from:
              type: string
            to:
              type: string
            value:
              type: string
            tokenAddress:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - value
            - tokenAddress
            - addressWatchId
          title: Concordium CIS2 Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_14
                          type: number
                        USD: *ref_14
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_15
                          type: number
                        USD: *ref_15
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Cis7Transfer
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            tokenId:
              type: string
            memo:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - value
            - tokenId
            - addressWatchId
          title: Concordium CIS7 Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_16
                          type: number
                        USD: *ref_16
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_17
                          type: number
                        USD: *ref_17
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Erc20Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            decimals:
              type: number
              description: '@deprecated use metadata.asset.decimals instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
            - decimals
            - addressWatchId
          title: EVM Fungible Token (ERC-20) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_18
                          type: number
                        USD: *ref_18
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_19
                          type: number
                        USD: *ref_19
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Erc721Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            tokenId:
              type: string
            fee:
              type: string
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - tokenId
            - addressWatchId
          title: EVM Non Fungible Token (ERC-721) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_20
                          type: number
                        USD: *ref_20
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_21
                          type: number
                        USD: *ref_21
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Erc7984Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            decimals:
              type: number
              description: '@deprecated use metadata.asset.decimals instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
            - decimals
            - addressWatchId
          title: EVM Confidential Token (ERC-7984) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_22
                          type: number
                        USD: *ref_22
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_23
                          type: number
                        USD: *ref_23
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - HederaErc20Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            transactionId:
              type: string
            evmTxHash:
              type: string
              description: >-
                EVM keccak256 hash of the HIP-410 inner tx. Absent on
                legacy-migrated rows.
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            decimals:
              type: number
              description: '@deprecated use metadata.asset.decimals instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
            - decimals
            - addressWatchId
          title: Hedera EVM Fungible Token (ERC-20) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_24
                          type: number
                        USD: *ref_24
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_25
                          type: number
                        USD: *ref_25
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - HederaErc721Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            tokenId:
              type: string
            fee:
              type: string
            transactionId:
              type: string
            evmTxHash:
              type: string
              description: >-
                EVM keccak256 hash of the HIP-410 inner tx. Absent on
                legacy-migrated rows.
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - tokenId
            - addressWatchId
          title: Hedera EVM Non Fungible Token (ERC-721) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_26
                          type: number
                        USD: *ref_26
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_27
                          type: number
                        USD: *ref_27
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Hip17Transfer
            tokenId:
              type: string
            serialNumber:
              type: string
            from:
              type: string
            to:
              type: string
            fee:
              type: string
            transactionId:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - tokenId
            - serialNumber
            - addressWatchId
          title: HIP17 Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_28
                          type: number
                        USD: *ref_28
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_29
                          type: number
                        USD: *ref_29
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - HtsTransfer
            tokenId:
              type: string
            froms:
              type: array
              items:
                type: string
            tos:
              type: array
              items:
                type: string
            value:
              type: string
            fee:
              type: string
            transactionId:
              type: string
            evmTxHash:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - froms
            - tos
            - value
            - addressWatchId
          title: HTS Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_30
                          type: number
                        USD: *ref_30
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_31
                          type: number
                        USD: *ref_31
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - IouTransfer
            currency:
              type: string
            issuer:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - currency
            - issuer
            - value
            - addressWatchId
          title: XRPL IOU Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_32
                          type: number
                        USD: *ref_32
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_33
                          type: number
                        USD: *ref_33
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - LockedCoinTransfer
            coin:
              type: string
            from:
              type: string
            tos:
              type: array
              items:
                type: string
            value:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - coin
            - from
            - value
            - addressWatchId
          title: Locked Coin Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_34
                          type: number
                        USD: *ref_34
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_35
                          type: number
                        USD: *ref_35
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Xls33Transfer
            issuanceId:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - issuanceId
            - value
            - addressWatchId
          title: XRPL XLS-33 Token Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_36
                          type: number
                        USD: *ref_36
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_37
                          type: number
                        USD: *ref_37
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Sep41Transfer
            issuer:
              type: string
            assetCode:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
            liquidityPool:
              type: string
            balanceId:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - issuer
            - assetCode
            - from
            - to
            - value
            - addressWatchId
          title: Stellar Classic Assets (SEP-41) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_38
                          type: number
                        USD: *ref_38
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_39
                          type: number
                        USD: *ref_39
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Snip2Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
            - addressWatchId
          title: Snip2 Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_40
                          type: number
                        USD: *ref_40
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_41
                          type: number
                        USD: *ref_41
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Snip3Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            tokenId:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - tokenId
            - addressWatchId
          title: Snip3 Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_42
                          type: number
                        USD: *ref_42
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_43
                          type: number
                        USD: *ref_43
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum: &ref_100
                - SplTransfer
                - Spl2022Transfer
            from:
              type: string
            to:
              type: string
            mint:
              type: string
            value:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - mint
            - value
            - addressWatchId
          title: Solana Program Library Token (SPL and SPL 2022) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_44
                          type: number
                        USD: *ref_44
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_45
                          type: number
                        USD: *ref_45
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Tep74Transfer
            master:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - master
            - from
            - value
            - addressWatchId
          title: TON Jetton (TEP-74) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_46
                          type: number
                        USD: *ref_46
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_47
                          type: number
                        USD: *ref_47
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Trc10Transfer
            tokenId:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - tokenId
            - from
            - to
            - value
            - addressWatchId
          title: TRON Native Fungible Token (TRC-10) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_48
                          type: number
                        USD: *ref_48
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_49
                          type: number
                        USD: *ref_49
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Trc20Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
            - addressWatchId
          title: TRON Smart Contract Fungible Token (TRC-20) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_50
                          type: number
                        USD: *ref_50
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_51
                          type: number
                        USD: *ref_51
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Trc721Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            tokenId:
              type: string
            fee:
              type: string
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - tokenId
            - addressWatchId
          title: TRON Non Fungible Token (TRC-721) Transfer
        - type: object
          properties:
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_52
                          type: number
                        USD: *ref_52
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_53
                          type: number
                        USD: *ref_53
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - UtxoTransfer
            assetId:
              type: string
              description: Only set for Cardano asset transfers.
            froms:
              type: array
              items:
                type: string
            tos:
              type: array
              items:
                type: string
            value:
              type: string
            fee:
              type: string
            outputs:
              type: array
              items:
                type: object
                properties:
                  index:
                    type: number
                  address:
                    type: string
                  value:
                    type: string
                required:
                  - index
                  - address
                  - value
              description: >-
                Outbound transfers only: per-recipient outputs of the
                transaction, change excluded.
            addressWatchId:
              type: string
          required:
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - froms
            - tos
            - value
            - addressWatchId
          title: UTXO Transfer
      example:
        kind: Erc20Transfer
        addressWatchId: aw-3f9b2-8k4m1-xxxxxxxxxxxxxxxx
        network: Ethereum
        direction: In
        blockNumber: 19036906
        timestamp: 2026-07-03T23:03:59.000Z
        status: Confirmed
        txHash: '0x8e88793607610a83798eb5ec6dde861f3e459c7e4a22e78b0d2e675b86d0d1e7'
        index: '134'
        contract: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
        from: '0xea09cf8a006493566f8a8fd3d0b32ebff5939d6a'
        to: '0xc42754e6f79f15082613b2b4ebead83dcf8116b6'
        value: '1000000'
        decimals: 6
        fee: '1542993669053672'
        metadata:
          asset:
            symbol: USDC
            decimals: 6
            verified: true
          fee:
            symbol: ETH
            decimals: 18
            verified: true
    Agreement:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
          description: ID of the agreement.
        agreementUrl:
          type: string
          description: URL where the full agreement document can be viewed.
        details:
          type: string
          description: Details of the agreement.
        agreementType:
          type: string
          enum:
            - PrivacyPolicy
            - TermsAndConditions
            - UniswapTermsOfService
            - UniswapPrivacyPolicy
          description: Type of the agreement.
      required:
        - id
        - details
        - agreementType
      additionalProperties: false
      description: Latest unaccepted agreement, or `null` if none.
    Allocation:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^allctn-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Unique identifier for the allocation investment.
          example: allctn-7mnn0-rltpq-9bvps60gjm09td0j
        walletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Wallet id.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        protocol:
          type: string
          enum:
            - 0fns
            - SkySusds
            - GauntletUsdcPrime
            - SteakhouseUsdt
            - GauntletUsdcPrimeBase
            - SteakhouseUsdcBase
            - SentoraPyusdMain
          description: The DeFi protocol used for allocation generation.
        provider:
          type: string
          enum:
            - M0
            - Yield.xyz
          description: The provider handling this allocation.
        amount:
          allOf:
            - oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - amount
                  title: Native Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - contract
                    - amount
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Spl
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - mint
                    - amount
                  title: Solana Fungible Token (SPL)
            - type: object
              properties:
                metadata:
                  type: object
                  properties:
                    network:
                      $ref: '#/components/schemas/Network'
                    name:
                      type: string
                    symbol:
                      type: string
                    decimals:
                      type: number
                    tid:
                      type: string
                  required:
                    - network
                    - decimals
              required:
                - metadata
          description: The total amount currently invested in this allocation.
        rewards:
          allOf:
            - oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - amount
                  title: Native Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - contract
                    - amount
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Spl
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - mint
                    - amount
                  title: Solana Fungible Token (SPL)
            - type: object
              properties:
                metadata:
                  type: object
                  properties:
                    network:
                      $ref: '#/components/schemas/Network'
                    name:
                      type: string
                    symbol:
                      type: string
                    decimals:
                      type: number
                    tid:
                      type: string
                  required:
                    - network
                    - decimals
              required:
                - metadata
          description: The total rewards earned so far in this allocation.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date. When
            the allocation was created.
          example: 2023-04-14T20:41:28.715Z
      required:
        - id
        - walletId
        - protocol
        - amount
        - rewards
        - dateCreated
      description: >-
        A allocation investment representing funds deposited to earn interest
        from a DeFi protocol.
      example:
        id: allctn-6a3ku-bn8d7-8u5rs1oukojms7k8
        walletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
        protocol: 0fns
        provider: M0
        amount:
          kind: Erc20
          contract: '0x0A7660979A67E4bC51E750C628C8479ff9F458aE'
          amount: '1000000000'
          metadata:
            network: EthereumSepolia
            name: 0fns
            symbol: 0fnsSepolia
            decimals: 6
            tid: erc20:0x0A7660979A67E4bC51E750C628C8479ff9F458aE
        rewards:
          kind: Erc20
          contract: '0x0A7660979A67E4bC51E750C628C8479ff9F458aE'
          amount: '5000000'
          metadata:
            network: EthereumSepolia
            name: 0fns
            symbol: 0fnsSepolia
            decimals: 6
            tid: erc20:0x0A7660979A67E4bC51E750C628C9479ff9F458aE
        dateCreated: 2025-10-09T10:57:55.758Z
    Requester:
      type: object
      properties:
        userId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: User id.
          example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
        tokenId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^to-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Token id.
          example: to-202a0-cdo33-o65mbt6q758lvvnt
      required:
        - userId
      description: The user who initiated the request.
    AllocationAction:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^allctn-a-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Unique identifier for the allocation action.
          example: allctn-a-04p5n-gkkgd-5qk71nuev5n2ug1t
        allocationId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^allctn-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Unique identifier for the allocation investment.
          example: allctn-7mnn0-rltpq-9bvps60gjm09td0j
        externalId:
          type: string
          description: >-
            An optional external identifier provided by the client to ensure
            idempotency and prevent duplicate operations.
        kind:
          type: string
          enum:
            - Deposit
            - Withdraw
          description: >-
            The type of action being performed on the allocation investment:
            Deposit to add funds or Withdraw to remove funds.
        status:
          type: string
          enum:
            - PendingPolicyApproval
            - InProgress
            - Completed
            - Failed
            - Rejected
          description: >-
            Status of the allocation action. Once initiated, the status will be
            InProgress, after processing it will be Completed or Failed.
        requester:
          $ref: '#/components/schemas/Requester'
        requestBody:
          anyOf:
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Deposit
                    - Withdraw
                  description: >-
                    The type of action being performed on the allocation
                    investment: Deposit to add funds or Withdraw to remove
                    funds.
                externalId:
                  type: string
                  description: >-
                    An optional external identifier provided by the client to
                    ensure idempotency and prevent duplicate operations.
                sourceAsset:
                  type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - contract
                    - amount
                  title: EVM Fungible Token (ERC-20)
                targetAsset:
                  type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - contract
                    - amount
                  title: EVM Fungible Token (ERC-20)
                slippageBps:
                  type: integer
                  minimum: 0
                  maximum: 10000
                  description: >-
                    The slippage tolerance for this trade in [basis
                    point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                    Slippage tolerance defines the maximum price difference
                    you're willing to accept during a trade from the estimated
                    quote, ensuring you still receive at least a minimum number
                    of tokens if the price shifts. One basis point equals
                    one-hundredth of a percentage point, or 0.01%.
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will pay the network fees for
                    this allocation. When set, allocation transactions are
                    broadcast as sponsored user operations.
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - sourceAsset
                - targetAsset
                - slippageBps
              description: >-
                Request body for creating a allocation action (deposit or
                withdrawal) using the 0fns protocol.
              title: 0fns Allocation Action Request
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Deposit
                    - Withdraw
                  description: >-
                    The type of action being performed on the allocation
                    investment: Deposit to add funds or Withdraw to remove
                    funds.
                externalId:
                  type: string
                  description: >-
                    An optional external identifier provided by the client to
                    ensure idempotency and prevent duplicate operations.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: >-
                    Underlying token amount in smallest unit, e.g. "1000000" = 1
                    USDC. Applies to both deposits and withdrawals.
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will pay the network fees for
                    this allocation. When set, allocation transactions are
                    broadcast as sponsored user operations.
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - amount
              description: >-
                Request body for creating a allocation action (deposit or
                withdrawal) for a Yield.xyz vault allocation.
              title: Yield.xyz Vault Allocation Action Request
            - oneOf:
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - 0fns
                      description: Ofns protocol
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    sourceAsset:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Erc20
                        contract:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        amount:
                          type: string
                          pattern: ^\d+$
                      required:
                        - kind
                        - contract
                        - amount
                      title: EVM Fungible Token (ERC-20)
                    targetAsset:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Erc20
                        contract:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        amount:
                          type: string
                          pattern: ^\d+$
                      required:
                        - kind
                        - contract
                        - amount
                      title: EVM Fungible Token (ERC-20)
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  description: >-
                    Request body for creating a allocation investment using the
                    0fns protocol.
                  title: 0fns Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - SkySusds
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        USDS amount in smallest unit, e.g. "1000000000000000000"
                        = 1 USDS
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Sky sUSDS Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - GauntletUsdcPrime
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: USDC amount in smallest unit, e.g. "1000000" = 1 USDC
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Gauntlet gtUSDC Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - SteakhouseUsdt
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: USDT amount in smallest unit, e.g. "1000000" = 1 USDT
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Steakhouse USDT Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - GauntletUsdcPrimeBase
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: USDC amount in smallest unit, e.g. "1000000" = 1 USDC
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Gauntlet USDC Prime (Base) Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - SteakhouseUsdcBase
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: USDC amount in smallest unit, e.g. "1000000" = 1 USDC
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Steakhouse USDC (Base) Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - SentoraPyusdMain
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: PYUSD amount in smallest unit, e.g. "1000000" = 1 PYUSD
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Sentora PYUSD Main Allocation Request
              description: Request body for creating an allocation investment.
          description: The full request used for initiating this allocation action.
        failureReason:
          type: string
          description: The failure reason, if any. Only present when status is Failed.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date. When
            the allocation action was created.
          example: 2023-04-14T20:41:28.715Z
      required:
        - id
        - allocationId
        - kind
        - status
        - requester
        - requestBody
        - dateCreated
      description: >-
        A specific action performed on a allocation investment, such as
        depositing or withdrawing funds.
      example:
        id: allctn-a-6a3ku-bn8d7-8u5rs1oukojms7k8
        allocationId: allctn-6a3ku-bn8d7-8u5rs1oukojms7k8
        externalId: external-action-123
        kind: Deposit
        status: InProgress
        requester:
          userId: us-3v1ag-v6b36-afhm4zy59kjrn1fds
          tokenId: ut-341e5-12nj6-9a82ld2hjxqzkpji
        requestBody:
          kind: Deposit
          sourceAsset:
            kind: Erc20
            contract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
            amount: '500000000'
          targetAsset:
            kind: Erc20
            contract: '0x0A7660979A67E4bC51E750C628C8479ff9F458aE'
            amount: '500000000'
          slippageBps: 100
        dateCreated: 2025-10-09T11:15:33.421Z
    Fido2Assertion:
      type: object
      properties:
        kind:
          type: string
          enum:
            - Fido2
        credentialAssertion:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded id of the credential returned by the user's
                WebAuthn client.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object returned by the user's WebAuthn client.
            signature:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded signature returned by the user's WebAuthn
                client.
            algorithm:
              type: string
              description: >-
                The algorithm/digest that the credential will use to sign data.
                If the algoritm is not specified then the algorithm will be
                determined by the key.
            authenticatorData:
              type: string
              minLength: 1
              description: >-
                Base64url encoded authenticator data object returned by the
                user's WebAuthn client.
            userHandle:
              type: string
              description: >-
                Base64url encoded userHandle returned by the user's WebAuthn
                client.
          required:
            - credId
            - clientData
            - signature
            - authenticatorData
          additionalProperties: false
      required:
        - kind
        - credentialAssertion
      additionalProperties: false
      description: Use a Fido2 Credential, also known as Passkeys or WebauthN credential.
      title: Fido2/Passkeys
    KeyAssertion:
      type: object
      properties:
        kind:
          type: string
          enum:
            - Key
        credentialAssertion:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded id of the credential returned by the user's
                WebAuthn client.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object returned by the user's WebAuthn client.
            signature:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded signature returned by the user's WebAuthn
                client.
            algorithm:
              type: string
              description: >-
                The algorithm/digest that the credential will use to sign data.
                If the algoritm is not specified then the algorithm will be
                determined by the key.
          required:
            - credId
            - clientData
            - signature
          additionalProperties: false
      required:
        - kind
        - credentialAssertion
      additionalProperties: false
      description: Use a "raw" public/private keypair.
      title: Public/Private key pair
    PasswordProtectedKeyAssertion:
      type: object
      properties:
        kind:
          type: string
          enum:
            - PasswordProtectedKey
        credentialAssertion:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded id of the credential returned by the user's
                WebAuthn client.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object returned by the user's WebAuthn client.
            signature:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded signature returned by the user's WebAuthn
                client.
            algorithm:
              type: string
              description: >-
                The algorithm/digest that the credential will use to sign data.
                If the algoritm is not specified then the algorithm will be
                determined by the key.
          required:
            - credId
            - clientData
            - signature
          additionalProperties: false
      required:
        - kind
        - credentialAssertion
      additionalProperties: false
      description: 'Use an encrypted private key. '
      title: Password-protected Key
    PasswordAssertion:
      type: object
      properties:
        kind:
          type: string
          enum:
            - Password
        password:
          type: string
          minLength: 1
          description: User password.
      required:
        - kind
        - password
      additionalProperties: false
      description: Not supported, will be removed in a future release.
      title: <Deprecated> Password
    FirstFactorAssertion:
      oneOf:
        - $ref: '#/components/schemas/Fido2Assertion'
        - $ref: '#/components/schemas/KeyAssertion'
        - $ref: '#/components/schemas/PasswordProtectedKeyAssertion'
        - $ref: '#/components/schemas/PasswordAssertion'
      discriminator:
        propertyName: kind
        mapping:
          Fido2: '#/components/schemas/Fido2Assertion'
          Key: '#/components/schemas/KeyAssertion'
          PasswordProtectedKey: '#/components/schemas/PasswordProtectedKeyAssertion'
          Password: '#/components/schemas/PasswordAssertion'
      description: First factor credential used to sign the challenge.
    TotpAssertion:
      type: object
      properties:
        kind:
          type: string
          enum:
            - Totp
        otpCode:
          type: string
          minLength: 1
          description: TOTP one-time code.
      required:
        - kind
        - otpCode
      additionalProperties: false
      description: Not supported, will be removed in a future release.
      title: <Deprecated> TOTP
    SecondFactorAssertion:
      oneOf:
        - $ref: '#/components/schemas/Fido2Assertion'
        - $ref: '#/components/schemas/KeyAssertion'
        - $ref: '#/components/schemas/PasswordProtectedKeyAssertion'
        - $ref: '#/components/schemas/TotpAssertion'
      discriminator:
        propertyName: kind
        mapping:
          Fido2: '#/components/schemas/Fido2Assertion'
          Key: '#/components/schemas/KeyAssertion'
          PasswordProtectedKey: '#/components/schemas/PasswordProtectedKeyAssertion'
          Totp: '#/components/schemas/TotpAssertion'
      description: Second factor credential used to authenticate a user.
    CredentialKind:
      type: string
      description: The kind of credential.
      enum:
        - Fido2
        - Key
        - RecoveryKey
        - PasswordProtectedKey
    AuditLog:
      type: object
      properties:
        id:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 64
              pattern: ^uj-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: ''
              example: uj-22lhj-mp2ir-88at3r4cufpis60i
            - type: string
              minLength: 1
              maxLength: 64
              pattern: ^to-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: ''
              example: to-202a0-cdo33-o65mbt6q758lvvnt
          description: Log id.
        action:
          type: string
          description: Action performed.
        actionToken:
          type: string
          description: User Action Signature used as token for permorming this action.
        userId:
          type:
            - string
            - 'null'
          minLength: 1
          maxLength: 64
          pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: User who performed the action.
          example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
        username:
          type:
            - string
            - 'null'
          description: Username who performed the action.
        datePerformed:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When this action was signed.
          example: 2023-04-14T20:41:28.715Z
        firstFactorCredential:
          type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: Id of the credential used to sign this action.
              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
            kind:
              allOf:
                - $ref: '#/components/schemas/CredentialKind'
                - type:
                    - string
                    - 'null'
                  description: Kind of credential used to sign this action.
            publicKey:
              type: string
              description: Public Key which can be used to verify signature.
            assertion:
              type:
                - object
                - 'null'
              properties:
                authenticatorData:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Used to verify the signature for Fido2 credentials. Null for
                    Key credentials, which sign clientData directly.
                clientData:
                  type: string
                  description: >-
                    Information, including challenge, which you can use to
                    verify the signature.
                signature:
                  type: string
                  description: >-
                    Signature of the clientData (and authenticatorData for
                    Fido2).
              required:
                - authenticatorData
                - clientData
                - signature
              description: >-
                Cryptographic signature evidence. Null when the action was
                recorded without a WebAuthn assertion (e.g. system-initiated
                actions or staff-flow org-owner creations).
          required:
            - id
            - kind
            - publicKey
            - assertion
          description: >-
            Cryptographic Signature details. Use these parameters if you want to
            validate the signature.
      required:
        - id
        - action
        - actionToken
        - userId
        - username
        - datePerformed
        - firstFactorCredential
      additionalProperties: false
      example:
        id: uj-4vs1l-5012b-95825381215t26u8
        action: >-
          eyJwYXlsb2FkIjoie1wibmFtZVwi3215853bGlhXCJ9IiwibWV0aG9kIjoiUFVUIiwicGF0aCI6Ii93YWxsZX32584LTNsNmFwLXI0Y2J0LThqMDltaGh0YnU1MjQyYzgiLCJzZXJ2ZXIiOiJhcGkuZGZucy5pbyIsInN56534nkiOiJVcGRhdGUgd2FsbGV0IHdhLTNsNmFwLXI0Y2J0LThqMDlt84388jQyYzguIiwibm9uY2UiOiIifQ==
        actionToken: >-
          eyJ0eXAiOiJKV1QiLC453JFZERTQSJ9.eyJqdGkiOiJ1ai00dnMxbC01MDEyYi05NTg5Y3M0NXIy548nU4IiwiaXNzIjoiYXV0aC5kZm5zLmlvIiwiYXVk3543586XRoOnVzZXI6YWN0aW9uIiwic3ViIjoidXMtNG92aDQtNmEwaDgtODFvYWgwZmozdThsNmRqdC354348HBzOi8vY3VzdG9tL2FwcF9tZXRhZGF0YSI6eyJvcmdJZCI6Im9yLTFtZG9rLTV1dmgwLTllNzluOTlqNWE5azV1MWoiLCJmaXJzdEZhY3RvckNyZWRlbnRpYWxVdWlkIjoiY3ItN2JmcWstODl1YWctOG5scXZxdmd0NmR2ZDFtayIsInNlY29uZEZhY3RvckNyZWRlbnRpYWxVdWlkIjoiIiwiaGFzaCI6ImM5YTc5YjcxZjI0ZTRkMzJjNGJmN2M1NzlkYmQ3Y2RmZDRlNDUwOWFkMGM1ZmM5ZDVlNjEyYWFkODllMmQzOTYiLCJub25jZSI6Im5vLTVoMG44LWg5b211LTkxZHJqc2RjZnRxMzJmbmMifSwiaWF0IjoxNzYwMDE2MTg1LCJleHAiOjE3NjAwMTcwODV9.zva5vMQHkkbxGgk8IG2jHtbWOoftDA1ga_5INqLks2aCO9V29U3lWE9eE3Mu3M6z5SPHprF31BpIMW0jOzWbDA
        datePerformed: 2025-10-09T13:23:05.134Z
        userId: us-4ovh4-6a0h8-81oa5584u8l6djt
        username: my-user@my-company.com
        firstFactorCredential:
          id: cr-7bfqk-89uag-8nlq12437958dvd1mk
          kind: Fido2
          publicKey: |
            -----BEGIN PUBLIC KEY-----
            MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2315138132rYlwMzKbl458cZk
            yiHqVsN6QJRE/tqvqsdfq35eT8KEwjSGsh/Lv4LiWMFlnz/kIzjo6TCJpA==
            -----END PUBLIC KEY-----
          assertion:
            authenticatorData: k3SiDdanJToQdO2q1f3se58ELbhdGfzoZ3GRSPmOO9AdAAAAAA
            clientData: >-
              eyJ0eXBlIjoid2ViYXV0aG4uZ2V0qfses135ebmdlIjoiWlhsS2NGcERTVFpKYlU1dlRGUmFibGt5ZERKTVYwVXlZbnBXZGt4VWFIVmphbXd3V1ZkU2JrNHpXbk5QVjNOM1RVUlJhVXhEU25WaU1qVnFXbE5KTmtsdE5YWk1WRlUwWTBkVmVVeFVVblZaVkVGM1RGUm5lVTlIUlRKUFZFWXhZMjFPZEdFeVdYcE9WekJwVEVOS2QxbFliSE5pTWtaclUwZEdlbUZEU1RaSmJWSm9Xa2RhYkU5VVdUSmFSMVUxVFZSTk0xcEVUVFJQVjFFd1RrUlJlVTlFWXpGUFJFcHFUVlJKTVU1NlJYaE9hbWN6VFVkSk0xcEVTWGRaVjBsM1RsUlpNRmx0Vm14YWFtTXhUbGRLYWxwWFNYcE9Na2xwVEVOS2QxbFlVbTlKYW05cFRETmthR0pIZUd4a1NFMTJaREpGZEUweWR6SlpXRUYwWTJwU2FsbHVVWFJQUjI5M1QxY3hiMkZJVW1sa1ZGVjVUa1JLYWs5RFNYTkpiazR4WWxjeGFHTnVhMmxQYVVwV1kwZFNhR1JIVldka01rWnpZa2RXTUVsSVpHaE1WRTV6VG0xR2QweFlTVEJaTWtvd1RGUm9jVTFFYkhSaFIyZ3dXVzVWTVUxcVVYbFplbWQxU1c0dyIsIm9yaWdpbiI6Imh0dHBzOi8vYXBwLmRmbnMuaW8iLCJjcm9zc09yaWdpbiI6ZmFsc2V9
            signature: >-
              MEYCIQDq2iXdlHcsqf13se5BlK1VJFiMQuV1x-HTj1efWvu5dKGgIhAJOudYr43QPWNQnxu1Y1U7PJ3pxjQNhx7kBb821HZJNk
    PersonalAccessToken:
      type: object
      properties:
        accessToken:
          type: string
          description: The access token. Only returned at creation time.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). Date the access token was created.
          example: 2023-04-14T20:41:28.715Z
        credId:
          type: string
          description: ID of the credential associated with the access token.
        isActive:
          type: boolean
          description: Whether the access token is active.
        kind:
          type: string
          enum:
            - Pat
            - ServiceAccount
            - Token
            - Code
            - Recovery
            - Temp
            - Application
          description: Access token kind.
        linkedUserId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: User id.
          example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
        linkedAppId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: ID of the application the access token is linked to.
          example: ap-2a9in-tt2a1-983lho480p35ejd0
        name:
          type: string
          description: Human-readable name of the access token.
        orgId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Organization id.
          example: or-30tnh-itmjs-s235s5ontr3r23h2
        permissionAssignments:
          type: array
          items:
            type: object
            properties:
              permissionName:
                type: string
                description: Human-readable name of the permission (role).
              permissionId:
                type: string
                minLength: 1
                maxLength: 64
                pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                description: >-
                  ID of the permission (also referred to as "role" in the
                  dashboard).
                example: pm-37vj4-jkr4l-lc9945spfftkne57
              assignmentId:
                type: string
                minLength: 1
                maxLength: 64
                pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                description: ID of the permission assignment.
                example: as-1vcmc-qrek0-6b4vii9pln60907e
              operations:
                type: array
                items:
                  type: string
                description: List of API operations granted by this permission.
            required:
              - permissionName
              - permissionId
              - assignmentId
          description: Permissions (roles) assigned to the access token.
        publicKey:
          type: string
          description: Public key associated with the access token.
        tokenId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^to-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Token id.
          example: to-202a0-cdo33-o65mbt6q758lvvnt
      required:
        - dateCreated
        - credId
        - isActive
        - kind
        - linkedUserId
        - linkedAppId
        - name
        - orgId
        - permissionAssignments
        - publicKey
        - tokenId
    Credential:
      type: object
      properties:
        kind:
          type: string
          enum:
            - Fido2
            - Key
            - Password
            - Totp
            - RecoveryKey
            - PasswordProtectedKey
        credentialId:
          type: string
          description: Credential ID from the WebAuthn authenticator (base64url).
        credentialUuid:
          type: string
          description: Dfns-internal UUID of the credential.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). Date the credential was created.
          example: 2023-04-14T20:41:28.715Z
        isActive:
          type: boolean
          description: Whether the credential is active.
        name:
          type: string
          description: Human-readable name of the credential.
        publicKey:
          type: string
          description: Public key of the credential.
        relyingPartyId:
          type: string
          description: Relying party identifier associated with the credential.
        origin:
          type: string
          description: Origin where the credential was created.
      required:
        - kind
        - credentialId
        - credentialUuid
        - dateCreated
        - isActive
        - name
        - publicKey
        - relyingPartyId
        - origin
    CreateCredentialFido2Attestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - Fido2
        credentialInfo:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded id of the credential returned by the user's
                WebAuthn client.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object returned by the user's WebAuthn client.
            attestationData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded attestation data returned by the user's
                WebAuthn client.
          required:
            - credId
            - clientData
            - attestationData
          additionalProperties: false
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name of the credential.
        challengeIdentifier:
          type: string
          minLength: 1
          description: >-
            Challenge identifier returned by the create credential challenge
            endpoint.
      required:
        - credentialKind
        - credentialInfo
        - credentialName
        - challengeIdentifier
      additionalProperties: false
      description: >-
        Register a Fido2 Credential, also known as Passkeys or WebauthN
        credential.
      title: Fido2/Passkeys
    CreateCredentialKeyAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - Key
        credentialInfo:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: Base64url-encoded id of the credential.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object.
            attestationData:
              type: string
              minLength: 1
              description: Base64url-encoded public key.
          required:
            - credId
            - clientData
            - attestationData
          additionalProperties: false
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name of the credential.
        challengeIdentifier:
          type: string
          minLength: 1
          description: >-
            Challenge identifier returned by the create credential challenge
            endpoint.
      required:
        - credentialKind
        - credentialInfo
        - credentialName
        - challengeIdentifier
      additionalProperties: false
      description: >-
        Register a "raw" public/private keypair, mostly meant to be used by
        Service Accounts. See [Generate a Key
        Pair](https://docs.dfns.co/guides/developers/generate-a-key-pair) for
        more details.
      title: Public/Private key pair
    CreateCredentialPasswordProtectedKeyAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - PasswordProtectedKey
        credentialInfo:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: Base64url-encoded id of the credential.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object.
            attestationData:
              type: string
              minLength: 1
              description: Base64url-encoded public key.
          required:
            - credId
            - clientData
            - attestationData
          additionalProperties: false
        encryptedPrivateKey:
          type: string
          minLength: 1
          description: >-
            User-encrypted private key. Dfns does not have the password to
            decrypt it.
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name of the credential.
        challengeIdentifier:
          type: string
          minLength: 1
          description: >-
            Challenge identifier returned by the create credential challenge
            endpoint.
      required:
        - credentialKind
        - credentialInfo
        - encryptedPrivateKey
        - credentialName
        - challengeIdentifier
      additionalProperties: false
      description: >-
        Register an encrypted private key. Note that Dfns only stores the
        encrypted private key and should not have access to the password to
        decrypt it!
      title: Password-protected Key
    CreateCredentialRecoveryKeyAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - RecoveryKey
        credentialInfo:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: Base64url-encoded id of the recovery credential.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object.
            attestationData:
              type: string
              minLength: 1
              description: Base64url-encoded public key.
          required:
            - credId
            - clientData
            - attestationData
          additionalProperties: false
        encryptedPrivateKey:
          type: string
          minLength: 1
          description: User-encrypted private key for the recovery credential.
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name of the credential.
        challengeIdentifier:
          type: string
          minLength: 1
          description: >-
            Challenge identifier returned by the create credential challenge
            endpoint.
      required:
        - credentialKind
        - credentialInfo
        - credentialName
        - challengeIdentifier
      additionalProperties: false
      description: >-
        Register a recovery key. See [Account
        Recovery](https://docs.dfns.co/api-reference/auth/account-recovery) for
        more details.
      title: Recovery Key
    CreateCredentialPasswordAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - Password
        credentialInfo:
          type: object
          properties:
            password:
              type: string
              minLength: 1
              description: User password.
          required:
            - password
          additionalProperties: false
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name of the credential.
        challengeIdentifier:
          type: string
          minLength: 1
          description: >-
            Challenge identifier returned by the create credential challenge
            endpoint.
      required:
        - credentialKind
        - credentialInfo
        - credentialName
        - challengeIdentifier
      additionalProperties: false
      description: Not supported, will be removed in a future release.
      title: <Deprecated> Password
    CreateCredentialTotpAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - Totp
        credentialInfo:
          type: object
          properties:
            otpCode:
              type: string
              minLength: 1
              description: TOTP one-time code.
          required:
            - otpCode
          additionalProperties: false
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name of the credential.
        challengeIdentifier:
          type: string
          minLength: 1
          description: >-
            Challenge identifier returned by the create credential challenge
            endpoint.
      required:
        - credentialKind
        - credentialInfo
        - credentialName
        - challengeIdentifier
      additionalProperties: false
      description: Not supported, will be removed in a future release.
      title: <Deprecated> TOTP
    Fido2Attestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - Fido2
        credentialInfo:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded id of the credential returned by the user's
                WebAuthn client.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object returned by the user's WebAuthn client.
            attestationData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded attestation data returned by the user's
                WebAuthn client.
          required:
            - credId
            - clientData
            - attestationData
          additionalProperties: false
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name to assign to the credential.
      required:
        - credentialKind
        - credentialInfo
      additionalProperties: false
      description: >-
        Register a Fido2 Credential, also known as Passkeys or WebauthN
        credential.
      title: Fido2/Passkeys
    KeyAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - Key
        credentialInfo:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: Base64url-encoded id of the credential.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object.
            attestationData:
              type: string
              minLength: 1
              description: Base64url-encoded public key.
          required:
            - credId
            - clientData
            - attestationData
          additionalProperties: false
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name to assign to the credential.
      required:
        - credentialKind
        - credentialInfo
      additionalProperties: false
      description: >-
        Register a "raw" public/private keypair, mostly meant to be used by
        Service Accounts. See [Generate a Key
        Pair](https://docs.dfns.co/guides/developers/generate-a-key-pair) for
        more details.
      title: Public/Private key pair
    PasswordAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - Password
        credentialInfo:
          type: object
          properties:
            password:
              type: string
              minLength: 1
              description: User password.
          required:
            - password
          additionalProperties: false
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name to assign to the credential.
      required:
        - credentialKind
        - credentialInfo
      additionalProperties: false
      description: Not supported, will be removed in a future release.
      title: <Deprecated> Password
    PasswordProtectedKeyAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - PasswordProtectedKey
        credentialInfo:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: Base64url-encoded id of the credential.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object.
            attestationData:
              type: string
              minLength: 1
              description: Base64url-encoded public key.
          required:
            - credId
            - clientData
            - attestationData
          additionalProperties: false
        encryptedPrivateKey:
          type: string
          minLength: 1
          description: >-
            User-encrypted private key. Dfns does not have the password to
            decrypt it.
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name to assign to the credential.
      required:
        - credentialKind
        - credentialInfo
        - encryptedPrivateKey
      additionalProperties: false
      description: >-
        Register an encrypted private key. Note that Dfns only stores the
        encrypted private key and should not have access to the password to
        decrypt it!
      title: Password-protected Key
    FirstFactorAttestation:
      oneOf:
        - $ref: '#/components/schemas/Fido2Attestation'
        - $ref: '#/components/schemas/KeyAttestation'
        - $ref: '#/components/schemas/PasswordAttestation'
        - $ref: '#/components/schemas/PasswordProtectedKeyAttestation'
      discriminator:
        propertyName: credentialKind
        mapping:
          Fido2: '#/components/schemas/Fido2Attestation'
          Key: '#/components/schemas/KeyAttestation'
          Password: '#/components/schemas/PasswordAttestation'
          PasswordProtectedKey: '#/components/schemas/PasswordProtectedKeyAttestation'
    TotpAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - Totp
        credentialInfo:
          type: object
          properties:
            otpCode:
              type: string
              minLength: 1
              description: TOTP one-time code.
          required:
            - otpCode
          additionalProperties: false
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name to assign to the credential.
      required:
        - credentialKind
        - credentialInfo
      additionalProperties: false
      description: Not supported, will be removed in a future release.
      title: <Deprecated> TOTP
    SecondFactorAttestation:
      oneOf:
        - $ref: '#/components/schemas/Fido2Attestation'
        - $ref: '#/components/schemas/KeyAttestation'
        - $ref: '#/components/schemas/TotpAttestation'
        - $ref: '#/components/schemas/PasswordProtectedKeyAttestation'
      discriminator:
        propertyName: credentialKind
        mapping:
          Fido2: '#/components/schemas/Fido2Attestation'
          Key: '#/components/schemas/KeyAttestation'
          Totp: '#/components/schemas/TotpAttestation'
          PasswordProtectedKey: '#/components/schemas/PasswordProtectedKeyAttestation'
    RecoveryKeyAttestation:
      type: object
      properties:
        credentialKind:
          type: string
          enum:
            - RecoveryKey
        credentialInfo:
          type: object
          properties:
            credId:
              type: string
              minLength: 1
              description: Base64url-encoded id of the recovery credential.
            clientData:
              type: string
              minLength: 1
              description: >-
                Base64url-encoded, stringified JSON [client
                data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                object.
            attestationData:
              type: string
              minLength: 1
              description: Base64url-encoded public key.
          required:
            - credId
            - clientData
            - attestationData
          additionalProperties: false
        encryptedPrivateKey:
          type: string
          minLength: 1
          description: User-encrypted private key for the recovery credential.
        credentialName:
          type: string
          minLength: 1
          description: Human-readable name to assign to the credential.
      required:
        - credentialKind
        - credentialInfo
      additionalProperties: false
      description: >-
        Register a recovery key. See [Account
        Recovery](https://docs.dfns.co/api-reference/auth/account-recovery) for
        more details.
      title: Recovery Key
    KeyScheme:
      type: string
      description: The cryptographic scheme for the key.
      enum:
        - ECDSA
        - EdDSA
        - Schnorr
    KeyCurve:
      type: string
      enum:
        - ed25519
        - secp256k1
        - stark
      description: The elliptic curve for the key.
    Wallet:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: ID of the wallet.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        network:
          type: string
          description: Network this wallet is bound to.
          enum: *ref_54
        address:
          type: string
          description: Wallet address on its corresponding network.
        signingKey:
          type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: Key id.
              example: key-01snl-t56gb-j8tsok0vn802p80i
            scheme:
              $ref: '#/components/schemas/KeyScheme'
            curve:
              $ref: '#/components/schemas/KeyCurve'
            publicKey:
              type: string
              description: Hex-encoded value of the public key.
              example: >-
                e2375c8c9e87bfcd0be8f29d76c818cabacd51584f72cb2222d49a13b036d84d3d
            delegatedTo:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: The end user ID the key (and wallet) is delegated to.
              example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
          required:
            - id
            - scheme
            - curve
            - publicKey
          description: Details about the key underlying the wallet.
        status:
          type: string
          enum:
            - Active
            - Inactive
            - Archived
          description: Wallet status.
        dateCreated:
          type: string
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string when
            wallet was created.
          example: 2023-04-14T20:41:28.715Z
        dateDeleted:
          type: string
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string when
            wallet was deleted.
          example: 2023-04-14T20:41:28.715Z
        name:
          type: string
          maxLength: 100
          description: Wallet nickname.
        custodial:
          type: boolean
          description: >-
            Whether the wallet is owned by an end user (non-custodial), or by
            your organization (custodial).
        externalId:
          type: string
          maxLength: 100
          description: >-
            User-defined value that can be used to correlate the entity with an
            external system.
        tags:
          type: array
          items:
            type: string
            pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
            description: Wallet Tag.
          maxItems: 10
          description: List of tags.
        validatorId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^cv-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: >-
            Id of the validator on which the wallet is created for Canton
            networks
          example: cv-7jeof-m584r-p35ucm37ko3cqgts
      required:
        - id
        - network
        - signingKey
        - status
        - dateCreated
        - custodial
        - tags
      example:
        id: wa-1f04s-lqc9q-xxxxxxxxxxxxxxxx
        network: Ethereum
        address: '0x00e3495cf6af59008f22ffaf32d4c92ac33dac47'
        name: trading hot wallet
        signingKey:
          id: key-6ece3-9l565-xxxxxxxxxxxxxxxx
          scheme: ECDSA
          curve: secp256k1
          publicKey: e2375c8c9e87bfcd0be8f29d76c818cabacd51584f72cb2222d49a13b036d84d3d
        status: Active
        dateCreated: 2023-04-14T20:41:28.715Z
        custodial: true
        tags: []
    User:
      type: object
      properties:
        username:
          type: string
          description: >-
            Username/identifier of the user (any unique string accepted, e.g.
            your internal user ID or email).
        name:
          type: string
          description: Display name of the user.
        userId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: User id.
          example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
        kind:
          type: string
          enum: &ref_115
            - CustomerEmployee
            - EndUser
          description: User kind.
        credentialUuid:
          type: string
          description: UUID of the user's primary credential.
        orgId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Organization id.
          example: or-30tnh-itmjs-s235s5ontr3r23h2
        tenantId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Tenant id.
          example: acct-24hka-dhili-9hgvdlvr1ohpibp4
        permissions:
          type: array
          items:
            type: string
          description: '@deprecated - Flat list of API operations the user has access to.'
        isActive:
          type: boolean
          description: Whether the user is active.
        isServiceAccount:
          type: boolean
          description: Whether the user is a service account.
        isRegistered:
          type: boolean
          description: Whether the user has completed registration.
        isSSORequired:
          type: boolean
          description: Whether the user must authenticate via SSO.
        permissionAssignments:
          type: array
          items:
            type: object
            properties:
              permissionName:
                type: string
                description: Human-readable name of the permission (role).
              permissionId:
                type: string
                minLength: 1
                maxLength: 64
                pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                description: >-
                  ID of the permission (also referred to as "role" in the
                  dashboard).
                example: pm-37vj4-jkr4l-lc9945spfftkne57
              assignmentId:
                type: string
                minLength: 1
                maxLength: 64
                pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                description: ID of the permission assignment.
                example: as-1vcmc-qrek0-6b4vii9pln60907e
              operations:
                type: array
                items:
                  type: string
                description: List of API operations granted by this permission.
            required:
              - permissionName
              - permissionId
              - assignmentId
          description: Permissions (roles) assigned to the user.
      required:
        - username
        - name
        - userId
        - kind
        - credentialUuid
        - isActive
        - isServiceAccount
        - isRegistered
        - isSSORequired
        - permissionAssignments
    FeeSponsor:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Fee Sponsor id.
          example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
        name:
          type: string
          description: >-
            Nickname for the Fee Sponsor. This is displayed on the transfer
            modal in the dashboard.
        walletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Id of the wallet that is used to sponsor the fee for other wallets
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        network:
          allOf:
            - $ref: '#/components/schemas/Network'
            - description: Network used for the wallet.
        status:
          type: string
          enum:
            - Active
            - Deactivated
            - Archived
          description: Fee sponsor status.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the Fee Sponsor was created.
          example: 2023-04-14T20:41:28.715Z
        allowEndUser:
          type: boolean
          description: >-
            Defines whether EndUsers and their delegated wallets can use this
            Fee Sponsor.
      required:
        - id
        - walletId
        - network
        - status
        - dateCreated
      additionalProperties: false
      example:
        id: fs-1f04s-lqc9q-xxxxxxxxxxxxxxxx
        walletId: wa-1f04s-lqc9q-xxxxxxxxxxxxxxxx
        network: Solana
        status: Active
        dateCreated: 2023-04-14T20:41:28.715Z
    Key:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Unique identifier for the key.
          example: key-01snl-t56gb-j8tsok0vn802p80i
        scheme:
          $ref: '#/components/schemas/KeyScheme'
        curve:
          $ref: '#/components/schemas/KeyCurve'
        publicKey:
          type: string
          description: Hex-encoded public key.
        masterKey:
          type: boolean
          description: Whether this key can be used as a master key for HD derivation.
        derivedFrom:
          type: object
          properties:
            keyId:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: The master key this key was derived from.
              example: key-01snl-t56gb-j8tsok0vn802p80i
            path:
              type: string
              description: The derivation path used.
          required:
            - keyId
            - path
          description: Derivation info if this key was derived from a master key.
        name:
          type: string
          description: Nickname for the key.
        status:
          type: string
          enum:
            - Active
            - Archived
          description: Current status of the key.
        custodial:
          type: boolean
          description: >-
            Whether the key is custodial (owned by organization) or
            non-custodial (delegated to end user).
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the key was created.
          example: 2023-04-14T20:41:28.715Z
        imported:
          type: boolean
          description: Whether this key was imported.
        exported:
          type: boolean
          description: Whether this key has been exported.
        dateExported:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the key was exported.
          example: 2023-04-14T20:41:28.715Z
        dateDeleted:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the key was deleted.
          example: 2023-04-14T20:41:28.715Z
      required:
        - id
        - scheme
        - curve
        - publicKey
        - status
        - custodial
        - dateCreated
    BlockchainKind:
      type: string
      enum:
        - Algorand
        - Aptos
        - Bitcoin
        - BitcoinCash
        - Canton
        - Cardano
        - Concordium
        - Cosmos
        - Evm
        - Hedera
        - Icp
        - Iota
        - Kaspa
        - Near
        - Polymesh
        - Solana
        - Starknet
        - Stellar
        - Substrate
        - Sui
        - Tezos
        - Ton
        - Tron
        - Xrpl
    SignatureRequest:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^sig-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Signature id.
          example: sig-4sfvl-f4iha-umighfi3hk4t54dr
        keyId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Key id.
          example: key-01snl-t56gb-j8tsok0vn802p80i
        requester:
          $ref: '#/components/schemas/Requester'
        requestBody:
          oneOf:
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Hash
                hash:
                  type: string
                  pattern: ^(0x)?[0-9a-fA-F]{64}$
                  description: 32-byte hash in hex encoded format.
                taprootMerkleRoot:
                  type: string
                  pattern: ^(0x)?([0-9A-Fa-f]{64})?$
                  description: >-
                    Required when signing with a Schnorr key. Specify the merkle
                    root for tweaking the signing key, or the empty string "" to
                    tweak with the default merkle root.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - hash
              additionalProperties: false
              description: >-
                All cryptographic scheme support hash signing. Different
                blockchains will apply different hash functions to compute the
                hash.
              title: Hash
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Message
                message:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: An arbitrary hex encoded message.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - message
              additionalProperties: false
              description: Signs an arbitrary hex encoded arbitrary message.
              title: Message
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Transaction
                transaction:
                  anyOf:
                    - type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                    - type: object
                      properties: {}
                  description: >-
                    The unsigned hex encoded transaction or JSON object for
                    compatible networks
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - transaction
              additionalProperties: false
              description: >-
                Signs an unsigned transaction. The transaction parameter accepts
                hex-encoded transactions or JSON objects for compatible networks
                (Concordium, Starknet, Evm).


                The following blockchains only accept JSON transaction objects
                (not hex strings): Concordium, Starknet.


                For Starknet transactions, you may use invocation request
                objects
                (https://github.com/starkware-libs/starknet-specs/blob/v0.8.1/api/starknet_api_openrpc.json#L2621):


                | Field                         |
                Description                                                                                        
                | Type - Optional                  |

                |-------------------------------|-----------------------------------------------------------------------------------------------------|----------------------------------|

                | type                          | transaction type (always
                INVOKE             
                )                                                      | String
                (required)                |

                | calldata                      | **Array** of encoded function
                call
                parameters                                                      
                | **Array of Strings** (required)  |

                | nonce                         | Transaction nonce in hex
                format                                                                    
                | String (required)                |

                | version                       | Transaction version in hex
                format. Typically "0x3" for current
                transactions                         | String
                (required)                |

                | resourceBounds                | Gas bounds for L1, L2, and L1
                data
                gas                                                             
                | Object (required)                |

                | ↳ resourceBounds.l1Gas        | L1 gas configuration with
                maxAmount and
                maxPricePerUnit                                             |
                Object (required)                |

                | ↳ resourceBounds.l2Gas        | L2 gas configuration with
                maxAmount and
                maxPricePerUnit                                             |
                Object (required)                |

                | ↳ resourceBounds.l1DataGas    | L1 data gas configuration with
                maxAmount and
                maxPricePerUnit                                        | Object
                (required)                |

                | tip                           | Transaction tip in hex format.
                Typically
                "0x0"                                                      |
                String (required)                |

                | paymasterData                 | Paymaster data
                array                                                                               
                | Array of Strings (required)      |

                | accountDeploymentData         | Account deployment data
                array                                                                      
                | Array of Strings (required)      |

                | nonceDataAvailabilityMode     | Data availability mode for
                nonce. Typically "L1" for
                now                                            | String
                (required)                |

                | feeDataAvailabilityMode       | Data availability mode for
                fee. Typically "L1" for
                now                                              | String
                (required)                |

                | chainId                       | The chain identifier in hex
                format                                                                 
                | String (required)                |

                | senderAddress                 | The address of the account
                sending the
                transaction                                                  |
                String (required)                |


                For Concordium transactions, use account transaction objects
                (https://developer.concordium.software/concordium-node-sdk-js/classes/ccd_js_gen.ConcordiumGRPCClient.html):


                | Field                          |
                Description                                                                 
                | Type - Optional              |

                |--------------------------------|------------------------------------------------------------------------------|------------------------------|

                | header.sender                  | Account address
                (base58)                                                     |
                String (required)            |

                | header.nonce                   | Account
                nonce                                                               
                | String (required)            |

                | header.expiry                  | Unix epoch seconds
                expiry                                                    |
                Number (required)            |

                | header.executionEnergyAmount   | Max NRG for
                execution                                                       
                | String (required)            |

                | header.numSignatures           | Number of
                signatures                                                        
                | Number (optional)            |

                | payload                        | Transaction payload
                (type-specific, e.g. Transfer, RegisterData)             |
                Object (required)            |


                ```json

                {
                  "kind": "Transaction",
                  "blockchainKind": "Concordium",
                  "transaction": {
                    "header": {
                      "sender": "4FmiTW2L2AccyR36ZBRKNqwQvBJBH8CAXWMLB1dbX5WyZmRo6N",
                      "nonce": "42",
                      "expiry": 1709510400,
                      "executionEnergyAmount": "501"
                    },
                    "payload": {
                      "Transfer": {
                        "amount": "1000000",
                        "toAddress": "3U4sfVSqGG6XK8g6eho2qRYtnHc4MWJBG1dfxdtPGbfHwFxini"
                      }
                    }
                  }
                }

                ```


                ```json

                {
                  "kind": "Transaction",
                  "transaction": "0xe703847735941a82520894f0965f5eb35ace69f01b77031f2cff22daca622887470de4df82000080"
                }

                ```


                ```json

                {
                  "kind": "Transaction",
                  "transaction": {
                    "type": "INVOKE",
                    "calldata": [
                      "1",
                      "2009894490435840142178314390393166646092438090257831307886760648929397478285",
                      "232670485425082704932579856502088130646006032362877466777181098476241604910",
                      "3",
                      "296727860213112272332383824629975240127004024814636931420022890499591637514",
                      "1",
                      "0"
                    ],
                    "nonce": "0x51",
                    "version": "0x3",
                    "resourceBounds": {
                      "l1Gas": { "maxAmount": "0x0", "maxPricePerUnit": "0x239a01ff6e6c" },
                      "l2Gas": { "maxAmount": "0x1694a0", "maxPricePerUnit": "0x10c388d00" },
                      "l1DataGas": { "maxAmount": "0x120", "maxPricePerUnit": "0x98e8" }
                    },
                    "tip": "0x0",
                    "paymasterData": [],
                    "accountDeploymentData": [],
                    "nonceDataAvailabilityMode": "L1",
                    "feeDataAvailabilityMode": "L1",
                    "chainId": "0x534e5f5345504f4c4941",
                    "senderAddress": "0x0535a9762b984c876abe0b164b0ccedb0d23a78978c9fe87e29deae0ea890c72"
                  }
                }

                ```
              title: Transaction
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Eip191
                message:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: Hex-encoded message.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - message
              additionalProperties: false
              description: >-
                Signs an personal_sign message as defined in
                [EIP-191](https://eips.ethereum.org/EIPS/eip-191).
              title: EIP-191 personal_sign Message
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Eip712
                types:
                  type: object
                  additionalProperties:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        type:
                          type: string
                      required:
                        - name
                        - type
                      additionalProperties: false
                  description: Type definitions.
                domain:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Name of the signing domain.
                    version:
                      type: string
                      description: Current major version of the signing domain.
                    chainId:
                      anyOf:
                        - type: integer
                          exclusiveMinimum: 0
                        - type: string
                      description: Chain ID.
                    verifyingContract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: >-
                        The address of the contract that will verify the
                        signature.
                    salt:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{64}$
                      description: 32-byte value as a last-resort domain separator.
                  additionalProperties: false
                  description: Domain separator.
                message:
                  type: object
                  additionalProperties: {}
                  description: Structured message to sign.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - types
                - domain
                - message
              additionalProperties: false
              description: >-
                Signs a typed structured data as defined in
                [EIP-712](https://eips.ethereum.org/EIPS/eip-712).
              title: EIP-712 TypedData
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Eip7702
                address:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: >-
                    The address of the contract the signer's EOA will be
                    delegated to.
                nonce:
                  type: number
                  description: The current nonce of the signer EOA.
                chainId:
                  type: number
                  description: Chain ID.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - address
                - nonce
                - chainId
              additionalProperties: false
              description: >-
                Signs an authorization tuple for type 4 set code transaction
                defined in [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702).
              title: EIP-7702 Authorization
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Snip12
                primaryType:
                  type: string
                  description: The primary type of the message.
                types:
                  type: object
                  additionalProperties:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        type:
                          type: string
                      required:
                        - name
                        - type
                      additionalProperties: false
                  description: Type definitions.
                domain:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Name of the signing domain.
                    version:
                      type: string
                      description: Current major version of the signing domain.
                    chainId:
                      anyOf:
                        - type: integer
                          exclusiveMinimum: 0
                        - type: string
                      description: Chain ID.
                    revision:
                      anyOf:
                        - type: number
                        - type: string
                      description: Revision of the domain.
                  description: Domain separator.
                message:
                  type: object
                  additionalProperties: {}
                  description: Structured message to sign.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - primaryType
                - types
                - domain
                - message
              additionalProperties: false
              description: >-
                Signs a typed structured data as defined in
                [SNIP-12](https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-12.md).
              title: SNIP-12 TypedData
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Psbt
                psbt:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: The hex encoded PSBT.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - psbt
              additionalProperties: false
              description: Signs a partially signed Bitcoin / Litecoin transaction.
              title: PSBT
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Bip322
                message:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: The generic message hex encoded.
                format:
                  type: string
                  enum:
                    - Simple
                    - Full
                  description: >-
                    Defaults to Simple if not present. The formatted signature
                    is returned in the `signedData` field in the response.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - message
              additionalProperties: false
              description: >-
                Signs a generic message using
                [BIP-322](https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki).
                Note: signing payload construction depends on the targeted
                blockchain. Therefore it's tied to a specific `network` rather
                than the blockchain kind.
              title: BIP-322
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - SignDocDirect
                signDoc:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: The hex encoded `SignDoc` Protobuf.
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - signDoc
              additionalProperties: false
              description: >-
                Signs an unsigned transaction using [sign mode
                direct](https://docs.cosmos.network/main/learn/advanced/transactions#sign_mode_direct-preferred).
              title: SignDocDirect
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - SignerPayload
                payload:
                  anyOf:
                    - type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                    - type: object
                      properties: {}
                  description: >
                    The unsigned Signer Payload formatted as JSON, or as a
                    serialized hex-encoded buffer.


                    Please refer to the original Polkadot definition for more
                    details:
                    [SignerPayloadJson](https://github.com/polkadot-js/api/blob/v16.2.2/packages/types/src/types/extrinsic.ts#L32).
                    Note that additional fields will be rejected.


                    | Field                |
                    Description                                                                             
                    | Type - Optional      |

                    | -------------------- |
                    ----------------------------------------------------------------------------------------
                    | -------------------- |

                    | `address`            | ss58-encoded address of the sending
                    account.                                             |
                    String               |

                    | `blockHash`          | The hash of the checkpoint block,
                    hex encoded.                                           |
                    String               |

                    | `blockNumber`        | The checkpoint block number, hex
                    encoded.                                                |
                    String               |

                    | `era`                | The number of blocks after the
                    checkpoint for which a transaction is valid, hex encoded. |
                    String               |

                    | `genesisHash`        | The genesis hash of the chain, hex
                    encoded.                                              |
                    String               |

                    | `metadataHash`       | The metadataHash for the
                    CheckMetadataHash SignedExtension, hex
                    encoded.                 | String *(optional)*  |

                    | `mode`               | flag indicating whether to verify
                    the metadata hash or not.                              |
                    Integer *(optional)* |

                    | `method`             | The encoded method with arguments,
                    hex encoded.                                          |
                    String               |

                    | `nonce`              | The nonce for the transaction, hex
                    encoded.                                              |
                    String               |

                    | `tip`                | The tip to increase transaction
                    priority, hex encoded.                                   |
                    String               |

                    | `version`            | The version of the
                    extrinsic.                                                           
                    | Integer              |

                    | `specVersion`        | The current spec version for the
                    runtime, hex encoded.                                   |
                    String               |

                    | `transactionVersion` | The current transaction version for
                    the runtime, hex encoded.                            |
                    String               |

                    | `signedExtensions`   | The applicable signed extensions
                    for this runtime.                                       |
                    Array<String>       |


                    ```json

                    {
                      "network": "Polymesh",
                      "kind": "SignerPayload",
                      "payload": {
                        "address": "5H5tTnmLUqRgvTZvTwCdBKYjKLBm2gkp7u38Q9UUdJa8m6rX",
                        "blockHash": "0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6",
                        "blockNumber": "0x00000000",
                        "era": "0x00",
                        "genesisHash": "0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6",
                        "method": "0x07141f3da32e72ac6eb6cb40d9e757594363a617b2c3964a2b6ec6895c6648f48d500000",
                        "nonce": "0x00000000",
                        "tip": "0x00000000000000000000000000000000",
                        "version": 4,
                        "specVersion": "0x006adb7a",
                        "transactionVersion": "0x00000007",
                        "signedExtensions": []
                      }
                    }

                    ```
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - payload
              additionalProperties: false
              description: >-
                Signs a [generic Signer
                Payload](https://github.com/polkadot-js/api/blob/v15.0.1/packages/types/src/extrinsic/SignerPayload.ts#L47-L51).
                Note: converting the generic signer payload to a signable
                extrinsic requires fetching metadata from the targeted
                blockchain. Therefore it's tied to a specific `network` rather
                than the blockchain kind.
              title: SignerPayload
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Cip8
                payload:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: The generic message hex encoded.
                externalAad:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: >-
                    Allows an application to ask the user to sign some extra
                    data but NOT put it inside the COSE structure (only as part
                    of the data to sign).
                context:
                  type: string
                  enum:
                    - Signature1
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - context
              additionalProperties: false
              description: >-
                Signs an arbitrary message using
                [CIP-8](https://cips.cardano.org/cip/CIP-0008). Note: signing
                address depends on the targeted blockchain. Therefore it's tied
                to a specific `network` rather than the blockchain kind.
              title: CIP-8
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - DfnsSmartAccountTransaction
                structured:
                  type: object
                  properties:
                    address:
                      type: string
                    userOperations:
                      type: array
                      items:
                        type: object
                        properties:
                          to:
                            type: string
                          value:
                            type: string
                          data:
                            type: string
                        required:
                          - to
                    message:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Eip712
                        domain:
                          type: object
                          properties:
                            name:
                              type: string
                            version:
                              type: string
                            chainId:
                              anyOf:
                                - type: number
                                - type: string
                            verifyingContract:
                              type: string
                            salt:
                              type: string
                        types:
                          type: object
                          additionalProperties:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                type:
                                  type: string
                              required:
                                - name
                                - type
                        message:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - domain
                        - types
                        - message
                    authorization:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Eip7702
                        address:
                          type: string
                        nonce:
                          type: number
                        chainId:
                          type: number
                      required:
                        - kind
                        - address
                        - nonce
                        - chainId
                  required:
                    - address
                    - userOperations
                    - message
                signatures:
                  type: object
                  additionalProperties:
                    type: object
                    properties:
                      r:
                        type: string
                      s:
                        type: string
                      recid:
                        type: number
                      encoded:
                        type: string
                    required:
                      - r
                      - s
                transactionReference:
                  type: string
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - structured
                - signatures
                - transactionReference
              additionalProperties: false
              title: Dfns Smart Account Transaction
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - StellarFeeBumpTransaction
                innerTransaction:
                  type: string
                transactionReference:
                  type: string
                network:
                  $ref: '#/components/schemas/Network'
                blockchainKind:
                  $ref: '#/components/schemas/BlockchainKind'
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - innerTransaction
                - transactionReference
              additionalProperties: false
              title: Stellar Fee Bump Transaction
        status:
          type: string
          enum:
            - Pending
            - Executing
            - Signed
            - Confirmed
            - Failed
            - Rejected
        reason:
          type: string
        signature:
          type: object
          properties:
            r:
              type: string
            s:
              type: string
            recid:
              type: number
            encoded:
              type: string
          required:
            - r
            - s
        signatures:
          type: array
          items:
            type: object
            properties:
              r:
                type: string
              s:
                type: string
              recid:
                type: number
              encoded:
                type: string
            required:
              - r
              - s
        signedData:
          type: string
        network:
          $ref: '#/components/schemas/Network'
        txHash:
          type: string
        fee:
          type: string
        approvalId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          example: ap-2a9in-tt2a1-983lho480p35ejd0
        dateRequested:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the signature was requested.
          example: 2023-04-14T20:41:28.715Z
        datePolicyResolved:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the signature was approved by policy reviewers.
          example: 2023-04-14T20:41:28.715Z
        dateSigned:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the signature was signed.
          example: 2023-04-14T20:41:28.715Z
        dateConfirmed:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the signature was confirmed on chain.
          example: 2023-04-14T20:41:28.715Z
        externalId:
          type: string
        details:
          type: object
          additionalProperties: {}
          description: >-
            Structured representation of the data used to construct the
            signature (e.g. nonce, gas parameters). Shape is blockchain
            specific.
      required:
        - id
        - keyId
        - requester
        - requestBody
        - status
        - dateRequested
    CantonValidator:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^cv-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          example: cv-7jeof-m584r-p35ucm37ko3cqgts
        orgId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Organization id.
          example: or-30tnh-itmjs-s235s5ontr3r23h2
        network:
          type: string
          enum:
            - Canton
            - CantonDevnet
            - CantonTestnet
          description: The Canton network this validator is configured for.
        name:
          type: string
          description: Nickname for this validator.
        kind:
          type: string
          enum:
            - Shared
            - Custom
          description: >-
            `Shared` if using the Dfns-hosted shared validator, `Custom` if
            connecting your own validator.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the validator was linked.
          example: 2023-04-14T20:41:28.715Z
        partyHint:
          type: string
          description: >-
            Party hint used to derive the Canton party id for wallets created
            under this validator.
      required:
        - id
        - orgId
        - network
        - kind
        - dateCreated
        - partyHint
    Permission:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: ID of the permission (also referred to as "role" in the dashboard).
          example: pm-37vj4-jkr4l-lc9945spfftkne57
        name:
          type: string
          description: Human-readable name of the permission (role).
        operations:
          type: array
          items:
            type: string
          description: >-
            List of API operations this permission grants access to. See
            [Permissions
            List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions)
            for available operations.
        status:
          type: string
          enum:
            - Active
          description: Current status of the permission.
        isImmutable:
          type: boolean
          description: Whether this permission is system-managed and cannot be modified.
        isArchived:
          type: boolean
          description: Whether this permission has been archived (soft-deleted).
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). Date the permission was created.
          example: 2023-04-14T20:41:28.715Z
        dateUpdated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). Date the permission was last updated.
          example: 2023-04-14T20:41:28.715Z
      required:
        - id
        - name
        - operations
        - status
        - isImmutable
        - isArchived
        - dateCreated
        - dateUpdated
      additionalProperties: false
    ChangeRequestRequester:
      type: object
      properties:
        userId:
          type: string
        tokenId:
          type: string
        appId:
          type: string
      required:
        - userId
      description: The user who initiated the change request.
    Policy:
      oneOf:
        - type: object
          properties:
            id:
              type: string
            name:
              type: string
            status:
              type: string
              enum:
                - Active
                - Archived
            dateCreated:
              type: string
            dateUpdated:
              type: string
            activityKind:
              type: string
              enum:
                - Registry:Addresses:Modify
            rule:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - AlwaysTrigger
                configuration:
                  type: object
                  properties: {}
                  additionalProperties: false
              required:
                - kind
              additionalProperties: false
              description: >-
                This rule will always be triggered, meaning that if this rule is
                defined on a policy, the policy will always trigger the policy
                action, regardless of the activity details.
              title: AlwaysTrigger
            action:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - RequestApproval
                    approvalGroups:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          quorum:
                            type: integer
                            minimum: 1
                          approvers:
                            type: object
                            properties:
                              userId:
                                type: object
                                properties:
                                  in:
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                    minItems: 1
                                    maxItems: 100
                                required:
                                  - in
                                additionalProperties: false
                            additionalProperties: false
                          initiatorCanApprove:
                            type: boolean
                            description: >-
                              Whether the initiator of the activity can
                              participate in the approval.
                          serviceAccountsCanApprove:
                            type: boolean
                            description: >-
                              Whether service accounts can participate in the
                              approval for this group.
                        required:
                          - quorum
                          - approvers
                        additionalProperties: false
                      minItems: 1
                    autoRejectTimeout:
                      type:
                        - integer
                        - 'null'
                      minimum: 1
                  required:
                    - kind
                    - approvalGroups
                  additionalProperties: false
                  description: >-

                    This action means that activity will first require an
                    Approval process to be completed before it can  be executed
                    (or be aborted if someone rejects it during the approval
                    process).


                    One or several groups of approvers need to be specified.
                    These groups define who is allowed to approve / reject an
                    activity.


                    The activity will only be executed if all approver groups
                    reach their "quorum" of approvals. Otherwise, if any one
                    user within any approver group rejects, then the activity is
                    aborted and the call is not executed.


                    The example below shows a `RequestApproval` action,
                    configured with one approval group requiring 2 approvals
                    amongst three specific users.


                    ```json

                    {
                      "action": {
                        "kind": "RequestApproval",
                        "autoRejectTimeout": 60, // minutes
                        "approvalGroups": [
                          {
                            "name": "Admins",
                            "quorum": 2, // only 2 approvers required in that group 
                            "approvers": {
                              "userId": {
                                "in": ["us-...1", "us-...2", "us-...3"],
                              }
                            }
                          }
                        ],

                      }
                    }

                    ```


                    **Don't lock yourself up**


                    By default, users cannot approve an activity they initiated
                    themselves, even if they are in an approval group. To allow
                    this, you must set `initiatorCanApprove: true`.


                    *Example 1:* For any wallet transfer, a policy is setup to
                    require approval from **1 specific admin user** (eg. the
                    CEO). `initiatorCanApprove` was not set to `true`. If the
                    CEO himself initiates a transfer, no-one can approve his
                    transfer and it's stuck.


                    *Example 2:* Company has only 3 users. A policy is setup to
                    require approval from **any 3 users** (`quorum: 3`) for any
                    modification of a policy. `initiatorCanApprove` was not set
                    to `true`. In this case, they are locked, and the policy
                    cannot be modified: whoever requests a modification cannot
                    approve, and the policy is therefore always missing one
                    approver. To unlock, they would need to invite a new user
                    and give him the rights to approve as well.
                        
                  title: RequestApproval
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Block
                  required:
                    - kind
                  additionalProperties: false
                  description: >
                    This action means that the activity will be blocked if the
                    policy is triggered.


                    ```json

                    {
                      "action": {
                        "kind": "Block"
                      }
                    }

                    ```
                  title: Block
            filters:
              type: object
              properties: {}
          required:
            - id
            - name
            - status
            - activityKind
            - rule
            - action
          additionalProperties: false
          title: Registry:Addresses:Modify
        - type: object
          properties:
            id:
              type: string
            name:
              type: string
            status:
              type: string
              enum:
                - Active
                - Archived
            dateCreated:
              type: string
            dateUpdated:
              type: string
            activityKind:
              type: string
              enum:
                - Permissions:Assign
            rule:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - AlwaysTrigger
                configuration:
                  type: object
                  properties: {}
                  additionalProperties: false
              required:
                - kind
              additionalProperties: false
              description: >-
                This rule will always be triggered, meaning that if this rule is
                defined on a policy, the policy will always trigger the policy
                action, regardless of the activity details.
              title: AlwaysTrigger
            action:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - RequestApproval
                    approvalGroups:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          quorum:
                            type: integer
                            minimum: 1
                          approvers:
                            type: object
                            properties:
                              userId:
                                type: object
                                properties:
                                  in:
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                    minItems: 1
                                    maxItems: 100
                                required:
                                  - in
                                additionalProperties: false
                            additionalProperties: false
                          initiatorCanApprove:
                            type: boolean
                            description: >-
                              Whether the initiator of the activity can
                              participate in the approval.
                          serviceAccountsCanApprove:
                            type: boolean
                            description: >-
                              Whether service accounts can participate in the
                              approval for this group.
                        required:
                          - quorum
                          - approvers
                        additionalProperties: false
                      minItems: 1
                    autoRejectTimeout:
                      type:
                        - integer
                        - 'null'
                      minimum: 1
                  required:
                    - kind
                    - approvalGroups
                  additionalProperties: false
                  description: >-

                    This action means that activity will first require an
                    Approval process to be completed before it can  be executed
                    (or be aborted if someone rejects it during the approval
                    process).


                    One or several groups of approvers need to be specified.
                    These groups define who is allowed to approve / reject an
                    activity.


                    The activity will only be executed if all approver groups
                    reach their "quorum" of approvals. Otherwise, if any one
                    user within any approver group rejects, then the activity is
                    aborted and the call is not executed.


                    The example below shows a `RequestApproval` action,
                    configured with one approval group requiring 2 approvals
                    amongst three specific users.


                    ```json

                    {
                      "action": {
                        "kind": "RequestApproval",
                        "autoRejectTimeout": 60, // minutes
                        "approvalGroups": [
                          {
                            "name": "Admins",
                            "quorum": 2, // only 2 approvers required in that group 
                            "approvers": {
                              "userId": {
                                "in": ["us-...1", "us-...2", "us-...3"],
                              }
                            }
                          }
                        ],

                      }
                    }

                    ```


                    **Don't lock yourself up**


                    By default, users cannot approve an activity they initiated
                    themselves, even if they are in an approval group. To allow
                    this, you must set `initiatorCanApprove: true`.


                    *Example 1:* For any wallet transfer, a policy is setup to
                    require approval from **1 specific admin user** (eg. the
                    CEO). `initiatorCanApprove` was not set to `true`. If the
                    CEO himself initiates a transfer, no-one can approve his
                    transfer and it's stuck.


                    *Example 2:* Company has only 3 users. A policy is setup to
                    require approval from **any 3 users** (`quorum: 3`) for any
                    modification of a policy. `initiatorCanApprove` was not set
                    to `true`. In this case, they are locked, and the policy
                    cannot be modified: whoever requests a modification cannot
                    approve, and the policy is therefore always missing one
                    approver. To unlock, they would need to invite a new user
                    and give him the rights to approve as well.
                        
                  title: RequestApproval
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Block
                  required:
                    - kind
                  additionalProperties: false
                  description: >
                    This action means that the activity will be blocked if the
                    policy is triggered.


                    ```json

                    {
                      "action": {
                        "kind": "Block"
                      }
                    }

                    ```
                  title: Block
            filters:
              type: object
              properties:
                permissionId:
                  type: object
                  properties:
                    in:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                  required:
                    - in
                  additionalProperties: false
              required:
                - permissionId
              additionalProperties: false
          required:
            - id
            - name
            - status
            - activityKind
            - rule
            - action
          additionalProperties: false
          title: Permissions:Assign
        - type: object
          properties:
            id:
              type: string
            name:
              type: string
            status:
              type: string
              enum:
                - Active
                - Archived
            dateCreated:
              type: string
            dateUpdated:
              type: string
            activityKind:
              type: string
              enum:
                - Permissions:Modify
            rule:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - AlwaysTrigger
                configuration:
                  type: object
                  properties: {}
                  additionalProperties: false
              required:
                - kind
              additionalProperties: false
              description: >-
                This rule will always be triggered, meaning that if this rule is
                defined on a policy, the policy will always trigger the policy
                action, regardless of the activity details.
              title: AlwaysTrigger
            action:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - RequestApproval
                    approvalGroups:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          quorum:
                            type: integer
                            minimum: 1
                          approvers:
                            type: object
                            properties:
                              userId:
                                type: object
                                properties:
                                  in:
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                    minItems: 1
                                    maxItems: 100
                                required:
                                  - in
                                additionalProperties: false
                            additionalProperties: false
                          initiatorCanApprove:
                            type: boolean
                            description: >-
                              Whether the initiator of the activity can
                              participate in the approval.
                          serviceAccountsCanApprove:
                            type: boolean
                            description: >-
                              Whether service accounts can participate in the
                              approval for this group.
                        required:
                          - quorum
                          - approvers
                        additionalProperties: false
                      minItems: 1
                    autoRejectTimeout:
                      type:
                        - integer
                        - 'null'
                      minimum: 1
                  required:
                    - kind
                    - approvalGroups
                  additionalProperties: false
                  description: >-

                    This action means that activity will first require an
                    Approval process to be completed before it can  be executed
                    (or be aborted if someone rejects it during the approval
                    process).


                    One or several groups of approvers need to be specified.
                    These groups define who is allowed to approve / reject an
                    activity.


                    The activity will only be executed if all approver groups
                    reach their "quorum" of approvals. Otherwise, if any one
                    user within any approver group rejects, then the activity is
                    aborted and the call is not executed.


                    The example below shows a `RequestApproval` action,
                    configured with one approval group requiring 2 approvals
                    amongst three specific users.


                    ```json

                    {
                      "action": {
                        "kind": "RequestApproval",
                        "autoRejectTimeout": 60, // minutes
                        "approvalGroups": [
                          {
                            "name": "Admins",
                            "quorum": 2, // only 2 approvers required in that group 
                            "approvers": {
                              "userId": {
                                "in": ["us-...1", "us-...2", "us-...3"],
                              }
                            }
                          }
                        ],

                      }
                    }

                    ```


                    **Don't lock yourself up**


                    By default, users cannot approve an activity they initiated
                    themselves, even if they are in an approval group. To allow
                    this, you must set `initiatorCanApprove: true`.


                    *Example 1:* For any wallet transfer, a policy is setup to
                    require approval from **1 specific admin user** (eg. the
                    CEO). `initiatorCanApprove` was not set to `true`. If the
                    CEO himself initiates a transfer, no-one can approve his
                    transfer and it's stuck.


                    *Example 2:* Company has only 3 users. A policy is setup to
                    require approval from **any 3 users** (`quorum: 3`) for any
                    modification of a policy. `initiatorCanApprove` was not set
                    to `true`. In this case, they are locked, and the policy
                    cannot be modified: whoever requests a modification cannot
                    approve, and the policy is therefore always missing one
                    approver. To unlock, they would need to invite a new user
                    and give him the rights to approve as well.
                        
                  title: RequestApproval
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Block
                  required:
                    - kind
                  additionalProperties: false
                  description: >
                    This action means that the activity will be blocked if the
                    policy is triggered.


                    ```json

                    {
                      "action": {
                        "kind": "Block"
                      }
                    }

                    ```
                  title: Block
            filters:
              type: object
              properties:
                permissionId:
                  type: object
                  properties:
                    in:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                  required:
                    - in
                  additionalProperties: false
              required:
                - permissionId
              additionalProperties: false
          required:
            - id
            - name
            - status
            - activityKind
            - rule
            - action
          additionalProperties: false
          title: Permissions:Modify
        - type: object
          properties:
            id:
              type: string
            name:
              type: string
            status:
              type: string
              enum:
                - Active
                - Archived
            dateCreated:
              type: string
            dateUpdated:
              type: string
            activityKind:
              type: string
              enum:
                - Policies:Modify
            rule:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - AlwaysTrigger
                configuration:
                  type: object
                  properties: {}
                  additionalProperties: false
              required:
                - kind
              additionalProperties: false
              description: >-
                This rule will always be triggered, meaning that if this rule is
                defined on a policy, the policy will always trigger the policy
                action, regardless of the activity details.
              title: AlwaysTrigger
            action:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - RequestApproval
                approvalGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      quorum:
                        type: integer
                        minimum: 1
                      approvers:
                        type: object
                        properties:
                          userId:
                            type: object
                            properties:
                              in:
                                type: array
                                items:
                                  type: string
                                  minLength: 1
                                minItems: 1
                                maxItems: 100
                            required:
                              - in
                            additionalProperties: false
                        additionalProperties: false
                      initiatorCanApprove:
                        type: boolean
                        description: >-
                          Whether the initiator of the activity can participate
                          in the approval.
                      serviceAccountsCanApprove:
                        type: boolean
                        description: >-
                          Whether service accounts can participate in the
                          approval for this group.
                    required:
                      - quorum
                      - approvers
                    additionalProperties: false
                  minItems: 1
                autoRejectTimeout:
                  type:
                    - integer
                    - 'null'
                  minimum: 1
              required:
                - kind
                - approvalGroups
              additionalProperties: false
              description: >-

                This action means that activity will first require an Approval
                process to be completed before it can  be executed (or be
                aborted if someone rejects it during the approval process).


                One or several groups of approvers need to be specified. These
                groups define who is allowed to approve / reject an activity.


                The activity will only be executed if all approver groups reach
                their "quorum" of approvals. Otherwise, if any one user within
                any approver group rejects, then the activity is aborted and the
                call is not executed.


                The example below shows a `RequestApproval` action, configured
                with one approval group requiring 2 approvals amongst three
                specific users.


                ```json

                {
                  "action": {
                    "kind": "RequestApproval",
                    "autoRejectTimeout": 60, // minutes
                    "approvalGroups": [
                      {
                        "name": "Admins",
                        "quorum": 2, // only 2 approvers required in that group 
                        "approvers": {
                          "userId": {
                            "in": ["us-...1", "us-...2", "us-...3"],
                          }
                        }
                      }
                    ],

                  }
                }

                ```


                **Don't lock yourself up**


                By default, users cannot approve an activity they initiated
                themselves, even if they are in an approval group. To allow
                this, you must set `initiatorCanApprove: true`.


                *Example 1:* For any wallet transfer, a policy is setup to
                require approval from **1 specific admin user** (eg. the CEO).
                `initiatorCanApprove` was not set to `true`. If the CEO himself
                initiates a transfer, no-one can approve his transfer and it's
                stuck.


                *Example 2:* Company has only 3 users. A policy is setup to
                require approval from **any 3 users** (`quorum: 3`) for any
                modification of a policy. `initiatorCanApprove` was not set to
                `true`. In this case, they are locked, and the policy cannot be
                modified: whoever requests a modification cannot approve, and
                the policy is therefore always missing one approver. To unlock,
                they would need to invite a new user and give him the rights to
                approve as well.
                    
              title: RequestApproval
            filters:
              type: object
              properties:
                policyId:
                  type: object
                  properties:
                    in:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                  required:
                    - in
                  additionalProperties: false
              required:
                - policyId
              additionalProperties: false
          required:
            - id
            - name
            - status
            - activityKind
            - rule
            - action
          additionalProperties: false
          title: Policies:Modify
        - type: object
          properties:
            id:
              type: string
            name:
              type: string
            status:
              type: string
              enum:
                - Active
                - Archived
            dateCreated:
              type: string
            dateUpdated:
              type: string
            activityKind:
              type: string
              enum:
                - Registry:ContractSchemas:Modify
            rule:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - AlwaysTrigger
                configuration:
                  type: object
                  properties: {}
                  additionalProperties: false
              required:
                - kind
              additionalProperties: false
              description: >-
                This rule will always be triggered, meaning that if this rule is
                defined on a policy, the policy will always trigger the policy
                action, regardless of the activity details.
              title: AlwaysTrigger
            action:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - RequestApproval
                    approvalGroups:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          quorum:
                            type: integer
                            minimum: 1
                          approvers:
                            type: object
                            properties:
                              userId:
                                type: object
                                properties:
                                  in:
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                    minItems: 1
                                    maxItems: 100
                                required:
                                  - in
                                additionalProperties: false
                            additionalProperties: false
                          initiatorCanApprove:
                            type: boolean
                            description: >-
                              Whether the initiator of the activity can
                              participate in the approval.
                          serviceAccountsCanApprove:
                            type: boolean
                            description: >-
                              Whether service accounts can participate in the
                              approval for this group.
                        required:
                          - quorum
                          - approvers
                        additionalProperties: false
                      minItems: 1
                    autoRejectTimeout:
                      type:
                        - integer
                        - 'null'
                      minimum: 1
                  required:
                    - kind
                    - approvalGroups
                  additionalProperties: false
                  description: >-

                    This action means that activity will first require an
                    Approval process to be completed before it can  be executed
                    (or be aborted if someone rejects it during the approval
                    process).


                    One or several groups of approvers need to be specified.
                    These groups define who is allowed to approve / reject an
                    activity.


                    The activity will only be executed if all approver groups
                    reach their "quorum" of approvals. Otherwise, if any one
                    user within any approver group rejects, then the activity is
                    aborted and the call is not executed.


                    The example below shows a `RequestApproval` action,
                    configured with one approval group requiring 2 approvals
                    amongst three specific users.


                    ```json

                    {
                      "action": {
                        "kind": "RequestApproval",
                        "autoRejectTimeout": 60, // minutes
                        "approvalGroups": [
                          {
                            "name": "Admins",
                            "quorum": 2, // only 2 approvers required in that group 
                            "approvers": {
                              "userId": {
                                "in": ["us-...1", "us-...2", "us-...3"],
                              }
                            }
                          }
                        ],

                      }
                    }

                    ```


                    **Don't lock yourself up**


                    By default, users cannot approve an activity they initiated
                    themselves, even if they are in an approval group. To allow
                    this, you must set `initiatorCanApprove: true`.


                    *Example 1:* For any wallet transfer, a policy is setup to
                    require approval from **1 specific admin user** (eg. the
                    CEO). `initiatorCanApprove` was not set to `true`. If the
                    CEO himself initiates a transfer, no-one can approve his
                    transfer and it's stuck.


                    *Example 2:* Company has only 3 users. A policy is setup to
                    require approval from **any 3 users** (`quorum: 3`) for any
                    modification of a policy. `initiatorCanApprove` was not set
                    to `true`. In this case, they are locked, and the policy
                    cannot be modified: whoever requests a modification cannot
                    approve, and the policy is therefore always missing one
                    approver. To unlock, they would need to invite a new user
                    and give him the rights to approve as well.
                        
                  title: RequestApproval
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Block
                  required:
                    - kind
                  additionalProperties: false
                  description: >
                    This action means that the activity will be blocked if the
                    policy is triggered.


                    ```json

                    {
                      "action": {
                        "kind": "Block"
                      }
                    }

                    ```
                  title: Block
            filters:
              type: object
              properties: {}
          required:
            - id
            - name
            - status
            - activityKind
            - rule
            - action
          additionalProperties: false
          title: Registry:ContractSchemas:Modify
        - type: object
          properties:
            id:
              type: string
            name:
              type: string
            status:
              type: string
              enum:
                - Active
                - Archived
            dateCreated:
              type: string
            dateUpdated:
              type: string
            activityKind:
              type: string
              enum:
                - Wallets:Sign
            rule:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - AlwaysTrigger
                    configuration:
                      type: object
                      properties: {}
                      additionalProperties: false
                  required:
                    - kind
                  additionalProperties: false
                  description: >-
                    This rule will always be triggered, meaning that if this
                    rule is defined on a policy, the policy will always trigger
                    the policy action, regardless of the activity details.
                  title: AlwaysTrigger
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - TransactionRecipientWhitelist
                    configuration:
                      type: object
                      properties:
                        addresses:
                          type: array
                          items:
                            type: string
                            minLength: 1
                          description: Whitelisted recipient addresses
                      required:
                        - addresses
                      additionalProperties: false
                  required:
                    - kind
                    - configuration
                  additionalProperties: false
                  description: >-
                    This rule will trigger if the destination address *is NOT
                    whitelisted*.
                  title: TransactionRecipientWhitelist
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - TransactionAmountLimit
                    configuration:
                      type: object
                      properties:
                        limit:
                          type: number
                          description: Amount limit in `currency`
                        currency:
                          type: string
                          enum: &ref_127
                            - USD
                          description: Fiat currency, currently only `USD`
                      required:
                        - limit
                        - currency
                      additionalProperties: false
                  required:
                    - kind
                    - configuration
                  additionalProperties: false
                  description: >-
                    This rule will trigger if the wallet activity detected is
                    transferring some value which amount is greater than a given
                    limit. Note: If the fiat amount of the wallet activity
                    cannot be evaluated for any reason (eg. market prices are
                    not available, or eg. the amount cannot be inferred from a
                    wallet signature request, etc.), by default the rule will
                    trigger the policy (this is called "failing closed" and is
                    generally considered a security best practice).
                  title: TransactionAmountLimit
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - TransactionAmountVelocity
                    configuration:
                      type: object
                      properties:
                        limit:
                          type: number
                          description: Amount limit in `currency`
                        currency:
                          type: string
                          enum: &ref_128
                            - USD
                          description: Currency for the amount limit above
                        timeframe:
                          type: integer
                          minimum: 1
                          maximum: 43200
                          description: Time period in minutes. Minimum 1, Maximum 43,200.
                      required:
                        - limit
                        - currency
                        - timeframe
                      additionalProperties: false
                  required:
                    - kind
                    - configuration
                  additionalProperties: false
                  description: >-
                    This rule will trigger if the cumulative amount transferred
                    from a given wallet within a given timeframe is greater than
                    a specified limit.  The aggregate amount evaluated is based
                    only on the wallet that triggered the policy.
                  title: TransactionAmountVelocity
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - TransactionCountVelocity
                    configuration:
                      type: object
                      properties:
                        limit:
                          type: number
                          description: Count limit
                        timeframe:
                          type: integer
                          minimum: 1
                          maximum: 43200
                          description: Time period in minutes. Minimum 1, Maximum 43,200.
                      required:
                        - limit
                        - timeframe
                      additionalProperties: false
                  required:
                    - kind
                    - configuration
                  additionalProperties: false
                  description: >-
                    This rule will trigger if the number of wallet activities
                    for a given wallet within a given timeframe, is greater than
                    a specified limit. The aggregate number of transactions
                    evaluated is based only on the wallet that triggered the
                    policy.
                  title: TransactionCountVelocity
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - ChainalysisTransactionPrescreening
                    configuration:
                      type: object
                      properties:
                        alerts:
                          type: object
                          properties:
                            alertLevel:
                              type: string
                              enum:
                                - LOW
                                - MEDIUM
                                - HIGH
                                - SEVERE
                            categoryIds:
                              type: array
                              items:
                                type: integer
                                exclusiveMinimum: 0
                          required:
                            - alertLevel
                            - categoryIds
                        exposures:
                          type: object
                          properties:
                            direct:
                              type: object
                              properties:
                                categoryIds:
                                  type: array
                                  items:
                                    type: integer
                                    exclusiveMinimum: 0
                              required:
                                - categoryIds
                          required:
                            - direct
                        addresses:
                          type: object
                          properties:
                            categoryIds:
                              type: array
                              items:
                                type: integer
                                exclusiveMinimum: 0
                          required:
                            - categoryIds
                        userIdTemplate:
                          type: string
                          minLength: 1
                          maxLength: 50
                          pattern: >-
                            ^([a-zA-Z0-9_:-]|{wallet\.id}|{wallet\.externalId})+$
                          default: dfns
                          description: >-
                            **Deprecated** — set `userIdTemplate` on the
                            Chainalysis integration setting instead; when set
                            there, the integration-level template takes
                            precedence over this one.


                            Value sent to Chainalysis as the "user ID". Used by
                            Chainalysis for grouping transaction screenings.
                              
                            This template can include variables, included in
                            brackets. The following variables are currently
                            supported:  `{wallet.id}` and `{wallet.externalId}`.

                            As an example, if you set `userIdTemplate:
                            "dfns:{wallet.id}_{wallet.externalId}"`, when your
                            wallet receives a transaction that gets screened by
                            a Chainalysis policy, the "user ID" sent to
                            Chainalysis will be `dfns:wa-xxx_yyy` (`wa-xxx`
                            being the wallet ID, and `yyy` being the wallet
                            external ID).
                        fallbackBehaviours:
                          type: object
                          properties:
                            skipUnscreenableTransaction:
                              type: boolean
                            skipUnsupportedNetwork:
                              type: boolean
                            skipUnsupportedAsset:
                              type: boolean
                            skipChainalysisFailure:
                              type: boolean
                          required:
                            - skipUnscreenableTransaction
                            - skipUnsupportedNetwork
                            - skipUnsupportedAsset
                            - skipChainalysisFailure
                      required:
                        - alerts
                        - exposures
                        - addresses
                        - fallbackBehaviours
                      additionalProperties: false
                  required:
                    - kind
                    - configuration
                  additionalProperties: false
                  description: >+

                    <Info>

                    This rule can only be used once the Chainalysis integration
                    is activated from the Dfns dashboard settings. (see more on
                    [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                    integration page).

                    </Info>


                    It's a rule based on
                    [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                    KYT integration (Know-Your-Transaction). Upon transfer
                    attempt, we will first register the transfer with
                    Chainalysis (as a ["withdrawal
                    attempt"](https://docs.chainalysis.com/api/kyt/#registration-register-a-withdrawal-attempt)),
                    and fetch the screening results (alerts, exposures,
                    addresses detected). Based on the results, and the
                    configuration of this rule, the policy will be triggered.


                    It's called "Pre"-screening, because the scanned transaction
                    is not on chain yet, it's still a transaction attempt
                    (before the transaction actually make it on chain).


                    ```json

                    {
                      "rule": {
                        "kind": "ChainalysisTransactionPrescreening",
                        "configuration": {
                          "alerts": {
                            "alertLevel": "LOW",
                            "categoryIds": []
                          },
                          "exposures": {
                            "direct": {
                              "categoryIds": []
                            }
                          },
                          "addresses": {
                            "categoryIds": []
                          },
                          "fallbackBehaviours": {
                            "skipUnscreenableTransaction": false,
                            "skipUnsupportedNetwork": false,
                            "skipUnsupportedAsset": false,
                            "skipChainalysisFailure": false
                          }
                        }
                      }
                    }

                    ```


                    **Configuration**


                    | Property | Type | Description |

                    | --- | --- | --- |

                    | `alerts`<br><br>`.alertLevel`* | `string` | Minimum alert
                    level above which the rule should trigger, if any [alert is
                    returned in Chainalysis
                    results](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-alerts).
                    Can be `LOW`, `MEDIUM`, `HIGH`, or `SEVERE` |

                    | `alerts`<br><br>`.categoryIds`* | list of integers | List
                    of Chainalysis category IDs (see
                    [here](https://docs.chainalysis.com/api/kyt/#categories)).
                    If you leave this list empty, alerts of any category will
                    trigger the rule. Otherwise, if you only want the rule to
                    trigger on specific categories, you can specify some in the
                    list. |

                    | `exposures`<br><br>`.direct`<br><br>`.categoryIds`* | list
                    of integers | List of Chainalysis category IDs (see
                    [here](https://docs.chainalysis.com/api/kyt/#categories)).
                    If you leave this list empty, a [direct
                    exposure](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-direct-exposure)
                    of any category detected by chainalysis will trigger the
                    rule. Otherwise, if you only want the rule to trigger on
                    specific categories, you can specify some in the list. |

                    | `addresses`<br><br>`.categoryIds`* | list of integers |
                    List of Chainalysis category IDs (see
                    [here](https://docs.chainalysis.com/api/kyt/#categories)).
                    If you leave this list empty, an
                    [address](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-address-identifications)
                    of any category identified by chainalysis will trigger the
                    rule. Otherwise, if you only want the rule to trigger on
                    specific categories, you can specify some in the list. |

                    |
                    `fallbackBehaviours`<br><br>`.skipUnscreenableTransaction`*
                    | boolean | Behaviour if the wallet activity is not
                    screenable (eg. if it's a signature request of a hash). If
                    true, a transaction which is "unscreenable" will just be
                    skipped, and policy will not trigger |

                    | `fallbackBehaviours.skipUnsupportedNetwork`* | boolean |
                    Behaviour if the wallet activity is on a network not
                    supported by chainalysis, or not yet supported in the
                    dfns-chainalysis integration. If true, an unsupported
                    network will just be skipped, and policy will not trigger |

                    | `fallbackBehaviours.skipUnsupportedAsset`* | boolean |
                    Behaviour if the wallet activity is with a asset not
                    supported by chainalysis, or not yet supported in the
                    dfns-chainalysis integration. If true, an unsupported asset
                    will just be skipped, and policy will not trigger |

                    | `fallbackBehaviours.skipChainalysisFailure`* | boolean |
                    Behaviour if any issue with Chainalysis calls (timeout,
                    results took too long, rate limiting errors, any error). If
                    true, will skip if any error happens |

                  title: ChainalysisTransactionPrescreening
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - GlobalLedgerTransactionPrescreening
                    configuration:
                      type: object
                      properties:
                        riskScoreThreshold:
                          type: integer
                          minimum: 0
                          maximum: 100
                          description: >-
                            Risk score threshold (0-100). Policy triggers if
                            address/transaction risk score >= threshold
                        fallbackBehaviours:
                          type: object
                          properties:
                            skipUnscreenableTransaction:
                              type: boolean
                              description: >-
                                skip all wallet requests that cannot be screened
                                (eg. raw signatures)
                            skipUnsupportedNetwork:
                              type: boolean
                              description: >-
                                skip transfer requests to a network not
                                supported yet in our GlobalLedger integration
                            skipUnsupportedAsset:
                              type: boolean
                              description: >-
                                skip transfer requests of an asset not supported
                                by our GlobalLedger integration
                            skipGlobalLedgerFailure:
                              type: boolean
                              description: skips any errors from GlobalLedger API request
                          required:
                            - skipUnscreenableTransaction
                            - skipUnsupportedNetwork
                            - skipUnsupportedAsset
                            - skipGlobalLedgerFailure
                      required:
                        - riskScoreThreshold
                        - fallbackBehaviours
                      additionalProperties: false
                  required:
                    - kind
                    - configuration
                  additionalProperties: false
                  description: >-
                    This rule uses GlobalLedger KYT for pre-screening outgoing
                    transfers by checking the destination address risk score.


                    Upon transfer attempt, we will query GlobalLedger's address
                    risk API, and check if the risk score (0-100) is at or above
                    the configured threshold, or if any alerts show up. If so,
                    the policy will be triggered.


                    It's called "Pre"-screening, because the scanned transaction
                    is not on chain yet, it's still a transaction attempt.
                  title: GlobalLedgerTransactionPrescreening
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - TravelRuleTransactionPrescreening
                    configuration:
                      type: object
                      properties:
                        vendor:
                          type: string
                          enum:
                            - Notabene
                        autoTriggerTimeoutSeconds:
                          type: integer
                          minimum: 0
                        autoClearAfterDeliveredTimeoutSeconds:
                          type: integer
                          minimum: 0
                      required:
                        - vendor
                        - autoTriggerTimeoutSeconds
                      additionalProperties: false
                  required:
                    - kind
                    - configuration
                  additionalProperties: false
                  description: >-
                    This rule can only be used once the Notabene integration is
                    activated from the Dfns dashboard settings (see more on
                    [Notabene](https://docs.dfns.co/integrations/travel-rule/notabene)
                    integration page).
                        
                        It's a rule based on [Notabene Travel Rule](https://docs.dfns.co/integrations/travel-rule/notabene) integration. It ***ONLY*** applies to Dfns [Transfer Asset](https://docs.dfns.co/api-reference/wallets/transfer-asset) Api Calls. It is NOT supported for Transfers initiated via the dashboard. Upon transfer attempt with an optional [TravelRule](https://docs.dfns.co/api-reference/wallets/transfer-asset#body-travel-rule) payload, we will call Notabene's APIs on your behalf to both confirm the validity of the travel rule message and submit it for processing. Dfns then waits for a response from the counterparty (for custodial transfers) or Notabene (for non-custodial transfers).

                    It's called "Pre"-screening, because the transaction is not
                    on chain yet, it's still a transaction attempt (before the
                    transaction actually make it on chain).
                  title: TravelRuleTransactionPrescreening
            action:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - RequestApproval
                    approvalGroups:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          quorum:
                            type: integer
                            minimum: 1
                          approvers:
                            type: object
                            properties:
                              userId:
                                type: object
                                properties:
                                  in:
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                    minItems: 1
                                    maxItems: 100
                                required:
                                  - in
                                additionalProperties: false
                            additionalProperties: false
                          initiatorCanApprove:
                            type: boolean
                            description: >-
                              Whether the initiator of the activity can
                              participate in the approval.
                          serviceAccountsCanApprove:
                            type: boolean
                            description: >-
                              Whether service accounts can participate in the
                              approval for this group.
                        required:
                          - quorum
                          - approvers
                        additionalProperties: false
                      minItems: 1
                    autoRejectTimeout:
                      type:
                        - integer
                        - 'null'
                      minimum: 1
                  required:
                    - kind
                    - approvalGroups
                  additionalProperties: false
                  description: >-

                    This action means that activity will first require an
                    Approval process to be completed before it can  be executed
                    (or be aborted if someone rejects it during the approval
                    process).


                    One or several groups of approvers need to be specified.
                    These groups define who is allowed to approve / reject an
                    activity.


                    The activity will only be executed if all approver groups
                    reach their "quorum" of approvals. Otherwise, if any one
                    user within any approver group rejects, then the activity is
                    aborted and the call is not executed.


                    The example below shows a `RequestApproval` action,
                    configured with one approval group requiring 2 approvals
                    amongst three specific users.


                    ```json

                    {
                      "action": {
                        "kind": "RequestApproval",
                        "autoRejectTimeout": 60, // minutes
                        "approvalGroups": [
                          {
                            "name": "Admins",
                            "quorum": 2, // only 2 approvers required in that group 
                            "approvers": {
                              "userId": {
                                "in": ["us-...1", "us-...2", "us-...3"],
                              }
                            }
                          }
                        ],

                      }
                    }

                    ```


                    **Don't lock yourself up**


                    By default, users cannot approve an activity they initiated
                    themselves, even if they are in an approval group. To allow
                    this, you must set `initiatorCanApprove: true`.


                    *Example 1:* For any wallet transfer, a policy is setup to
                    require approval from **1 specific admin user** (eg. the
                    CEO). `initiatorCanApprove` was not set to `true`. If the
                    CEO himself initiates a transfer, no-one can approve his
                    transfer and it's stuck.


                    *Example 2:* Company has only 3 users. A policy is setup to
                    require approval from **any 3 users** (`quorum: 3`) for any
                    modification of a policy. `initiatorCanApprove` was not set
                    to `true`. In this case, they are locked, and the policy
                    cannot be modified: whoever requests a modification cannot
                    approve, and the policy is therefore always missing one
                    approver. To unlock, they would need to invite a new user
                    and give him the rights to approve as well.
                        
                  title: RequestApproval
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Block
                  required:
                    - kind
                  additionalProperties: false
                  description: >
                    This action means that the activity will be blocked if the
                    policy is triggered.


                    ```json

                    {
                      "action": {
                        "kind": "Block"
                      }
                    }

                    ```
                  title: Block
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - NoAction
                  required:
                    - kind
                  additionalProperties: false
                  description: |2-

                        This action kind means that nothing will happen after policy rule evaluation. It's meant to be used with policy rules "`ChainalysisTransactionPrescreening`" or "`ChainalysisTransactionScreening`". This action is for when you just want the KYT analysis rule to be run, and then if triggered, those result returned in a `policy.triggered` [Webhook Event](https://docs.dfns.co/api-reference/webhook-events).

                    ```json
                    {
                      "action": {
                        "kind": "NoAction"
                      }
                    }
                    ```
                        
                  title: NoAction
            filters:
              type: object
              properties:
                walletId:
                  type: object
                  properties:
                    in:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                  required:
                    - in
                  additionalProperties: false
                walletTags:
                  type: object
                  properties:
                    hasAny:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                    hasAll:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                  additionalProperties: false
              additionalProperties: false
          required:
            - id
            - name
            - status
            - activityKind
            - rule
            - action
          additionalProperties: false
          title: Wallets:Sign
        - type: object
          properties:
            id:
              type: string
            name:
              type: string
            status:
              type: string
              enum:
                - Active
                - Archived
            dateCreated:
              type: string
            dateUpdated:
              type: string
            activityKind:
              type: string
              enum:
                - Wallets:IncomingTransaction
            rule:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - ChainalysisTransactionScreening
                    configuration:
                      type: object
                      properties:
                        alerts:
                          type: object
                          properties:
                            alertLevel:
                              type: string
                              enum:
                                - LOW
                                - MEDIUM
                                - HIGH
                                - SEVERE
                            categoryIds:
                              type: array
                              items:
                                type: integer
                                exclusiveMinimum: 0
                          required:
                            - alertLevel
                            - categoryIds
                        exposures:
                          type: object
                          properties:
                            direct:
                              type: object
                              properties:
                                categoryIds:
                                  type: array
                                  items:
                                    type: integer
                                    exclusiveMinimum: 0
                              required:
                                - categoryIds
                          required:
                            - direct
                        userIdTemplate:
                          type: string
                          minLength: 1
                          maxLength: 50
                          pattern: >-
                            ^([a-zA-Z0-9_:-]|{wallet\.id}|{wallet\.externalId})+$
                          default: dfns
                          description: >-
                            **Deprecated** — set `userIdTemplate` on the
                            Chainalysis integration setting instead; when set
                            there, the integration-level template takes
                            precedence over this one.


                            Value sent to Chainalysis as the "user ID". Used by
                            Chainalysis for grouping transaction screenings.
                              
                            This template can include variables, included in
                            brackets. The following variables are currently
                            supported:  `{wallet.id}` and `{wallet.externalId}`.

                            As an example, if you set `userIdTemplate:
                            "dfns:{wallet.id}_{wallet.externalId}"`, when your
                            wallet receives a transaction that gets screened by
                            a Chainalysis policy, the "user ID" sent to
                            Chainalysis will be `dfns:wa-xxx_yyy` (`wa-xxx`
                            being the wallet ID, and `yyy` being the wallet
                            external ID).
                        fallbackBehaviours:
                          type: object
                          properties:
                            skipUnscreenableTransaction:
                              type: boolean
                            skipUnsupportedNetwork:
                              type: boolean
                            skipUnsupportedAsset:
                              type: boolean
                            skipChainalysisFailure:
                              type: boolean
                          required:
                            - skipUnscreenableTransaction
                            - skipUnsupportedNetwork
                            - skipUnsupportedAsset
                            - skipChainalysisFailure
                      required:
                        - alerts
                        - exposures
                        - fallbackBehaviours
                      additionalProperties: false
                  required:
                    - kind
                    - configuration
                  additionalProperties: false
                  description: >

                    <Info>

                    This rule can only be used once the Chainalysis integration
                    is activated from the Dfns dashboard settings. (see more on
                    [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                    integration page).

                    </Info>


                    This rule can be used on a policy of `activityKind` =
                    `Wallets:IncomingTransaction`, and with the action kind
                    `NoAction`. It's a rule based on Chainalysis KYT integration
                    (Know-Your-Transaction). Upon an incoming transaction
                    detectedby our indexers, we will [register the transfer with
                    Chainalysis](https://docs.chainalysis.com/api/kyt/#registration-register-a-transfer),
                    and fetch the results of the analysis (alerts & exposures
                    detected). Based on the results, and the configuration of
                    this rule, the policy will be triggered.


                    The shape of the rule is almost like the
                    `ChainalysisTransactionPrescreening` rule, expect the the
                    `address` property is not supported.


                    ```json

                    {
                      "rule": {
                        "kind": "ChainalysisTransactionPrescreening",
                        "configuration": {
                          "alerts": {
                            "alertLevel": "LOW",
                            "categoryIds": []
                          },
                          "exposures": {
                            "direct": {
                              "categoryIds": []
                            }
                          },
                          "fallbackBehaviours": {
                            "skipUnscreenableTransaction": false,
                            "skipUnsupportedNetwork": false,
                            "skipUnsupportedAsset": false,
                            "skipChainalysisFailure": false
                          }
                        }
                      }
                    }

                    ```


                    **Configuration**


                    Please refer to the configuration for the
                    `ChainalysisTransactionPrescreening` rule.
                  title: ChainalysisTransactionScreening
            action:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - NoAction
                  required:
                    - kind
                  additionalProperties: false
                  description: |2-

                        This action kind means that nothing will happen after policy rule evaluation. It's meant to be used with policy rules "`ChainalysisTransactionPrescreening`" or "`ChainalysisTransactionScreening`". This action is for when you just want the KYT analysis rule to be run, and then if triggered, those result returned in a `policy.triggered` [Webhook Event](https://docs.dfns.co/api-reference/webhook-events).

                    ```json
                    {
                      "action": {
                        "kind": "NoAction"
                      }
                    }
                    ```
                        
                  title: NoAction
            filters:
              type: object
              properties:
                walletId:
                  type: object
                  properties:
                    in:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                  required:
                    - in
                  additionalProperties: false
                walletTags:
                  type: object
                  properties:
                    hasAny:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                    hasAll:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 1
                      maxItems: 100
                  additionalProperties: false
              additionalProperties: false
          required:
            - id
            - name
            - status
            - activityKind
            - rule
            - action
          additionalProperties: false
          title: Wallets:IncomingTransaction
    TransferRequest:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^xfr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Transfer id.
          example: xfr-20g4k-nsdpo-mg6arrifgvid4orn
        walletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: The source wallet for this tranfer.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        network:
          allOf:
            - $ref: '#/components/schemas/Network'
            - description: The blockchain network this transfer is on.
        requester:
          $ref: '#/components/schemas/Requester'
        requestBody:
          oneOf:
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Native
                to:
                  type: string
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: >-
                    The amount of native tokens to transfer in minimum
                    denomination.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag (supported networks only).
                priority:
                  type: string
                  enum:
                    - Slow
                    - Standard
                    - Fast
                  description: >-
                    The priority that determines the fees paid for the transfer.
                    All EVM compatible networks and Bitcoin support `priority`.
                    Not supported for other networks. It uses the [estimate
                    fees](https://docs.dfns.co/api-reference/networks/estimate-fees)
                    API to calculate the transfer fees. When not specified,
                    defaults to `Standard` priority.
                createDestinationAccount:
                  type: boolean
                  description: >-
                    Whether to create the destination account on chains that
                    require account creation (e.g., Stellar). Only valid for
                    chains that require the receiver account to exist before
                    transfer.
                offer:
                  type: boolean
                  description: >-
                    Optional field for Canton, if true it will create a transfer
                    offer.
                expiresAt:
                  type: string
                  format: date-time
                  description: >-
                    Optional field for Canton, especially useful in the context
                    of offers
                useDurableNonce:
                  type: boolean
                  description: >-
                    Optional Solana-only flag. When `true` the SOL transfer is
                    built as a durable-nonce transaction using one of the
                    wallet's nonce accounts (picked server-side). Use this for
                    offline-signing flows where the construct → broadcast gap
                    may exceed 90 seconds. The wallet's nonce account pool must
                    be pre-populated via `POST /wallets/{id}/transactions` with
                    `kind: CreateSolanaNonceAccounts`.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                gasLimit:
                  type: string
                gasPrice:
                  type: string
                maxFeePerGas:
                  type: string
                maxPriorityFeePerGas:
                  type: string
                feeRate:
                  type: string
                inputs:
                  type: array
                  items:
                    type: object
                    properties:
                      txid:
                        type: string
                      vout:
                        type: integer
                        minimum: 0
                      value:
                        type: integer
                        exclusiveMinimum: 0
                    required:
                      - txid
                      - vout
                      - value
              required:
                - kind
                - to
                - amount
              additionalProperties: false
              title: Native Asset
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Erc20
                contract:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: The ERC-20 contract address.
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                priority:
                  type: string
                  enum:
                    - Slow
                    - Standard
                    - Fast
                  description: The priority that determines the fees paid for the transfer.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                gasLimit:
                  type: string
                gasPrice:
                  type: string
                maxFeePerGas:
                  type: string
                maxPriorityFeePerGas:
                  type: string
              required:
                - kind
                - contract
                - to
                - amount
              additionalProperties: false
              title: EVM Fungible Token (ERC-20)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Aip21
                metadata:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{64}$
                  description: 'The asset metadata address. '
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{64}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - metadata
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer Aptos fungible asset that implement the [AIP-21
                specification](https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-21.md).
              title: Aptos Fungible Asset (AIP-21)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Asa
                assetId:
                  type: string
                  pattern: ^\d+$
                  description: 'The token asset id. '
                to:
                  type: string
                  pattern: ^[A-Z0-9]{58}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - assetId
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer Algorand standard assets, or
                [ASAs](https://developer.algorand.org/docs/get-details/asa/).
              title: Algorand Standard Asset
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Asset
                assetId:
                  type: string
                  description: 'The token asset id. '
                to:
                  type: string
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - assetId
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer Cardano assets following [Mary
                update](https://docs.cardano.org/about-cardano/evolution/upgrades/mary)
              title: Cardano Asset
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Cip56
                instrumentAdmin:
                  type: string
                  pattern: ^[a-zA-Z0-9-_]*::1220[a-f0-9]{64}$
                  description: The instrument admin address.
                instrumentId:
                  type: string
                  description: The instrument id.
                to:
                  type: string
                  pattern: ^[a-zA-Z0-9-_]*::1220[a-f0-9]{64}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                offer:
                  type: boolean
                  description: If true it will create a transfer offer.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - instrumentAdmin
                - instrumentId
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer standard tokens that implement the [CIP-56
                specification](https://github.com/global-synchronizer-foundation/cips/blob/main/cip-0056/cip-0056.md).
              title: Canton Standard Token (CIP-56)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Cis2
                to:
                  type: string
                  pattern: ^[1-9A-HJ-NP-Za-km-z]{50}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                tokenAddress:
                  type: string
                  description: >-
                    The token address following
                    (https://proposals.concordium.com/CIS/cis-2.html#token-address).
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - to
                - amount
                - tokenAddress
              additionalProperties: false
              description: >-
                Transfer tokens that implement the [CIS-2
                specification](https://proposals.concordium.software/CIS/cis-2.html).
              title: CIS-2 Standard
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Cis7
                to:
                  type: string
                  pattern: ^[1-9A-HJ-NP-Za-km-z]{50}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                tokenId:
                  type: string
                  description: The Cis7 token identifier.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - to
                - amount
                - tokenId
              additionalProperties: false
              description: >-
                Transfer Concordium protocol level tokens.
                (https://proposals.concordium.com/CIS/cis-7.html#cis-7-protocol-level-tokens-plts)
              title: Concordium Protocol Level Token (CIS-7)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Coin
                coin:
                  type: string
                  description: The coin identifier.
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{64}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - coin
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer Sui fungible assets that implement [coin
                standard](https://docs.sui.io/standards/coin).
              title: Sui Coin
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Erc721
                contract:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: The ERC-721 contract address.
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: The destination address.
                tokenId:
                  type: string
                  pattern: ^\d+$
                  description: The token to transfer.
                priority:
                  type: string
                  enum:
                    - Slow
                    - Standard
                    - Fast
                  description: The priority that determines the fees paid for the transfer.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - contract
                - to
                - tokenId
              additionalProperties: false
              description: >-
                Transfer non-fungible tokens that implement the [ERC-721
                specification](https://eips.ethereum.org/EIPS/eip-721)
              title: EVM Non Fungible Token (ERC-721)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Erc7984
                contract:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: The ERC-7984 confidential token contract address.
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                priority:
                  type: string
                  enum:
                    - Slow
                    - Standard
                    - Fast
                  description: The priority that determines the fees paid for the transfer.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - contract
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer confidential tokens that implement the [ERC-7984
                specification](https://eips.ethereum.org/EIPS/eip-7984). The
                transfer amount is encrypted on-chain using Fully Homomorphic
                Encryption (FHE).
              title: EVM Confidential Token (ERC-7984)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Hip17
                tokenId:
                  type: string
                  description: The token to transfer.
                serialNumber:
                  type: string
                  pattern: ^\d+$
                to:
                  type: string
                  pattern: >-
                    ^(0x[0-9a-fA-F]{40}|0\.0\.(\d+|[0-9a-fA-F]{40}|[0-9a-fA-F]{64,}))$
                  description: The destination address.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - tokenId
                - serialNumber
                - to
              additionalProperties: false
              description: ''
              title: Hedera Non-Fungible Token (HIP-17)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Hts
                tokenId:
                  type: string
                  description: The token to transfer.
                to:
                  type: string
                  pattern: >-
                    ^(0x[0-9a-fA-F]{40}|0\.0\.(\d+|[0-9a-fA-F]{40}|[0-9a-fA-F]{64,}))$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - tokenId
                - to
                - amount
              additionalProperties: false
              description: ''
              title: Hedera Tokens (HTS)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Iou
                currency:
                  type: string
                  description: The IOU currency code.
                issuer:
                  type: string
                  pattern: ^r[1-9A-HJ-NP-Za-km-z]{24,34}$
                  description: The IOU issuer address.
                to:
                  type: string
                  pattern: ^r[1-9A-HJ-NP-Za-km-z]{24,34}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - currency
                - issuer
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer XRPL IOU tokens with specified currency and issuer.
                (https://xrpl.org/docs/concepts/tokens/fungible-tokens/trust-line-tokens)
              title: XRPL IOU Token
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Sep41
                issuer:
                  type: string
                  pattern: ^(G[A-Z0-9]{55}|M[A-Z0-9]{68})$
                  description: The asset issuer address.
                assetCode:
                  type: string
                  description: The asset code.
                to:
                  type: string
                  pattern: ^(G[A-Z0-9]{55}|M[A-Z0-9]{68})$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - issuer
                - assetCode
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer classic [Stellar
                Assets](https://developers.stellar.org/docs/issuing-assets/anatomy-of-an-asset).
                They all implement the [SEP-41 token
                interface](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0041.md).
              title: Stellar Classic Assets (SEP-41)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Snip2
                contract:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{64}$
                  description: The SNIP-2 (ERC-20-like) contract address.
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{64}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - contract
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer fungible tokens that implement the [SNIP-2
                (ERC-20-like)
                specification](https://github.com/starknet-io/SNIPs/blob/ea46a8777d8c8d53a43f45b7beb1abcc301a1a69/SNIPS/snip-2.md).
              title: Starknet SNIP-2 (ERC-20 like)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Snip3
                contract:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{64}$
                  description: The SNIP-3 (ERC-721) contract address.
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{64}$
                  description: The destination address.
                tokenId:
                  type: string
                  pattern: ^\d+$
                  description: The token to transfer.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - contract
                - to
                - tokenId
              additionalProperties: false
              description: >-
                Transfer non-fungible tokens that implement the [SNIP-3
                (ERC-721-like)
                specification](https://github.com/starknet-io/SNIPs/blob/ea46a8777d8c8d53a43f45b7beb1abcc301a1a69/SNIPS/snip-3.md)
              title: Starknet SNIP-3 (ERC-721-like)
            - type: object
              properties:
                kind:
                  type: string
                  enum: &ref_119
                    - Spl
                    - Spl2022
                to:
                  type: string
                  pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                mint:
                  type: string
                  pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                  description: The mint account address.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag.
                createDestinationAccount:
                  type: boolean
                  description: >-
                    If `true`, pay to create the associated token account for
                    the recipient if it doesn't exist. Defaults to `false`.
                useDurableNonce:
                  type: boolean
                  description: >-
                    Optional. When `true` the SPL transfer is built as a
                    durable-nonce transaction using one of the wallet's nonce
                    accounts (picked server-side). The wallet's nonce account
                    pool must be pre-populated via `POST
                    /wallets/{id}/transactions` with `kind:
                    CreateSolanaNonceAccounts`.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - to
                - amount
                - mint
              additionalProperties: false
              description: >-
                Transfer [SPL tokens](https://spl.solana.com/token) or [SPL 2022
                tokens](https://spl.solana.com/token-2022).
              title: Solana Program Library Token (SPL and SPL 2022)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Tep74
                to:
                  type: string
                  pattern: ^(?:[A-Za-z0-9\-_]{48}|\d+:[a-fA-F0-9]{64})$
                  description: The destination address.
                master:
                  type: string
                  pattern: ^(?:[A-Za-z0-9\-_]{48}|\d+:[a-fA-F0-9]{64})$
                  description: The Jetton master contract address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - to
                - master
                - amount
              additionalProperties: false
              description: >-
                Transfer
                [Jetton](https://github.com/ton-blockchain/TEPs/blob/master/text/0074-jettons-standard.md)
                tokens.
              title: TON Jetton (TEP-74)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Trc10
                tokenId:
                  type: string
                  pattern: ^\d+$
                  description: The token ID.
                to:
                  type: string
                  pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - tokenId
                - to
                - amount
              additionalProperties: false
              description: Transfer TRON's TRC-10 fungible tokens
              title: TRON Native Fungible Token (TRC-10)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Trc20
                contract:
                  type: string
                  pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                  description: The smart contract address.
                to:
                  type: string
                  pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - contract
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer fungible tokens that implement the TRC-20 smart
                contract specification.
              title: TRON Smart Contract Fungible Token (TRC-20)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Trc721
                contract:
                  type: string
                  pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                  description: The smart contract address.
                to:
                  type: string
                  pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                  description: The destination address.
                tokenId:
                  type: string
                  pattern: ^\d+$
                  description: The token to transfer.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - contract
                - to
                - tokenId
              additionalProperties: false
              description: >-
                Transfer non-fungible tokens that implement the TRC-721 smart
                contract specification.
              title: TRON Non Fungible Token (TRC-721)
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Xls33
                issuanceId:
                  type: string
                  description: The XLS-33 issuance identifier.
                to:
                  type: string
                  pattern: ^r[1-9A-HJ-NP-Za-km-z]{24,34}$
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount of tokens to transfer in minimum denomination.
                memo:
                  anyOf:
                    - type: string
                      maxLength: 64
                      pattern: ^[a-zA-Z0-9]+$
                    - type: string
                      enum:
                        - ''
                  description: The memo or destination tag.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key. (read more
                    [here](https://docs.dfns.co/api-reference/idempotency))
                travelRule:
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Notabene
                        beneficiaryVASPdid:
                          type: string
                        beneficiaryProof:
                          type: object
                          additionalProperties: {}
                        originator:
                          type: object
                          additionalProperties: {}
                        beneficiary:
                          type: object
                          additionalProperties: {}
                      required:
                        - kind
                        - originator
                        - beneficiary
                      additionalProperties: false
                      title: Notabene Travel Rule
                  description: >-
                    A travel rule payload to associate with the transfer. (read
                    more [here](https://docs.dfns.co/features/travel-rule))
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the fee sponsor that will be used to pay for your
                    transfer fees, it might not be available for all
                    blockchains. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
              required:
                - kind
                - issuanceId
                - to
                - amount
              additionalProperties: false
              description: >-
                Transfer XRPL XLS-33 Token with specified issuance ID.
                (https://xrpl.org/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens
              title: XRPL XLS-33 Token
        metadata:
          type: object
          properties:
            asset:
              type: object
              properties:
                symbol:
                  type: string
                decimals:
                  type: integer
                  description: >-
                    Number of decimals used by the asset, see [this
                    guide](https://docs.dfns.co/guides/developers/displaying-balances)
                    for more details.
                verified:
                  type: boolean
                  description: Whether the asset is verified by DFNS as legitimate.
                quotes:
                  type: object
                  properties:
                    EUR: &ref_55
                      type: number
                    USD: *ref_55
                  description: Corresponding asset price in USD at the time of transfer.
          required:
            - asset
          description: Additional metadata about the transfered asset.
        status:
          type: string
          enum:
            - Pending
            - Executing
            - Broadcasted
            - Confirmed
            - Failed
            - Rejected
          description: >-
            Transfer status.


            | Status | Definition |

            | --- | --- |

            | `Pending` | The request is pending approval due to a policy
            applied to the wallet. |

            | `Executing` | The request is approved and is in the process of
            being executed. note this status is only set for a short time
            between pending and broadcasted. |

            | `Broadcasted` | The transaction has been successfully written to
            the mempool. |

            | `Confirmed` | The transaction has been confirmed on-chain by our
            indexing pipeline. |

            | `Failed` | Indicates either system failure to complete the request
            or the transaction failed on chain. |

            | `Rejected` | The request has been rejected by a policy approval
            action. |
        reason:
          type: string
          description: The reason for a failed transfer.
        txHash:
          type: string
          description: The blockchain transaction hash for this transfer.
        fee:
          type: string
          description: The fee paid for this transfer in minimum denomination.
        dateRequested:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the transfer was requested.
          example: 2023-04-14T20:41:28.715Z
        datePolicyResolved:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the transfer was approved by policy reviewers.
          example: 2023-04-14T20:41:28.715Z
        dateBroadcasted:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the transfer was broadcasted to the blockchain.
          example: 2023-04-14T20:41:28.715Z
        dateConfirmed:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the transfer was confirmed on chain.
          example: 2023-04-14T20:41:28.715Z
        approvalId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: The id of the approval request if this transfer triggered a policy.
          example: ap-2a9in-tt2a1-983lho480p35ejd0
        externalId:
          type: string
          description: The external id provided at transfer creation time.
        feeSponsorId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: The fee sponsor id used to pay for the transfer fees.
          example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
        replacementId:
          type: string
          description: >-
            The id of the replacement transaction (cancel or speed-up) issued
            for this transfer.
        details:
          type: object
          additionalProperties: {}
          description: >-
            Structured representation of the data used to construct the
            signature (e.g. nonce, gas parameters). Shape is blockchain
            specific.
      required:
        - id
        - walletId
        - network
        - requester
        - requestBody
        - metadata
        - status
        - dateRequested
    TransactionRequest:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^tx-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Transaction id.
          example: tx-583hu-sp2p7-slvb9nqpa3hd8bus
        walletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Wallet id.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        network:
          $ref: '#/components/schemas/Network'
        requester:
          $ref: '#/components/schemas/Requester'
        requestBody:
          oneOf:
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Transaction
                transaction:
                  anyOf:
                    - type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                    - type: object
                      properties: {}
                  description: >-
                    The unsigned hex encoded transaction or JSON transactions
                    for compatible networks.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - transaction
              additionalProperties: false
              description: >
                Signs an unsigned transaction and broadcasts it to chain.

                For EVM transactions, you may use JSON objects:


                | Field                |
                Description                                                                                                                                                                                                                        
                | Type - Optional              |

                |----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|

                | type                 | Ethereum transaction type. 0 for legacy
                transaction; 2 for EIP-1559 transaction; 4 for EIP-7702
                transaction. Default is 2 if
                undefined.                                                                                            
                | Integer (optional)           |

                | to                   | The destination address or target
                contract. Leave undefined when the transaction is a contract
                deployment.                                                                                                                         
                | String (optional)            |

                | value                | The amount of native tokens to transfer
                in minimum
                denomination.                                                                                                                                                                   
                | String (optional)            |

                | data                 | ABI encoded function call data in hex
                format. Can also be the encoded smart contract data when the
                transaction is a contract
                deployment.                                                                                           
                | String (optional)            |

                | nonce                | The transaction number to guarantee
                idempotency. If omitted, it will be provided automatically. Note
                the same nonce can be submitted multiple times with a higher
                maxFeePerGas to "overwrite" existing transactions in the
                mempool. | Integer or String (optional) |

                | gasLimit             | The maximum amount of gas that can be
                spent for executing the transaction. If omitted, it will be
                calculated
                automatically.                                                                                                        
                | String (optional)            |

                | gasPrice             | The amount of per unit gas. Only valid
                for a type 0 legacy transaction. If omitted, it will be
                calculated
                automatically.                                                                                                           
                | String (optional)            |

                | maxFeePerGas         | The maximum amount of per unit gas
                willing to be paid for the transaction. Valid for type 2 and
                type 4 transactions. If omitted, it will be calculated
                automatically.                                                              
                | String (optional)            |

                | maxPriorityFeePerGas | The maximum amount of per unit gas to
                be included as a tip to the validator. Valid for type 2 and type
                4 transactions. If omitted, it will be calculated
                automatically.                                                            
                | String (optional)            |

                | authorizationList    | A list that indicates what code the
                signer of each authorization desires to execute in the context
                of their EOA. Only valid for type 4
                transaction.                                                                                
                | Authorization (optional)     |


                For Starknet transactions, you may use invocation request
                objects
                (https://github.com/starkware-libs/starknet-specs/blob/v0.8.1/api/starknet_api_openrpc.json#L2621):


                | Field                         |
                Description                                                                                        
                | Type - Optional                  |

                |-------------------------------|-----------------------------------------------------------------------------------------------------|----------------------------------|

                | calldata                      | **Array** of encoded function
                call
                parameters                                                      
                | **Array of Strings** (required)  |

                | nonce                         | Transaction nonce in hex
                format                                                                    
                | String (required)                |

                | version                       | Transaction version in hex
                format. Typically "0x3" for current
                transactions                         | String
                (required)                |

                | resourceBounds                | Gas bounds for L1, L2, and L1
                data
                gas                                                             
                | Object (required)                |

                | ↳ resourceBounds.l1Gas        | L1 gas configuration with
                maxAmount and
                maxPricePerUnit                                             |
                Object (required)                |

                | ↳ resourceBounds.l2Gas        | L2 gas configuration with
                maxAmount and
                maxPricePerUnit                                             |
                Object (required)                |

                | ↳ resourceBounds.l1DataGas    | L1 data gas configuration with
                maxAmount and
                maxPricePerUnit                                        | Object
                (required)                |

                | tip                           | Transaction tip in hex format.
                Typically
                "0x0"                                                      |
                String (required)                |

                | paymasterData                 | Paymaster data
                array                                                                               
                | Array of Strings (required)      |

                | accountDeploymentData         | Account deployment data
                array                                                                      
                | Array of Strings (required)      |

                | nonceDataAvailabilityMode     | Data availability mode for
                nonce. Typically "L1" for
                now                                            | String
                (required)                |

                | feeDataAvailabilityMode       | Data availability mode for
                fee. Typically "L1" for
                now                                              | String
                (required)                |


                For Concordium transactions, you may use JSON objects (from
                https://github.com/Concordium/concordium-node-sdk-js/blob/sdk/12.0.0-alpha.3/packages/sdk/src/transactions/Transaction.ts#L102)


                | Field                            |
                Description                                                                                                                                                 
                | Type - Optional

                |----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|

                | Header                           | Transaction header for the
                intermediary state of account transactions, i.e. prior to being
                signing.                                                         
                | Object (required)               |

                | ↳ Header.executionEnergyAmount   | The destination address or
                target contract. Leave undefined when the transaction is a
                contract
                deployment.                                                   |
                String/Number/BigInt (required) |

                | ↳ Header.numSignatures           | The number of signatures
                the transaction can hold. If "undefined", this will be defined
                at the time of
                signing                                               | Integer
                (optional)              |

                | ↳ Header.sender                  | The account address that is
                source of this
                transaction                                                                                                      
                | String (optional)               |

                | ↳ Header.nonce                   | The account
                nonce                                                                                                                                           
                | String/Number/BigInt (optional) |

                | ↳ Header.expiry                  | expiration of the
                transaction                                                                                                                               
                | Integer (optional)              |

                | Payload                          | The transaction account
                payload in JSON format
                (https://github.com/Concordium/concordium-node-sdk-js/blob/main/packages/sdk/src/accountTransactions.ts#L646)
                | Object (required)               |




                ```json

                {
                  "kind": "Transaction",
                  "transaction": {
                    "to": "0x00fb58432ef9d418bf6688bcf0a226d2fcaa18e2",
                    "data": "0x40d097c3000000000000000000000000d2f77f85a50cdd650ca562f3a180284e1d5b4934",
                    "maxFeePerGas": "1626000000000",
                    "maxPriorityFeePerGas": "1332000000000"
                  }
                }

                ```


                ```json

                {
                  "kind": "Transaction",
                  "transaction": {
                    "type": "INVOKE",
                    "calldata": [
                      "1",
                      "2009894490435840142178314390393166646092438090257831307886760648929397478285",
                      "232670485425082704932579856502088130646006032362877466777181098476241604910",
                      "3",
                      "296727860213112272332383824629975240127004024814636931420022890499591637514",
                      "1",
                      "0"
                    ],
                    "nonce": "0x51",
                    "version": "0x3",
                    "resourceBounds": {
                      "l1Gas": { "maxAmount": "0x0", "maxPricePerUnit": "0x239a01ff6e6c" },
                      "l2Gas": { "maxAmount": "0x1694a0", "maxPricePerUnit": "0x10c388d00" },
                      "l1DataGas": { "maxAmount": "0x120", "maxPricePerUnit": "0x98e8" }
                    },
                    "tip": "0x0",
                    "paymasterData": [],
                    "accountDeploymentData": [],
                    "nonceDataAvailabilityMode": "L1",
                    "feeDataAvailabilityMode": "L1",
                  }
                }

                ```


                ```json

                {
                  "kind": "Transaction",
                  "transaction": {
                    "header": {
                      "sender": undefined,
                      "nonce": undefined,
                      "expiry": undefined,
                      "executionEnergyAmount": 300
                    },
                    "payload": {
                      "type": "transferWithMemo",
                      "toAddress": "4HhAcToZs6rtxGcgsBRS3VcjeAECPTTSTFVUKS6rBSVEZAPL6d",
                      "memo": "000968656c6c6f20636364",
                      "amount": "1"
                    }
                  }
                }

                ```
              title: Transaction
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Psbt
                psbt:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                  description: The hex encoded PSBT.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - psbt
              additionalProperties: false
              description: Signs a partially signed Bitcoin / Litecoin transaction.
              title: PSBT
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - SignDocDirect
                signDoc:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - signDoc
              additionalProperties: false
              description: >-
                Signs an unsigned transaction using [sign mode
                direct](https://docs.cosmos.network/main/learn/advanced/transactions#sign_mode_direct-preferred).
              title: SignDocDirect
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - UserOperations
                userOperations:
                  type: array
                  items:
                    type: object
                    properties:
                      to:
                        type: string
                        pattern: ^0x[0-9a-fA-F]{40}$
                        description: The destination address or target contract.
                      value:
                        type: string
                        pattern: ^\d+$
                        description: >-
                          The amount of native tokens to transfer in minimum
                          denomination.
                      data:
                        type: string
                        pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                        description: ABI encoded function call data in hex format.
                    required:
                      - to
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    A fee sponsor id to sponsor the transaction fee by another
                    wallet. (read more
                    [here](https://docs.dfns.co/features/fee-sponsors))
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - userOperations
                - feeSponsorId
              additionalProperties: false
              description: >-
                Signs one or more user operations and broadcasts to chain using
                a sponsored transaction. Used for invoking arbitrary smart
                contract calls, including batch operations, with a [fee
                sponsor](https://docs.dfns.co/features/fee-sponsors).


                Can only be used with a fee sponsor. Unsponsored user operations
                are not supported.
              title: EVM Sponsored transaction
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - FunctionCall
                call:
                  type: object
                  properties: {}
                  description: Function call arguments
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - call
              additionalProperties: false
              description: Calls an on-chain function that mutates state.
              title: Function Call
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - TransferPreapproval
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
              additionalProperties: false
              description: Enable canton coin auto approval.
              title: Canton Transfer Preapproval
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Evm
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                value:
                  anyOf:
                    - type: string
                      pattern: ^\d+$
                    - type: string
                      pattern: ^0x[0-9a-fA-F]*$
                data:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                nonce:
                  anyOf:
                    - type: integer
                      minimum: 0
                    - type: string
                      pattern: ^\d+$
                    - type: string
                      pattern: ^0x[0-9a-fA-F]*$
                  description: The current nonce of the signer EOA.
                gasLimit:
                  anyOf:
                    - type: string
                      pattern: ^\d+$
                    - type: string
                      pattern: ^0x[0-9a-fA-F]*$
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
              additionalProperties: false
              description: >-
                Deprecated. Only support type 2 transactions. Use the new JSON
                format with `Transaction` kind instead which has support for
                legacy and type 4 transactions.
              title: <Deprecated> EVM Transaction
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Eip1559
                to:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                value:
                  anyOf:
                    - type: string
                      pattern: ^\d+$
                    - type: string
                      pattern: ^0x[0-9a-fA-F]*$
                data:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                nonce:
                  anyOf:
                    - type: integer
                      minimum: 0
                    - type: string
                      pattern: ^\d+$
                    - type: string
                      pattern: ^0x[0-9a-fA-F]*$
                gasLimit:
                  anyOf:
                    - type: string
                      pattern: ^\d+$
                    - type: string
                      pattern: ^0x[0-9a-fA-F]*$
                maxFeePerGas:
                  anyOf:
                    - type: string
                      pattern: ^\d+$
                    - type: string
                      pattern: ^0x[0-9a-fA-F]*$
                maxPriorityFeePerGas:
                  anyOf:
                    - type: string
                      pattern: ^\d+$
                    - type: string
                      pattern: ^0x[0-9a-fA-F]*$
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
              additionalProperties: false
              description: >-
                Deprecated. Only support type 2 transactions. Use the new JSON
                format with `Transaction` kind instead which has support for
                legacy and type 4 transactions.
              title: <Deprecated> EVM EIP-1559
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - CreateSolanaNonceAccounts
                nonceAuthority:
                  type: string
                  description: >-
                    Optional Solana address. The wallet that will own the nonce
                    accounts (be their on-chain authority). When omitted, the
                    URL wallet bootstraps for itself. When set, the URL wallet
                    pays the rent and signs the bootstrap, but the resulting
                    accounts' authority is this address — used to bootstrap on
                    behalf of an offline wallet that can't sign within the
                    90-second blockhash window.
                count:
                  type: integer
                  exclusiveMinimum: 0
                  maximum: 8
                  description: >-
                    Optional. Number of nonce accounts to create in one
                    bootstrap transaction (1–8; capped by Solana max-tx-size
                    budget). Defaults to 1.
                priority:
                  type: string
                  enum:
                    - Slow
                    - Standard
                    - Fast
                  description: Priority for the bootstrap fee. Defaults to Standard.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
              additionalProperties: false
              description: >-
                Creates Solana durable-nonce accounts owned by the calling
                wallet (or by `nonceAuthority` for cross-bootstrap).
                Pre-populates the wallet's nonce account pool so subsequent
                transfers can use `useDurableNonce: true`.
              title: Create Solana Nonce Accounts
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - AcceptInboundAsset
                issuer:
                  type: string
                  description: Stellar (G-address) or XRPL (r-address) issuer of the asset.
                assetCode:
                  type: string
                  description: Stellar asset code (1–12 ASCII alphanumeric chars).
                currency:
                  type: string
                  description: XRPL IOU currency code.
                assetId:
                  type: string
                  pattern: ^\d+$
                  description: Algorand Standard Asset (ASA) id.
                tokenId:
                  type: string
                  description: Hedera token entity id, e.g. "0.0.456858".
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
              additionalProperties: false
              description: >-
                Accept a non-native asset into the wallet on chains that gate
                inbound holding at the protocol level. Maps to Stellar
                `ChangeTrust`, XRPL `TrustSet`, Algorand asset opt-in (a
                0-amount asset transfer to self), Hedera `TokenAssociate`, or
                Canton `TransferPreapproval`. The body fields differ per network
                — see the field descriptions.
              title: AcceptInboundAsset
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - SolanaCctpBurn
                usdcMint:
                  type: string
                  description: Source USDC SPL mint address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: USDC amount to burn (6 decimals).
                destinationDomain:
                  type: integer
                  description: CCTP destination domain.
                mintRecipient:
                  type: string
                  description: >-
                    Destination recipient as a bytes32 0x-hex value (EVM address
                    left-padded).
                maxFee:
                  type: string
                  pattern: ^\d+$
                  description: Max fee Circle may deduct from the burn.
                minFinalityThreshold:
                  type: integer
                  description: CCTP min finality threshold (1000 Fast, 2000 Standard).
                useDurableNonce:
                  type: boolean
                  description: >-
                    Bind the burn to a durable nonce instead of a recent
                    blockhash.
                feeSponsorId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Fee sponsor that pays the burn network fee and the ephemeral
                    event-account rent.
                  example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - usdcMint
                - amount
                - destinationDomain
                - mintRecipient
                - maxFee
                - minFinalityThreshold
              additionalProperties: false
              description: >-
                Builds and broadcasts Circle's CCTP v2 depositForBurnWithHook on
                a Solana source. bik constructs the instruction (reserving a
                durable nonce in-band when requested) and co-signs the ephemeral
                event account; the wallet's MPC key signs the owner.
              title: Solana CCTP Burn
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - SettleOffer
                txHash:
                  type: string
                decision:
                  type: string
                  enum:
                    - Accept
                    - Reject
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - txHash
                - decision
              additionalProperties: false
              description: Transaction for accepting or refusing a transfer offer.
              title: Offer Settlement
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - ActivateAccount
                args:
                  type: object
                  properties: {}
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
              additionalProperties: false
              description: Transaction for activating an account after creation.
              title: Account Activation
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - CancelTransaction
                txHash:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                signedTx:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - signedTx
              additionalProperties: false
              description: Transaction cancelling a previously sent transaction.
              title: Transaction Cancellation
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - SpeedUpTransaction
                txHash:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                signedTx:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique ID from your system. It can be leveraged to be used
                    as an idempotency key (read more
                    [here](https://docs.dfns.co/api-reference/idempotency)).
              required:
                - kind
                - txHash
                - signedTx
              additionalProperties: false
              description: Transaction speeding up a previously sent transaction.
              title: Transaction Speed Up
        status:
          type: string
          enum:
            - Pending
            - Executing
            - Broadcasted
            - Confirmed
            - Failed
            - Rejected
        reason:
          type: string
        txHash:
          type: string
        fee:
          type: string
        approvalId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          example: ap-2a9in-tt2a1-983lho480p35ejd0
        dateRequested:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the transaction was requested.
          example: 2023-04-14T20:41:28.715Z
        datePolicyResolved:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the transaction was approved by policy reviewers.
          example: 2023-04-14T20:41:28.715Z
        dateBroadcasted:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the transaction was broadcasted to the blockchain.
          example: 2023-04-14T20:41:28.715Z
        dateConfirmed:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the transaction was confirmed on chain.
          example: 2023-04-14T20:41:28.715Z
        externalId:
          type: string
        replacementId:
          type: string
          description: >-
            The id of the replacement transaction (cancel or speed-up) issued
            for this transaction.
        details:
          type: object
          additionalProperties: {}
          description: >-
            Structured representation of the data used to construct the
            signature (e.g. nonce, gas parameters). Shape is blockchain
            specific.
      required:
        - id
        - walletId
        - network
        - requester
        - requestBody
        - status
        - dateRequested
    Swap:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^swap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Swap id.
          example: swap-5ch70-fc3n7-3k2cbo8d7q5lnts4
        quoteId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^swapQuote-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Id of the quote this swap is based on.
          example: swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq
        reference:
          type:
            - string
            - 'null'
          description: Optional user-defined reference for this Swap.
        walletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Id of the Dfns wallet spending the sourceAsset.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        targetWalletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: >-
            Id of the Dfns wallet receiving the target asset. Currently this
            value must be the same as the `walletId`.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        status:
          type: string
          enum:
            - PendingPolicyApproval
            - InProgress
            - Completed
            - Failed
            - Rejected
          description: Swap status.
        provider:
          type: string
          enum:
            - UniswapX
            - UniswapClassic
            - CircleCctp
          description: Swap provider.
        feeSponsorId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Id of the fee sponsor paying network fees for this swap, if any.
          example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
        quotedSourceAsset:
          allOf:
            - oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - amount
                  title: Native Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - contract
                    - amount
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Spl
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - mint
                    - amount
                  title: Solana Fungible Token (SPL)
            - type: object
              properties:
                metadata:
                  type: object
                  properties:
                    network:
                      $ref: '#/components/schemas/Network'
                    name:
                      type: string
                    symbol:
                      type: string
                    decimals:
                      type: number
                    tid:
                      type: string
                  required:
                    - network
                    - decimals
              required:
                - metadata
          description: The source asset for this swap transaction.
        quotedTargetAsset:
          allOf:
            - oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - amount
                  title: Native Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - contract
                    - amount
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Spl
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - mint
                    - amount
                  title: Solana Fungible Token (SPL)
            - type: object
              properties:
                metadata:
                  type: object
                  properties:
                    network:
                      $ref: '#/components/schemas/Network'
                    name:
                      type: string
                    symbol:
                      type: string
                    decimals:
                      type: number
                    tid:
                      type: string
                  required:
                    - network
                    - decimals
              required:
                - metadata
          description: The target asset for this swap transaction.
        slippageBps:
          type: number
          description: >-
            The slippage tolerance for this trade in [basis
            point](https://en.wikipedia.org/wiki/Basis_point) (BPS). Slippage
            tolerance defines the maximum price difference you are willing to
            accept during a trade from the estimated quote, ensuring you still
            receive at least a minimum number of tokens if the price shifts. One
            basis point equals one-hundredth of a percentage point, or 0.01%.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the swap was initiated.
        requestBody:
          anyOf:
            - oneOf:
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - UniswapClassic
                    quoteId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^swapQuote-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Quote to use for this swap.
                      example: swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq
                    reference:
                      type: string
                      description: An optional reference for this Swap.
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet spending the sourceAsset. Used for
                        attesting that the swap is being created with the same
                        parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                        Used for attesting that the swap is being created with
                        the same parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this swap. When set, the swap transactions are broadcast
                        as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                  required:
                    - provider
                    - quoteId
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  title: UniswapClassic Swap Request
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - UniswapX
                    quoteId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^swapQuote-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Quote to use for this swap.
                      example: swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq
                    reference:
                      type: string
                      description: An optional reference for this Swap.
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet spending the sourceAsset. Used for
                        attesting that the swap is being created with the same
                        parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                        Used for attesting that the swap is being created with
                        the same parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this swap. When set, the swap transactions are broadcast
                        as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                  required:
                    - provider
                    - quoteId
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  title: UniswapX Swap Request
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - CircleCctp
                    quoteId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^swapQuote-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Quote to use for this swap.
                      example: swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq
                    reference:
                      type: string
                      description: An optional reference for this Swap.
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet spending the sourceAsset. Used for
                        attesting that the swap is being created with the same
                        parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                        Used for attesting that the swap is being created with
                        the same parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this swap. When set, the swap transactions are broadcast
                        as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    feeToleranceBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The maximum fee you will accept for this CCTP transfer,
                        in [basis
                        points](https://en.wikipedia.org/wiki/Basis_point) (BPS)
                        of the amount. CCTP is burn-and-mint with no price
                        slippage; this caps the bridge/forwarding fee — which
                        varies with chain congestion and Fast vs Standard speed
                        — so the burn does not revert if the fee rises. One
                        basis point equals 0.01%.
                  required:
                    - provider
                    - quoteId
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - feeToleranceBps
                  title: CircleCctp Swap Request
            - type: object
              properties: {}
          description: The full request used for initiating this swap.
        requester:
          $ref: '#/components/schemas/Requester'
        failureReason:
          type: string
          description: The failure reason, if any. Only present when status is Failed.
        protocolStatus:
          type: string
          description: >-
            Provider-specific intermediate state, only set while `status` is
            InProgress. Values are opaque strings — clients map them to progress
            bars, labels or icons as needed. For CCTP one of: `signing-permit`,
            `burning-source`, `awaiting-source-finality`,
            `awaiting-attestation`, `awaiting-forwarder`. Undefined for
            providers without intermediate sub-states.
      required:
        - id
        - quoteId
        - reference
        - walletId
        - targetWalletId
        - status
        - provider
        - quotedSourceAsset
        - quotedTargetAsset
        - slippageBps
        - dateCreated
        - requestBody
        - requester
      example:
        id: swap-6a3ku-bn8d7-8u5rs1oukojms7k8
        quoteId: swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t
        reference: null
        walletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
        targetWalletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
        status: PendingPolicyApproval
        provider: UniswapClassic
        quotedSourceAsset:
          kind: Native
          amount: '10000000000'
          metadata:
            network: EthereumSepolia
            name: Ethereum
            symbol: SepoliaETH
            decimals: 18
            tid: native:eth
        quotedTargetAsset:
          kind: Erc20
          contract: '0xda0be7efd234295395d4204d0df4358339b57b27'
          amount: '6467571553831928182'
          metadata:
            network: EthereumSepolia
            name: Test
            symbol: Test
            decimals: 18
            tid: erc20:0xda0be7efd234295395d4204d0df4358339b57b27
        slippageBps: 100
        dateCreated: 2025-09-11T10:57:55.758Z
        requestBody:
          quoteId: swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t
          walletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
          targetWalletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
          provider: UniswapClassic
          slippageBps: 100
          sourceAsset:
            kind: Native
            amount: '10000000000'
          targetAsset:
            kind: Erc20
            contract: '0xda0be7efd234295395d4204d0df4358339b57b27'
            amount: '653003161'
        requester:
          userId: us-48r5q-eshfg-9pmr2lo6bmpr4i4i
          tokenId: to-4etah-smoal-9n3rmhul4dpaueg5
    WalletHistoryEvent:
      oneOf:
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_56
                          type: number
                        USD: *ref_56
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_57
                          type: number
                        USD: *ref_57
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - NativeTransfer
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
            liquidityPool:
              type: string
            balanceId:
              type: string
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            decimals:
              type: number
              description: '@deprecated use metadata.asset.decimals instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - value
            - symbol
            - decimals
          title: Native Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_58
                          type: number
                        USD: *ref_58
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_59
                          type: number
                        USD: *ref_59
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Aip21Transfer
            metadataAddress:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - metadataAddress
            - from
            - to
            - value
          title: Aptos Fungible Asset (AIP-21) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_60
                          type: number
                        USD: *ref_60
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_61
                          type: number
                        USD: *ref_61
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - AsaTransfer
            assetId:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            optIn:
              type: boolean
            optOut:
              type: boolean
            clawback:
              type: boolean
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - assetId
            - from
            - to
            - value
          title: Algorand Standard Asset Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_62
                          type: number
                        USD: *ref_62
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_63
                          type: number
                        USD: *ref_63
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - AssetTransfer
            assetId:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - assetId
            - value
          title: Cardano Asset Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_64
                          type: number
                        USD: *ref_64
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_65
                          type: number
                        USD: *ref_65
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Cip56Transfer
            instrumentId:
              type: string
            instrumentAdmin:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - instrumentId
            - instrumentAdmin
            - from
            - to
            - value
          title: Canton Standard Token (CIP-56) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_66
                          type: number
                        USD: *ref_66
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_67
                          type: number
                        USD: *ref_67
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - CoinTransfer
            coin:
              type: string
            from:
              type: string
            tos:
              type: array
              items:
                type: string
            value:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - coin
            - from
            - value
          title: Sui Coin Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_68
                          type: number
                        USD: *ref_68
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_69
                          type: number
                        USD: *ref_69
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Cis2Transfer
            from:
              type: string
            to:
              type: string
            value:
              type: string
            tokenAddress:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - value
            - tokenAddress
          title: Concordium CIS2 Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_70
                          type: number
                        USD: *ref_70
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_71
                          type: number
                        USD: *ref_71
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Cis7Transfer
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            tokenId:
              type: string
            memo:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - value
            - tokenId
          title: Concordium CIS7 Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_72
                          type: number
                        USD: *ref_72
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_73
                          type: number
                        USD: *ref_73
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Erc20Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            decimals:
              type: number
              description: '@deprecated use metadata.asset.decimals instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
            - decimals
          title: EVM Fungible Token (ERC-20) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_74
                          type: number
                        USD: *ref_74
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_75
                          type: number
                        USD: *ref_75
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Erc721Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            tokenId:
              type: string
            fee:
              type: string
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - tokenId
          title: EVM Non Fungible Token (ERC-721) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_76
                          type: number
                        USD: *ref_76
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_77
                          type: number
                        USD: *ref_77
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Erc7984Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            decimals:
              type: number
              description: '@deprecated use metadata.asset.decimals instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
            - decimals
          title: EVM Confidential Token (ERC-7984) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_78
                          type: number
                        USD: *ref_78
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_79
                          type: number
                        USD: *ref_79
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - HederaErc20Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            transactionId:
              type: string
            evmTxHash:
              type: string
              description: >-
                EVM keccak256 hash of the HIP-410 inner tx. Absent on
                legacy-migrated rows.
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            decimals:
              type: number
              description: '@deprecated use metadata.asset.decimals instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
            - decimals
          title: Hedera EVM Fungible Token (ERC-20) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_80
                          type: number
                        USD: *ref_80
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_81
                          type: number
                        USD: *ref_81
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - HederaErc721Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            tokenId:
              type: string
            fee:
              type: string
            transactionId:
              type: string
            evmTxHash:
              type: string
              description: >-
                EVM keccak256 hash of the HIP-410 inner tx. Absent on
                legacy-migrated rows.
            symbol:
              type: string
              description: '@deprecated use metadata.asset.symbol instead'
            verified:
              type: boolean
              description: '@deprecated use metadata.asset.verified instead'
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - tokenId
          title: Hedera EVM Non Fungible Token (ERC-721) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_82
                          type: number
                        USD: *ref_82
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_83
                          type: number
                        USD: *ref_83
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Hip17Transfer
            tokenId:
              type: string
            serialNumber:
              type: string
            from:
              type: string
            to:
              type: string
            fee:
              type: string
            transactionId:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - tokenId
            - serialNumber
          title: HIP17 Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_84
                          type: number
                        USD: *ref_84
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_85
                          type: number
                        USD: *ref_85
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - HtsTransfer
            tokenId:
              type: string
            froms:
              type: array
              items:
                type: string
            tos:
              type: array
              items:
                type: string
            value:
              type: string
            fee:
              type: string
            transactionId:
              type: string
            evmTxHash:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - froms
            - tos
            - value
          title: HTS Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_86
                          type: number
                        USD: *ref_86
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_87
                          type: number
                        USD: *ref_87
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - IouTransfer
            currency:
              type: string
            issuer:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - currency
            - issuer
            - value
          title: XRPL IOU Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_88
                          type: number
                        USD: *ref_88
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_89
                          type: number
                        USD: *ref_89
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - LockedCoinTransfer
            coin:
              type: string
            from:
              type: string
            tos:
              type: array
              items:
                type: string
            value:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - coin
            - from
            - value
          title: Locked Coin Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_90
                          type: number
                        USD: *ref_90
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_91
                          type: number
                        USD: *ref_91
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Xls33Transfer
            issuanceId:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - issuanceId
            - value
          title: XRPL XLS-33 Token Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_92
                          type: number
                        USD: *ref_92
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_93
                          type: number
                        USD: *ref_93
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Sep41Transfer
            issuer:
              type: string
            assetCode:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
            liquidityPool:
              type: string
            balanceId:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - issuer
            - assetCode
            - from
            - to
            - value
          title: Stellar Classic Assets (SEP-41) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_94
                          type: number
                        USD: *ref_94
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_95
                          type: number
                        USD: *ref_95
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Snip2Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
          title: Snip2 Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_96
                          type: number
                        USD: *ref_96
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_97
                          type: number
                        USD: *ref_97
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Snip3Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            tokenId:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - tokenId
          title: Snip3 Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_98
                          type: number
                        USD: *ref_98
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_99
                          type: number
                        USD: *ref_99
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum: *ref_100
            from:
              type: string
            to:
              type: string
            mint:
              type: string
            value:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - mint
            - value
          title: Solana Program Library Token (SPL and SPL 2022) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_101
                          type: number
                        USD: *ref_101
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_102
                          type: number
                        USD: *ref_102
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Tep74Transfer
            master:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
            memo:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - master
            - from
            - value
          title: TON Jetton (TEP-74) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_103
                          type: number
                        USD: *ref_103
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_104
                          type: number
                        USD: *ref_104
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Trc10Transfer
            tokenId:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - tokenId
            - from
            - to
            - value
          title: TRON Native Fungible Token (TRC-10) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_105
                          type: number
                        USD: *ref_105
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_106
                          type: number
                        USD: *ref_106
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Trc20Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            value:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - value
          title: TRON Smart Contract Fungible Token (TRC-20) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_107
                          type: number
                        USD: *ref_107
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_108
                          type: number
                        USD: *ref_108
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - Trc721Transfer
            contract:
              type: string
            from:
              type: string
            to:
              type: string
            tokenId:
              type: string
            fee:
              type: string
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - contract
            - from
            - to
            - tokenId
          title: TRON Non Fungible Token (TRC-721) Transfer
        - type: object
          properties:
            walletId:
              type: string
            direction:
              type: string
              enum:
                - In
                - Out
            network:
              $ref: '#/components/schemas/Network'
            blockNumber:
              type: number
            txHash:
              type: string
            index:
              type: string
            timestamp:
              type: string
            status:
              type: string
              enum:
                - Included
                - Confirmed
            metadata:
              type: object
              properties:
                asset:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_109
                          type: number
                        USD: *ref_109
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
                fee:
                  type: object
                  properties:
                    symbol:
                      type: string
                    decimals:
                      type: integer
                      description: >-
                        Number of decimals used by the asset, see [this
                        guide](https://docs.dfns.co/guides/developers/displaying-balances)
                        for more details.
                    verified:
                      type: boolean
                      description: Whether the asset is verified by DFNS as legitimate.
                    quotes:
                      type: object
                      properties:
                        EUR: &ref_110
                          type: number
                        USD: *ref_110
                      description: >-
                        Corresponding asset price in USD at the time of
                        transfer.
              required:
                - asset
            kind:
              type: string
              enum:
                - UtxoTransfer
            assetId:
              type: string
              description: Only set for Cardano asset transfers.
            froms:
              type: array
              items:
                type: string
            tos:
              type: array
              items:
                type: string
            value:
              type: string
            fee:
              type: string
            outputs:
              type: array
              items:
                type: object
                properties:
                  index:
                    type: number
                  address:
                    type: string
                  value:
                    type: string
                required:
                  - index
                  - address
                  - value
              description: >-
                Outbound transfers only: per-recipient outputs of the
                transaction, change excluded.
          required:
            - walletId
            - direction
            - network
            - blockNumber
            - txHash
            - timestamp
            - status
            - metadata
            - kind
            - froms
            - tos
            - value
          title: UTXO Transfer
      example:
        kind: Erc20Transfer
        walletId: wa-1f04s-lqc9q-xxxxxxxxxxxxxxxx
        network: Ethereum
        direction: Out
        blockNumber: 19036906
        timestamp: 2024-01-18T23:03:59.000Z
        status: Confirmed
        txHash: '0x8e88793607610a83798eb5ec6dde861f3e459c7e4a22e78b0d2e675b86d0d1e7'
        index: '134'
        contract: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
        from: '0xea09cf8a006493566f8a8fd3d0b32ebff5939d6a'
        to: '0xc42754e6f79f15082613b2b4ebead83dcf8116b6'
        value: '1000000'
        decimals: 6
        fee: '1542993669053672'
        metadata:
          asset:
            symbol: USDC
            decimals: 6
            verified: true
          fee:
            symbol: ETH
            decimals: 18
            verified: true
    PolicyApproval:
      type: object
      properties:
        id:
          type: string
        initiatorId:
          type: string
        activity:
          oneOf:
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Wallets:Sign
                transferRequest:
                  $ref: '#/components/schemas/TransferRequest'
                transactionRequest:
                  $ref: '#/components/schemas/TransactionRequest'
                signatureRequest:
                  $ref: '#/components/schemas/SignatureRequest'
                swapRequest:
                  $ref: '#/components/schemas/Swap'
              required:
                - kind
              description: >2

                      A "`Wallets:Sign`" activity represents any activity which involves signing with a wallet. Currently, in our API, these can be:

                * a Transfer Request (created using the endpoint [Transfer Asset
                from
                Wallet](https://docs.dfns.co/api-reference/wallets/transfer-asset))

                * a Transaction Request (created using the endpoint [Broadcast
                Transaction from
                Wallet](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction))

                * a Signature Request (created using the endpoint [Generate
                Signature from
                Wallet](https://docs.dfns.co/api-reference/keys/generate-signature))
              title: Wallets:Sign
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Wallets:IncomingTransaction
                blockchainEvent:
                  $ref: '#/components/schemas/WalletHistoryEvent'
              required:
                - kind
                - blockchainEvent
              description: >-
                A "`Wallets:IncomingTransaction`" activity represents when our
                indexers detected an incoming transaction into a wallet. This
                activity kind has to be used with the rule kind
                "`ChainalysisTransactionScreening`" (see more on
                [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                integration page), and the action kind "`NoAction`", meaning
                that no actual action will be taken as a result of the
                Chainalysis screening, other than notifying you through a
                webhook event if the policy is triggered. The reason for that,
                is that the incoming transaction is already on-chain, so the
                funds are already in the wallet, we cannot block that transfer
                on chain.
              title: Wallets:IncomingTransaction
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Policies:Modify
                changeRequest:
                  type: object
                  properties:
                    id:
                      type: string
                    requester:
                      $ref: '#/components/schemas/ChangeRequestRequester'
                    kind:
                      type: string
                      enum:
                        - Policy
                    operationKind:
                      type: string
                      enum: &ref_126
                        - Update
                    status:
                      type: string
                      enum:
                        - Applied
                        - Failed
                        - Pending
                        - Rejected
                    entityId:
                      type: string
                    dateCreated:
                      type: string
                      format: date-time
                    dateResolved:
                      type: string
                      format: date-time
                    approvalId:
                      type: string
                    body:
                      $ref: '#/components/schemas/Policy'
                  required:
                    - id
                    - requester
                    - kind
                    - operationKind
                    - status
                    - entityId
                    - dateCreated
                    - body
                  additionalProperties: false
              required:
                - kind
                - changeRequest
              description: >2

                      A "`Policies:Modify`" activity represents any activity which involves updating or archiving a policy. These activities are Policy change requests, created as a result of calling either:

                * the endpoint [Update
                Policy](https://docs.dfns.co/api-reference/policies/update-policy)

                * the endpoint [Delete
                Policy](https://docs.dfns.co/api-reference/policies/delete-policy)
              title: Policies:Modify
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Permissions:Modify
                changeRequest:
                  type: object
                  properties:
                    id:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: ID of the change request.
                      example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                    requester:
                      $ref: '#/components/schemas/ChangeRequestRequester'
                    status:
                      type: string
                      enum:
                        - Applied
                        - Failed
                        - Pending
                        - Rejected
                      description: Current status of the change request.
                    entityId:
                      type: string
                      description: ID of the entity being changed.
                    dateCreated:
                      type: string
                      format: date-time
                      description: >-
                        [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date
                        (must be UTC). Date the change request was created.
                      example: 2023-04-14T20:41:28.715Z
                    dateResolved:
                      type: string
                      format: date-time
                      description: >-
                        [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date
                        (must be UTC). Date the change request was resolved.
                      example: 2023-04-14T20:41:28.715Z
                    approvalId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      example: ap-2a9in-tt2a1-983lho480p35ejd0
                    kind:
                      type: string
                      enum:
                        - Permission
                    operationKind:
                      type: string
                      enum: &ref_125
                        - Update
                    body:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: >-
                            ID of the permission (also referred to as "role" in
                            the dashboard).
                          example: pm-37vj4-jkr4l-lc9945spfftkne57
                        name:
                          type: string
                          description: Human-readable name of the permission (role).
                        status:
                          type: string
                          enum:
                            - Active
                          description: Current status of the permission.
                        operations:
                          type: array
                          items:
                            type: string
                          description: >-
                            List of API operations this permission grants access
                            to. See [Permissions
                            List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions)
                            for available operations.
                        isImmutable:
                          type: boolean
                          description: >-
                            Whether this permission is system-managed and cannot
                            be modified.
                        isArchived:
                          type: boolean
                          description: >-
                            Whether this permission has been archived
                            (soft-deleted).
                      required:
                        - id
                        - name
                        - status
                        - operations
                        - isImmutable
                        - isArchived
                      additionalProperties: false
                  required:
                    - id
                    - requester
                    - status
                    - entityId
                    - dateCreated
                    - kind
                    - operationKind
                    - body
                  additionalProperties: false
              required:
                - kind
                - changeRequest
              description: >2

                      A "`Permissions:Modify`" activity represents any activity which involves updating or archiving a permission. These activities are Permission change requests, created as a result of calling either:

                * the endpoint [Update
                Permission](https://docs.dfns.co/api-reference/permissions/update-permission)

                * the endpoint [Delete
                Permission](https://docs.dfns.co/api-reference/permissions/archive-permission)
              title: Permissions:Modify
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Permissions:Assign
                changeRequest:
                  type: object
                  properties:
                    id:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: ID of the change request.
                      example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                    requester:
                      $ref: '#/components/schemas/ChangeRequestRequester'
                    status:
                      type: string
                      enum:
                        - Applied
                        - Failed
                        - Pending
                        - Rejected
                      description: Current status of the change request.
                    entityId:
                      type: string
                      description: ID of the entity being changed.
                    dateCreated:
                      type: string
                      format: date-time
                      description: >-
                        [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date
                        (must be UTC). Date the change request was created.
                      example: 2023-04-14T20:41:28.715Z
                    dateResolved:
                      type: string
                      format: date-time
                      description: >-
                        [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date
                        (must be UTC). Date the change request was resolved.
                      example: 2023-04-14T20:41:28.715Z
                    approvalId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      example: ap-2a9in-tt2a1-983lho480p35ejd0
                    kind:
                      type: string
                      enum:
                        - Assignment
                    operationKind:
                      type: string
                      enum: &ref_124
                        - Create
                        - Delete
                    body:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID of the permission assignment.
                          example: as-1vcmc-qrek0-6b4vii9pln60907e
                        permissionId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: >-
                            ID of the permission (also referred to as "role" in
                            the dashboard).
                          example: pm-37vj4-jkr4l-lc9945spfftkne57
                        identityId:
                          type: string
                          description: >-
                            ID of the identity the permission is assigned to.
                            Can be a user ID, a service account ID, or a
                            personal access token (PAT) ID.
                        isImmutable:
                          type: boolean
                          description: >-
                            Whether this assignment is system-managed and cannot
                            be modified.
                      required:
                        - id
                        - permissionId
                        - identityId
                        - isImmutable
                      additionalProperties: false
                  required:
                    - id
                    - requester
                    - status
                    - entityId
                    - dateCreated
                    - kind
                    - operationKind
                    - body
                  additionalProperties: false
              required:
                - kind
                - changeRequest
              description: >2

                      A "`Permissions:Assign`" activity represents any activity which involves assigning a permission (or revoking it, aka "deleting a permission assignment"). These activities are Assignment change requests, created as a result of calling either:

                * the endpoint [Assign
                Permission](https://docs.dfns.co/api-reference/permissions/assign-permission)

                * the endpoint [Revoke
                Permission](https://docs.dfns.co/api-reference/permissions/revoke-permission)
              title: Permissions:Assign
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Registry:Addresses:Modify
                changeRequest:
                  type: object
                  properties:
                    id:
                      type: string
                    kind:
                      type: string
                      enum:
                        - Alias
                    body:
                      oneOf:
                        - type: object
                          properties:
                            entityId:
                              type: string
                            alias:
                              type: string
                            operationKind:
                              type: string
                              enum:
                                - Create
                            description:
                              type: string
                              minLength: 1
                              maxLength: 200
                            values:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      network:
                                        $ref: '#/components/schemas/Network'
                                      memo:
                                        type: string
                                        minLength: 1
                                        maxLength: 64
                                        pattern: ^[a-zA-Z0-9]+$
                                      value:
                                        type: string
                                        minLength: 1
                                        maxLength: 300
                                        pattern: ^[a-zA-Z0-9_:.-]+$
                                    required:
                                      - network
                                      - value
                              required:
                                - add
                          required:
                            - entityId
                            - alias
                            - operationKind
                            - values
                          additionalProperties: false
                          title: Alias creation
                        - type: object
                          properties:
                            entityId:
                              type: string
                            alias:
                              type: string
                            operationKind:
                              type: string
                              enum:
                                - Update
                            description:
                              type:
                                - string
                                - 'null'
                              minLength: 1
                              maxLength: 200
                            values:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      network:
                                        $ref: '#/components/schemas/Network'
                                      memo:
                                        type: string
                                        minLength: 1
                                        maxLength: 64
                                        pattern: ^[a-zA-Z0-9]+$
                                      value:
                                        type: string
                                        minLength: 1
                                        maxLength: 300
                                        pattern: ^[a-zA-Z0-9_:.-]+$
                                    required:
                                      - network
                                      - value
                                remove:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      network:
                                        $ref: '#/components/schemas/Network'
                                      memo:
                                        type: string
                                        minLength: 1
                                        maxLength: 64
                                        pattern: ^[a-zA-Z0-9]+$
                                      value:
                                        type: string
                                        minLength: 1
                                        maxLength: 300
                                        pattern: ^[a-zA-Z0-9_:.-]+$
                                    required:
                                      - network
                                      - value
                              required:
                                - add
                                - remove
                          required:
                            - entityId
                            - alias
                            - operationKind
                            - values
                          additionalProperties: false
                          title: Alias update
                        - type: object
                          properties:
                            entityId:
                              type: string
                            alias:
                              type: string
                            operationKind:
                              type: string
                              enum:
                                - Delete
                          required:
                            - entityId
                            - alias
                            - operationKind
                          title: Alias deletion
                  required:
                    - id
                    - kind
                    - body
              required:
                - kind
                - changeRequest
              description: ''
              title: Registry:Addresses:Modify
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Registry:ContractSchemas:Modify
                changeRequest:
                  type: object
                  properties:
                    id:
                      type: string
                    kind:
                      type: string
                      enum:
                        - SmartContract
                    operationKind:
                      type: string
                      enum: &ref_131
                        - Create
                        - Delete
                    body:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^cs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          example: cs-30ude-5i87r-gfrpg3fi68l2u14b
                        name:
                          type: string
                          minLength: 1
                          maxLength: 50
                          pattern: ^[a-z0-9-]+$
                        description:
                          type: string
                          minLength: 1
                          maxLength: 200
                        network:
                          type: string
                          enum: &ref_121
                            - ArbitrumOne
                            - ArbitrumSepolia
                            - ArcTestnet
                            - AvalancheC
                            - AvalancheCFuji
                            - Base
                            - BaseSepolia
                            - Bob
                            - BobSepolia
                            - Bsc
                            - BscTestnet
                            - Berachain
                            - BerachainBepolia
                            - Celo
                            - CeloAlfajores
                            - Codex
                            - CodexSepolia
                            - Ethereum
                            - EthereumClassic
                            - EthereumClassicMordor
                            - EthereumSepolia
                            - EthereumHoodi
                            - FlareC
                            - FlareCCoston2
                            - FlowEvm
                            - FlowEvmTestnet
                            - Ink
                            - InkSepolia
                            - Optimism
                            - OptimismSepolia
                            - Plasma
                            - PlasmaTestnet
                            - Plume
                            - PlumeSepolia
                            - Polygon
                            - PolygonAmoy
                            - Race
                            - RaceSepolia
                            - Rayls
                            - RaylsTestnet
                            - Robinhood
                            - RobinhoodSepolia
                            - SeiPacific1
                            - SeiAtlantic2
                            - Sonic
                            - SonicTestnet
                            - Tempo
                            - TempoModerato
                            - Tsc
                            - TscTestnet1
                            - Xdc
                            - XdcApothem
                            - XLayer
                            - XLayerSepolia
                        address:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        schema: {}
                      required:
                        - id
                        - name
                        - network
                        - address
                  required:
                    - id
                    - kind
                    - operationKind
                    - body
              required:
                - kind
                - changeRequest
              description: ''
              title: Registry:ContractSchemas:Modify
        status:
          type: string
          enum:
            - Pending
            - Approved
            - Denied
            - Expired
        expirationDate:
          type: string
        dateCreated:
          type: string
        dateUpdated:
          type: string
        dateResolved:
          type: string
        policyEvaluations:
          type: array
          items:
            type: object
            properties:
              policyId:
                type: string
              triggered:
                type: boolean
              reason:
                type: string
              context: {}
            required:
              - policyId
              - triggered
              - reason
        decisions:
          type: array
          items:
            type: object
            properties:
              userId:
                type: string
              date:
                type: string
              reason:
                type:
                  - string
                  - 'null'
              value:
                type: string
                enum:
                  - Approved
                  - Denied
            required:
              - userId
              - date
              - reason
              - value
      required:
        - id
        - initiatorId
        - activity
        - status
        - dateUpdated
        - policyEvaluations
        - decisions
      additionalProperties: false
    Stake:
      oneOf:
        - type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              example: stk-0pmu3-tog2k-fdtn0teii2i4r13f
            provider:
              type: string
              enum:
                - Figment
              description: The staking infrastructure provider used to manage the stake.
            walletId:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: Wallet id.
              example: wa-5pfuu-9euek-h0odgb6snva8ph3k
            status:
              type: string
              enum:
                - Active
                - Failed
                - Staking
                - Unbonding
                - Unbond
                - Withdrawing
                - Withdrawn
              description: >-
                Status of the stake position.


                | Status | Definition |

                | --- | --- |

                | `Staking` | The stake is being created and funds are being
                delegated to the validator. |

                | `Active` | The stake is active and earning rewards. |

                | `Unbonding` | The stake is in the process of being unbonded
                (cooldown period). |

                | `Unbond` | The stake has been unbonded and is ready for
                withdrawal. |

                | `Withdrawing` | The staked funds are in the process of being
                withdrawn. |

                | `Withdrawn` | The staked funds have been fully withdrawn. |

                | `Failed` | The staking operation failed. |
            requester:
              $ref: '#/components/schemas/Requester'
            requestBody:
              allOf:
                - oneOf:
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Babylon
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        duration:
                          type: number
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                        - duration
                      title: Babylon
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Ethereum
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                      title: Ethereum
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Iota
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        validator:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{64}$
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        lockedIotas:
                          type: array
                          items:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{64}$
                          minItems: 1
                      required:
                        - protocol
                        - walletId
                        - validator
                        - amount
                      title: Iota
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Xdc
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        candidate:
                          type: string
                          description: Coinbase address of the XDC masternode to register
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: >-
                            Transaction amount denominated in wei (min
                            10,000,000 XDC)
                      required:
                        - protocol
                        - walletId
                        - candidate
                        - amount
                      title: Xdc
                - type: object
                  properties:
                    externalId:
                      type: string
            dateCreated:
              type: string
              format: date-time
              description: >-
                [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
                UTC). When the stake was created.
              example: 2023-04-14T20:41:28.715Z
            protocol:
              type: string
              enum:
                - Babylon
            data:
              type: object
              properties:
                finalityProviders:
                  type: array
                  items:
                    type: string
                covenantPubkeys:
                  type: array
                  items:
                    type: string
                magicBytes:
                  type: string
                covenantThreshold:
                  type: number
                minUnbondingTime:
                  type: number
                lockHeight:
                  type: number
              required:
                - finalityProviders
                - covenantPubkeys
                - magicBytes
                - covenantThreshold
                - minUnbondingTime
                - lockHeight
          required:
            - id
            - walletId
            - status
            - requester
            - requestBody
            - dateCreated
            - protocol
            - data
          title: Babylon
        - type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              example: stk-0pmu3-tog2k-fdtn0teii2i4r13f
            provider:
              type: string
              enum:
                - Figment
              description: The staking infrastructure provider used to manage the stake.
            walletId:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: Wallet id.
              example: wa-5pfuu-9euek-h0odgb6snva8ph3k
            status:
              type: string
              enum:
                - Active
                - Failed
                - Staking
                - Unbonding
                - Unbond
                - Withdrawing
                - Withdrawn
              description: >-
                Status of the stake position.


                | Status | Definition |

                | --- | --- |

                | `Staking` | The stake is being created and funds are being
                delegated to the validator. |

                | `Active` | The stake is active and earning rewards. |

                | `Unbonding` | The stake is in the process of being unbonded
                (cooldown period). |

                | `Unbond` | The stake has been unbonded and is ready for
                withdrawal. |

                | `Withdrawing` | The staked funds are in the process of being
                withdrawn. |

                | `Withdrawn` | The staked funds have been fully withdrawn. |

                | `Failed` | The staking operation failed. |
            requester:
              $ref: '#/components/schemas/Requester'
            requestBody:
              allOf:
                - oneOf:
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Babylon
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        duration:
                          type: number
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                        - duration
                      title: Babylon
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Ethereum
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                      title: Ethereum
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Iota
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        validator:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{64}$
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        lockedIotas:
                          type: array
                          items:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{64}$
                          minItems: 1
                      required:
                        - protocol
                        - walletId
                        - validator
                        - amount
                      title: Iota
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Xdc
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        candidate:
                          type: string
                          description: Coinbase address of the XDC masternode to register
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: >-
                            Transaction amount denominated in wei (min
                            10,000,000 XDC)
                      required:
                        - protocol
                        - walletId
                        - candidate
                        - amount
                      title: Xdc
                - type: object
                  properties:
                    externalId:
                      type: string
            dateCreated:
              type: string
              format: date-time
              description: >-
                [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
                UTC). When the stake was created.
              example: 2023-04-14T20:41:28.715Z
            protocol:
              type: string
              enum:
                - Iota
            data:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Iota
                    - LockedIota
                stakedObjects:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      amount:
                        type: string
                      expirationDate:
                        type: string
                    required:
                      - id
                      - amount
                amount:
                  type: string
                validator:
                  type: string
              required:
                - kind
                - amount
                - validator
          required:
            - id
            - walletId
            - status
            - requester
            - requestBody
            - dateCreated
            - protocol
            - data
          title: Iota
        - type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              example: stk-0pmu3-tog2k-fdtn0teii2i4r13f
            provider:
              type: string
              enum:
                - Figment
              description: The staking infrastructure provider used to manage the stake.
            walletId:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: Wallet id.
              example: wa-5pfuu-9euek-h0odgb6snva8ph3k
            status:
              type: string
              enum:
                - Active
                - Failed
                - Staking
                - Unbonding
                - Unbond
                - Withdrawing
                - Withdrawn
              description: >-
                Status of the stake position.


                | Status | Definition |

                | --- | --- |

                | `Staking` | The stake is being created and funds are being
                delegated to the validator. |

                | `Active` | The stake is active and earning rewards. |

                | `Unbonding` | The stake is in the process of being unbonded
                (cooldown period). |

                | `Unbond` | The stake has been unbonded and is ready for
                withdrawal. |

                | `Withdrawing` | The staked funds are in the process of being
                withdrawn. |

                | `Withdrawn` | The staked funds have been fully withdrawn. |

                | `Failed` | The staking operation failed. |
            requester:
              $ref: '#/components/schemas/Requester'
            requestBody:
              allOf:
                - oneOf:
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Babylon
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        duration:
                          type: number
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                        - duration
                      title: Babylon
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Ethereum
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                      title: Ethereum
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Iota
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        validator:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{64}$
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        lockedIotas:
                          type: array
                          items:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{64}$
                          minItems: 1
                      required:
                        - protocol
                        - walletId
                        - validator
                        - amount
                      title: Iota
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Xdc
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        candidate:
                          type: string
                          description: Coinbase address of the XDC masternode to register
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: >-
                            Transaction amount denominated in wei (min
                            10,000,000 XDC)
                      required:
                        - protocol
                        - walletId
                        - candidate
                        - amount
                      title: Xdc
                - type: object
                  properties:
                    externalId:
                      type: string
            dateCreated:
              type: string
              format: date-time
              description: >-
                [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
                UTC). When the stake was created.
              example: 2023-04-14T20:41:28.715Z
            protocol:
              type: string
              enum:
                - Ethereum
            data:
              type:
                - object
                - 'null'
              properties:
                validator:
                  type: object
                  properties:
                    pubkey:
                      type: string
                    withdrawalAddress:
                      type: string
                  required:
                    - pubkey
                    - withdrawalAddress
              required:
                - validator
          required:
            - id
            - walletId
            - status
            - requester
            - requestBody
            - dateCreated
            - protocol
            - data
          title: Ethereum
        - type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              example: stk-0pmu3-tog2k-fdtn0teii2i4r13f
            provider:
              type: string
              enum:
                - Figment
              description: The staking infrastructure provider used to manage the stake.
            walletId:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: Wallet id.
              example: wa-5pfuu-9euek-h0odgb6snva8ph3k
            status:
              type: string
              enum:
                - Active
                - Failed
                - Staking
                - Unbonding
                - Unbond
                - Withdrawing
                - Withdrawn
              description: >-
                Status of the stake position.


                | Status | Definition |

                | --- | --- |

                | `Staking` | The stake is being created and funds are being
                delegated to the validator. |

                | `Active` | The stake is active and earning rewards. |

                | `Unbonding` | The stake is in the process of being unbonded
                (cooldown period). |

                | `Unbond` | The stake has been unbonded and is ready for
                withdrawal. |

                | `Withdrawing` | The staked funds are in the process of being
                withdrawn. |

                | `Withdrawn` | The staked funds have been fully withdrawn. |

                | `Failed` | The staking operation failed. |
            requester:
              $ref: '#/components/schemas/Requester'
            requestBody:
              allOf:
                - oneOf:
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Babylon
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        duration:
                          type: number
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                        - duration
                      title: Babylon
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Ethereum
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                      title: Ethereum
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Iota
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        validator:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{64}$
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        lockedIotas:
                          type: array
                          items:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{64}$
                          minItems: 1
                      required:
                        - protocol
                        - walletId
                        - validator
                        - amount
                      title: Iota
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Xdc
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        candidate:
                          type: string
                          description: Coinbase address of the XDC masternode to register
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: >-
                            Transaction amount denominated in wei (min
                            10,000,000 XDC)
                      required:
                        - protocol
                        - walletId
                        - candidate
                        - amount
                      title: Xdc
                - type: object
                  properties:
                    externalId:
                      type: string
            dateCreated:
              type: string
              format: date-time
              description: >-
                [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
                UTC). When the stake was created.
              example: 2023-04-14T20:41:28.715Z
            protocol:
              type: string
              enum:
                - Xdc
            data:
              type: object
              properties:
                candidate:
                  type: string
                amount:
                  type: string
                proposeBlockNumber:
                  type: string
                withdrawBlockNumber:
                  type: string
                withdrawIndex:
                  type: string
              required:
                - candidate
                - amount
          required:
            - id
            - walletId
            - status
            - requester
            - requestBody
            - dateCreated
            - protocol
            - data
          title: Xdc
    StakeAction:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^stka-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          example: stka-567ui-9g9b7-ftgvpstk8qfa71b4
        stakeId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          example: stk-0pmu3-tog2k-fdtn0teii2i4r13f
        status:
          type: string
          enum:
            - PendingPolicyApproval
            - InProgress
            - Completed
            - Failed
            - Rejected
          description: >-
            Status of the stake action.


            | Status | Definition |

            | --- | --- |

            | `PendingPolicyApproval` | The action is pending approval due to a
            policy applied to the wallet. |

            | `InProgress` | The action has been initiated and is being
            processed. |

            | `Completed` | The action has been successfully completed. |

            | `Failed` | The action has failed. Check failureReason for details.
            |

            | `Rejected` | The action has been rejected by a policy approval
            action. |
        transactionId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^tx-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Deprecated.
          example: tx-583hu-sp2p7-slvb9nqpa3hd8bus
        signatureId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^sig-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Deprecated.
          example: sig-4sfvl-f4iha-umighfi3hk4t54dr
        transactionHash:
          type: string
          description: Deprecated.
        kind:
          type: string
          enum:
            - Stake
            - Unbond
            - Deposit
            - Withdraw
          description: >-
            The type of staking action being performed.


            | Kind | Definition |

            | --- | --- |

            | `Stake` | Delegate funds to a validator to begin earning rewards.
            |

            | `Unbond` | Initiate the unbonding process to release staked funds
            (subject to cooldown). |

            | `Deposit` | Add additional funds to an existing stake position. |

            | `Withdraw` | Withdraw unbonded funds from the stake position. |
        requester:
          $ref: '#/components/schemas/Requester'
        requestBody:
          anyOf:
            - allOf:
                - oneOf:
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Babylon
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        duration:
                          type: number
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                        - duration
                      title: Babylon
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Ethereum
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                      title: Ethereum
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Iota
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        validator:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{64}$
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        lockedIotas:
                          type: array
                          items:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{64}$
                          minItems: 1
                      required:
                        - protocol
                        - walletId
                        - validator
                        - amount
                      title: Iota
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Xdc
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        candidate:
                          type: string
                          description: Coinbase address of the XDC masternode to register
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: >-
                            Transaction amount denominated in wei (min
                            10,000,000 XDC)
                      required:
                        - protocol
                        - walletId
                        - candidate
                        - amount
                      title: Xdc
                - type: object
                  properties:
                    externalId:
                      type: string
            - allOf:
                - anyOf:
                    - oneOf:
                        - type: object
                          properties:
                            protocol:
                              type: string
                              enum:
                                - Iota
                            kind:
                              type: string
                              enum:
                                - Withdraw
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - protocol
                            - kind
                            - amount
                          title: IOTA Withdrawal
                        - type: object
                          properties:
                            protocol:
                              type: string
                              enum:
                                - Iota
                            kind:
                              type: string
                              enum:
                                - Deposit
                            amount:
                              type: string
                              pattern: ^\d+$
                            lockedIotas:
                              type: array
                              items:
                                type: string
                                pattern: ^0x[0-9a-fA-F]{64}$
                          required:
                            - protocol
                            - kind
                            - amount
                          title: IOTA Deposit
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Ethereum
                        kind:
                          type: string
                          enum:
                            - Withdraw
                      required:
                        - protocol
                        - kind
                      title: Ethereum Withdrawal
                    - oneOf:
                        - type: object
                          properties:
                            protocol:
                              type: string
                              enum:
                                - Xdc
                            kind:
                              type: string
                              enum:
                                - Withdraw
                          required:
                            - protocol
                            - kind
                          title: XDC Withdrawal
                        - type: object
                          properties:
                            protocol:
                              type: string
                              enum:
                                - Xdc
                            kind:
                              type: string
                              enum:
                                - Unbond
                          required:
                            - protocol
                            - kind
                          title: XDC Unbond
                - type: object
                  properties:
                    externalId:
                      type: string
        failureReason:
          type: string
          description: The failure reason, if any. Only present when status is Failed.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the stake action was created.
          example: 2023-04-14T20:41:28.715Z
      required:
        - id
        - stakeId
        - status
        - kind
        - requester
        - requestBody
        - dateCreated
    SwapQuote:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^swapQuote-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: ID of the Swap Quote.
          example: swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq
        walletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Id of the Dfns wallet spending the sourceAsset.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        targetWalletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: >-
            If not provided, the walletId is used as the target wallet. If
            provided, this field is currently required to be the same as
            walletId
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        provider:
          type: string
          enum:
            - UniswapX
            - UniswapClassic
            - CircleCctp
          description: Swap provider.
        sourceAsset:
          allOf:
            - oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - amount
                  title: Native Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - contract
                    - amount
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Spl
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - mint
                    - amount
                  title: Solana Fungible Token (SPL)
            - type: object
              properties:
                metadata:
                  type: object
                  properties:
                    network:
                      $ref: '#/components/schemas/Network'
                    name:
                      type: string
                    symbol:
                      type: string
                    decimals:
                      type: number
                    tid:
                      type: string
                  required:
                    - network
                    - decimals
              required:
                - metadata
          description: The source asset that will be spent on the swap transaction.
        targetAsset:
          allOf:
            - oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - amount
                  title: Native Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - contract
                    - amount
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Spl
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                    amount:
                      type: string
                      pattern: ^\d+$
                  required:
                    - kind
                    - mint
                    - amount
                  title: Solana Fungible Token (SPL)
            - type: object
              properties:
                metadata:
                  type: object
                  properties:
                    network:
                      $ref: '#/components/schemas/Network'
                    name:
                      type: string
                    symbol:
                      type: string
                    decimals:
                      type: number
                    tid:
                      type: string
                  required:
                    - network
                    - decimals
              required:
                - metadata
          description: The target asset that will be received with the swap transaction.
        slippageBps:
          type: integer
          minimum: 0
          maximum: 10000
          description: >-
            The slippage tolerance for this trade in [basis
            point](https://en.wikipedia.org/wiki/Basis_point) (BPS). Slippage
            tolerance defines the maximum price difference you're willing to
            accept during a trade from the estimated quote, ensuring you still
            receive at least a minimum number of tokens if the price shifts. One
            basis point equals one-hundredth of a percentage point, or 0.01%.
        fee:
          type: string
          pattern: ^\d+$
          description: >-
            Total fee deducted from the source amount to reach the target
            amount, in the source asset base units. Set for CCTP (the quoted
            maxFee Circle may deduct); omitted for providers that do not surface
            a single fee figure.
        dateCreated:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the quote was created.
        requestBody:
          anyOf:
            - oneOf:
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - UniswapClassic
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Id of the Dfns wallet spending the sourceAsset.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction, following the same stucture as the
                        [transfer
                        API](https://docs.dfns.co/api-reference/wallets/transfer-asset).
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                          required:
                            - kind
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                          required:
                            - kind
                            - contract
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                          required:
                            - kind
                            - mint
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction, follows the same structure as sourceAsset,
                        but doesn't include the amount.
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                  required:
                    - provider
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  title: UniswapClassic Swap Quote Request
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - UniswapX
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Id of the Dfns wallet spending the sourceAsset.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction, following the same stucture as the
                        [transfer
                        API](https://docs.dfns.co/api-reference/wallets/transfer-asset).
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                          required:
                            - kind
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                          required:
                            - kind
                            - contract
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                          required:
                            - kind
                            - mint
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction, follows the same structure as sourceAsset,
                        but doesn't include the amount.
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                  required:
                    - provider
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  title: UniswapX Swap Quote Request
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - CircleCctp
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Id of the Dfns wallet spending the sourceAsset.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction, following the same stucture as the
                        [transfer
                        API](https://docs.dfns.co/api-reference/wallets/transfer-asset).
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                          required:
                            - kind
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                          required:
                            - kind
                            - contract
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                          required:
                            - kind
                            - mint
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction, follows the same structure as sourceAsset,
                        but doesn't include the amount.
                    feeToleranceBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The maximum fee you will accept for this CCTP transfer,
                        in [basis
                        points](https://en.wikipedia.org/wiki/Basis_point) (BPS)
                        of the amount. CCTP is burn-and-mint with no price
                        slippage; this caps the bridge/forwarding fee — which
                        varies with chain congestion and Fast vs Standard speed
                        — so the burn does not revert if the fee rises. One
                        basis point equals 0.01%.
                    speed:
                      type: string
                      enum:
                        - Fast
                        - Standard
                      description: >-
                        Selects Fast (~8–20s, small fast-burn fee) or Standard
                        (~13–19min, no fast-burn fee).
                    useDurableNonce:
                      type: boolean
                      description: >-
                        Solana-source only. Bind the burn to a durable nonce so
                        it survives signing delays.
                  required:
                    - provider
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - feeToleranceBps
                  title: CircleCctp Swap Quote Request
            - type: object
              properties: {}
          description: The full request used for obtaining this quote.
        requester:
          $ref: '#/components/schemas/Requester'
      required:
        - id
        - walletId
        - provider
        - sourceAsset
        - targetAsset
        - slippageBps
        - dateCreated
        - requestBody
        - requester
      example:
        id: swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t
        walletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
        targetWalletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
        provider: UniswapClassic
        sourceAsset:
          kind: Native
          amount: '10000000000'
          metadata:
            network: EthereumSepolia
            name: Ethereum
            symbol: SepoliaETH
            decimals: 18
            tid: native:eth
        targetAsset:
          kind: Erc20
          contract: '0xda0be7efd234295395d4204d0df4358339b57b27'
          amount: '6467571553831928182'
          metadata:
            network: EthereumSepolia
            name: Test
            symbol: Test
            decimals: 18
            tid: erc20:0xda0be7efd234295395d4204d0df4358339b57b27
        slippageBps: 100
        dateCreated: 2025-09-11T10:52:15.039Z
        requestBody:
          provider: UniswapClassic
          walletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
          targetWalletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
          sourceAsset:
            kind: Native
            amount: '10000000000'
          targetAsset:
            kind: Erc20
            contract: '0xda0be7efd234295395d4204d0df4358339b57b27'
          slippageBps: 100
        requester:
          userId: us-48r5q-eshfg-9pmr2lo6bmpr4i4i
          tokenId: to-4etah-smoal-9n3rmhul4dpaueg5
    VaultAddress:
      type: object
      properties:
        walletId:
          type: string
        network:
          type: string
        address:
          type: string
      required:
        - walletId
        - network
        - address
      additionalProperties: false
      description: Vault address object.
    Vault:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Vault id.
          example: vlt-5vbsp-u62g1-ostmunqgds5o9tc2
        orgId:
          type: string
        name:
          type: string
        tags:
          type: array
          items:
            type: string
        externalId:
          type: string
        dateCreated:
          type: string
          format: date-time
        dateUpdated:
          type: string
          format: date-time
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/VaultAddress'
          description: The vault's addresses.
      required:
        - id
        - orgId
        - tags
        - dateCreated
        - dateUpdated
      additionalProperties: false
      description: Vault object.
    VaultLock:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^vlt-lck-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Vault lock id.
          example: vlt-lck-0lf1e-8a8ag-2ak7vrvusrj3so0j
        vaultId:
          type: string
        network:
          type: string
        tid:
          type: string
        amount:
          type: string
        owner:
          type: string
          description: The user that created the lock. Only this user can delete it.
        externalId:
          type: string
        reason:
          type: string
          description: The reason or note the lock was created with.
        dateCreated:
          type: string
          format: date-time
        dateDeleted:
          type: string
          format: date-time
      required:
        - id
        - vaultId
        - network
        - tid
        - amount
        - owner
        - dateCreated
      additionalProperties: false
      description: >-
        Vault lock object: funds manually locked for off-chain settlement or
        escrow.
    VaultAsset:
      type: object
      properties:
        kind:
          type: string
        network:
          type: string
        tid:
          type: string
        decimals:
          type: number
        symbol:
          type: string
        verified:
          type: boolean
        availableBalance:
          type: string
        quarantinedBalance:
          type: string
        lockedBalance:
          type: string
        quotes:
          type: object
          properties:
            USD:
              type: number
      required:
        - kind
        - network
        - tid
        - decimals
        - availableBalance
        - quarantinedBalance
        - lockedBalance
      additionalProperties: false
      description: Vault asset with balances broken down by kind and USD unit price.
    VaultNetWorth:
      type: object
      properties:
        available:
          type: object
          properties:
            USD:
              type: number
        quarantined:
          type: object
          properties:
            USD:
              type: number
        locked:
          type: object
          properties:
            USD:
              type: number
        total:
          type: object
          properties:
            USD:
              type: number
      required:
        - available
        - quarantined
        - locked
        - total
      additionalProperties: false
      description: Vault net worth in fiat, broken down by balance kind plus a total.
    VaultBalanceEntry:
      type: object
      properties:
        id:
          type: string
        kind:
          type: string
          enum:
            - Available
            - Outgoing
            - Fee
            - Incoming
            - Locked
            - Quarantined
          description: Vault balance kind.
        network:
          type: string
        tid:
          type: string
        amount:
          type: string
        transferId:
          type: string
        quarantineId:
          type: string
        lockId:
          type: string
      required:
        - id
        - kind
        - network
        - tid
        - amount
      additionalProperties: false
      description: Vault balance entry object.
    Offer:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^offer-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Offer id.
          example: offer-3ugfu-o8duj-vqu770ckmg7ilhp4
        orgId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Organization id.
          example: or-30tnh-itmjs-s235s5ontr3r23h2
        walletId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Wallet id.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        network:
          $ref: '#/components/schemas/Network'
        kind:
          type: string
          enum:
            - Native
            - Aip21
            - Asa
            - Coin
            - Cip56
            - Erc20
            - Erc721
            - Erc7984
            - Asset
            - Hip17
            - Hts
            - Sep41
            - Spl
            - Spl2022
            - Snip2
            - Snip3
            - Tep74
            - Trc10
            - Trc20
            - Trc721
            - Cis7
            - Cis2
            - Iou
            - Xls33
        metadata:
          type: object
          properties:
            asset:
              type: object
              properties:
                symbol:
                  type: string
                decimals:
                  type: integer
                  description: >-
                    Number of decimals used by the asset, see [this
                    guide](https://docs.dfns.co/guides/developers/displaying-balances)
                    for more details.
                verified:
                  type: boolean
                  description: Whether the asset is verified by DFNS as legitimate.
                quotes:
                  type: object
                  properties:
                    EUR: &ref_111
                      type: number
                    USD: *ref_111
                  description: Corresponding asset price in USD at the time of transfer.
          required:
            - asset
        txHash:
          type: string
        status:
          type: string
          enum:
            - Pending
            - Accepted
            - Rejected
            - Withdrawn
            - Expired
        from:
          type: string
        to:
          type: string
        value:
          type: string
          pattern: ^\d+(\.\d+)?$
        timestamp:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the offer was created.
          example: 2023-04-14T20:41:28.715Z
        expiresAt:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the offer expires.
          example: 2023-04-14T20:41:28.715Z
        memo:
          type: string
        settlementTransactionId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^tx-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: Transaction id.
          example: tx-583hu-sp2p7-slvb9nqpa3hd8bus
        dateSettled:
          type: string
          format: date-time
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). When the offer was settled.
          example: 2023-04-14T20:41:28.715Z
      required:
        - id
        - orgId
        - walletId
        - network
        - kind
        - metadata
        - txHash
        - status
        - from
        - to
        - value
        - timestamp
    WebhookWithSecret:
      type: object
      properties:
        id:
          type: string
          description: Webhook ID
        url:
          type: string
          description: Webhook url
        events:
          type: array
          items:
            anyOf:
              - type: string
                enum: &ref_112
                  - policy.triggered
                  - policy.approval.pending
                  - policy.approval.resolved
                  - key.created
                  - key.deleted
                  - key.delegated
                  - key.exported
                  - wallet.blockchainevent.detected
                  - wallet.blockchain_event.transfer.included
                  - wallet.blockchain_event.misc.confirmed
                  - wallet.created
                  - wallet.activated
                  - wallet.delegated
                  - wallet.exported
                  - wallet.signature.failed
                  - wallet.signature.rejected
                  - wallet.signature.requested
                  - wallet.signature.signed
                  - wallet.transaction.broadcasted
                  - wallet.transaction.confirmed
                  - wallet.transaction.failed
                  - wallet.transaction.rejected
                  - wallet.transaction.requested
                  - wallet.transfer.broadcasted
                  - wallet.transfer.confirmed
                  - wallet.transfer.failed
                  - wallet.transfer.rejected
                  - wallet.transfer.requested
                  - wallet.offer.received
                  - wallet.offer.accepted
                  - wallet.offer.rejected
                  - wallet.offer.withdrawn
                  - wallet.tags.modified
                  - vault.created
                  - vault.updated
                  - vault.tags.modified
                  - vault.event.created
                  - address_watch.blockchain_event.transfer.confirmed
                  - address_watch.blockchain_event.misc.confirmed
                  - payout.action.required
                description: WebhookEventKind
              - type: string
                enum:
                  - '*'
            description: WebhookEventKind
          description: All events this webhook is subscribed to.
        status:
          type: string
          enum:
            - Enabled
            - Disabled
          description: Webhook status
        description:
          type: string
          description: Short description this webhook's purpose
        dateCreated:
          type: string
          description: Date when webhook was created
        dateUpdated:
          type: string
          description: Date when webhook was last updated
        secret:
          type: string
          description: >-
            The secret associated with this webhook, with which webhook requests
            will be signed.
      required:
        - id
        - url
        - events
        - status
        - dateCreated
        - dateUpdated
        - secret
    Webhook:
      type: object
      properties:
        id:
          type: string
          description: Webhook ID
        url:
          type: string
          description: Webhook url
        events:
          type: array
          items:
            anyOf:
              - type: string
                enum: *ref_112
                description: WebhookEventKind
              - type: string
                enum:
                  - '*'
            description: WebhookEventKind
          description: All events this webhook is subscribed to.
        status:
          type: string
          enum:
            - Enabled
            - Disabled
          description: Webhook status
        description:
          type: string
          description: Short description this webhook's purpose
        dateCreated:
          type: string
          description: Date when webhook was created
        dateUpdated:
          type: string
          description: Date when webhook was last updated
      required:
        - id
        - url
        - events
        - status
        - dateCreated
        - dateUpdated
    WebhookEvent:
      type: object
      properties:
        id:
          type: string
          description: WebhookEvent ID
        date:
          type: string
          description: ISO date string when event was raised
        kind:
          type: string
          enum: *ref_112
          description: Webhook event
        data:
          type: object
          additionalProperties: {}
        status:
          type: string
          description: Status code of the webhook request
        error:
          type: string
          description: Error message if any error happened during the webhook request.
        timestampSent:
          type: integer
          exclusiveMinimum: 0
          description: >-
            Unix timestamp when the event was forwarded to the webhook url by
            our servers.
      required:
        - id
        - date
        - kind
        - data
        - status
        - timestampSent
  parameters: {}
paths:
  /address-watches:
    post:
      summary: Create Address Watch
      tags:
        - Address Watches
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Registers an on chain address to watch. An address watch is not
        controlled by Dfns: it holds no key, it cannot sign or move funds. The
        indexer matches on chain activity touching the address and sends the
        corresponding webhooks.


        The address must already exist on chain and is normalized to the form
        the indexer matches on (lowercase for EVM networks). Only networks that
        support address watches are accepted. A given address can only be
        watched once per network within an organization while the watch is
        Active.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `AddressWatches:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  allOf:
                    - $ref: '#/components/schemas/Network'
                    - description: >-
                        Network to watch the address on. Only networks that
                        support address watches are accepted.
                address:
                  type: string
                  minLength: 1
                  maxLength: 256
                  description: The on chain address to watch.
                name:
                  type: string
                  maxLength: 100
                  pattern: ^[a-z0-9-]+$
                  description: >-
                    Address watch nickname. Lowercase letters, digits and
                    dashes.
                externalId:
                  type: string
                  maxLength: 100
                  description: >-
                    User-defined value that can be used to correlate the entity
                    with an external system.
                tags:
                  type: array
                  items:
                    type: string
                    pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
                    description: Wallet Tag.
                  maxItems: 10
                  description: List of tags.
              required:
                - network
                - address
              additionalProperties: false
            examples:
              Ethereum:
                value:
                  network: Ethereum
                  address: '0x00e3495cf6af59008f22ffaf32d4c92ac33dac47'
                  name: exchange-hot-wallet
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressWatch'
    get:
      summary: List Address Watches
      tags:
        - Address Watches
      security:
        - authenticationToken: []
      description: >-
        Retrieves the list of address watches in your organization. Pagination
        is supported via limit and paginationToken parameters.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `AddressWatches:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/AddressWatch'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /address-watches/{addressWatchId}:
    get:
      summary: Get Address Watch
      tags:
        - Address Watches
      security:
        - authenticationToken: []
      description: Retrieves an address watch by its ID.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `AddressWatches:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^aw-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: The address watch to retrieve.
          required: true
          description: The address watch to retrieve.
          name: addressWatchId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressWatch'
  /address-watches/{addressWatchId}/assets:
    get:
      summary: Get Address Watch Assets
      tags:
        - Address Watches
      security:
        - authenticationToken: []
      description: >-
        Retrieves the list of assets held by the address watch, as tracked by
        the indexer. Balances are tracked from the moment the watch is created.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `AddressWatches:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^aw-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: The address watch to retrieve the assets of.
          required: true
          description: The address watch to retrieve the assets of.
          name: addressWatchId
          in: path
        - schema:
            type: string
            enum:
              - 'true'
          required: false
          name: netWorth
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  addressWatchId:
                    type: string
                  network:
                    $ref: '#/components/schemas/Network'
                  assets:
                    type: array
                    items:
                      allOf:
                        - oneOf:
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Native
                              required:
                                - kind
                              title: Native assets
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Aip21
                                metadata:
                                  type: string
                              required:
                                - kind
                                - metadata
                              title: Aptos Fungible Assets (AIP-21)
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Asa
                                assetId:
                                  type: string
                              required:
                                - kind
                                - assetId
                              title: Algorand Standard Assets (ASAs)
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Cis2
                                tokenAddress:
                                  type: string
                              required:
                                - kind
                                - tokenAddress
                              title: Concordium CIS-2 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum: &ref_116
                                    - Erc20
                                    - Snip2
                                    - Trc20
                                contract:
                                  type: string
                              required:
                                - kind
                                - contract
                              title: EVM ERC-20/Starknet SNIP-2/TRON TRC-20 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Erc7984
                                contract:
                                  type: string
                              required:
                                - kind
                                - contract
                              title: EVM ERC-7984 confidential tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Hts
                                tokenId:
                                  type: string
                              required:
                                - kind
                                - tokenId
                              title: Hedera tokens (HTS)
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Iou
                                currency:
                                  type: string
                                issuer:
                                  type: string
                              required:
                                - kind
                                - currency
                                - issuer
                              title: XRP Ledger IOU tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Cip56
                                instrumentId:
                                  type: string
                                instrumentAdmin:
                                  type: string
                              required:
                                - kind
                                - instrumentId
                                - instrumentAdmin
                              title: Canton CIP-56 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum: &ref_117
                                    - Coin
                                    - LockedCoin
                                coin:
                                  type: string
                              required:
                                - kind
                                - coin
                              title: Sui/IOTA Coin assets
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Xls33
                                issuanceId:
                                  type: string
                              required:
                                - kind
                                - issuanceId
                              title: XRP Ledger MPL (XLS-33) tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Asset
                                assetId:
                                  type: string
                              required:
                                - kind
                                - assetId
                              title: Polymesh/Cardano assets
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Cis7
                                tokenId:
                                  type: string
                              required:
                                - kind
                                - tokenId
                              title: Concordium PLTs ( CIS-7 tokens)
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Sep41
                                issuer:
                                  type: string
                                assetCode:
                                  type: string
                              required:
                                - kind
                                - issuer
                                - assetCode
                              title: Stellar SEP-41 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Trc10
                                tokenId:
                                  type: string
                              required:
                                - kind
                                - tokenId
                              title: TRON TRC-10 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum: &ref_118
                                    - Spl
                                    - Spl2022
                                mint:
                                  type: string
                              required:
                                - kind
                                - mint
                              title: Solana SPL/SPL2022 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Tep74
                                master:
                                  type: string
                              required:
                                - kind
                                - master
                              title: TON TEP-74 Jetton
                        - type: object
                          properties:
                            symbol:
                              type: string
                            decimals:
                              type: number
                            verified:
                              type: boolean
                            balance:
                              type: string
                            quotes:
                              type: object
                              properties:
                                USD:
                                  type: number
                          required:
                            - decimals
                            - balance
                  netWorth:
                    type: object
                    properties:
                      USD:
                        type: number
                required:
                  - addressWatchId
                  - network
                  - assets
  /address-watches/{addressWatchId}/blockchain-events:
    get:
      summary: Get Address Watch Blockchain Events
      tags:
        - Address Watches
      security:
        - authenticationToken: []
      description: >-
        Retrieves a list of decoded blockchain events indexed for the specified
        address watch.


        Blockchain events are not value transfers: asset and token transfers are
        listed by

        [Get Address Watch
        History](https://docs.dfns.co/api-reference/address-watches/get-address-watch-history)
        instead.

        Events from the same transaction share the same `txHash` across both
        lists.


        Items are sorted by descending block number; within one block the item
        order is not the on-chain

        order. `index` is the block scoped log index as a decimal string: sort
        by `blockNumber` and the

        numeric value of `index` to recover the on-chain order. Webhook delivery
        is at-least-once and

        unordered; use `id` to deduplicate.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `AddressWatches:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^aw-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Address watch you want to get the blockchain events from.
          required: true
          description: Address watch you want to get the blockchain events from.
          name: addressWatchId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: name
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: contract
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: txHash
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/AddressWatchBlockchainEvent'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                  addressWatchId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^aw-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: Address watch id.
                    example: aw-0pbh4-7sdh4-2occ0e4r1g7obe8c
                  network:
                    $ref: '#/components/schemas/Network'
                required:
                  - items
                  - addressWatchId
                  - network
  /address-watches/{addressWatchId}/history:
    get:
      summary: Get Address Watch History
      tags:
        - Address Watches
      security:
        - authenticationToken: []
      description: >-
        Retrieves the list of indexed on chain activities for the specified
        address watch.


        The list reflects the indexed on chain activity from the moment the
        watch was created. Events from before the watch are not backfilled.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `AddressWatches:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^aw-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Address watch you want to get the history from.
          required: true
          description: Address watch you want to get the history from.
          name: addressWatchId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            enum:
              - In
              - Out
            description: Transfer direction.
          required: false
          description: Transfer direction.
          name: direction
          in: query
        - schema:
            type: string
            enum:
              - NativeTransfer
              - Aip21Transfer
              - AsaTransfer
              - AssetTransfer
              - Cip56Transfer
              - Cis2Transfer
              - Cis7Transfer
              - CoinTransfer
              - Erc20Transfer
              - Erc721Transfer
              - Erc7984Transfer
              - HederaErc20Transfer
              - HederaErc721Transfer
              - Hip17Transfer
              - HtsTransfer
              - IouTransfer
              - LockedCoinTransfer
              - Sep41Transfer
              - Snip2Transfer
              - Snip3Transfer
              - SplTransfer
              - Spl2022Transfer
              - Tep74Transfer
              - Trc10Transfer
              - Trc20Transfer
              - Trc721Transfer
              - UtxoTransfer
              - Xls33Transfer
            description: Blockchain event kind.
          required: false
          description: Blockchain event kind.
          name: kind
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: contract
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/AddressWatchHistoryEvent'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                  addressWatchId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^aw-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: Address watch id.
                    example: aw-0pbh4-7sdh4-2occ0e4r1g7obe8c
                  network:
                    $ref: '#/components/schemas/Network'
                required:
                  - items
                  - addressWatchId
                  - network
  /agreements/latest-unaccepted:
    get:
      summary: Get Latest Unaccepted Agreement
      tags:
        - Agreements
      security:
        - authenticationToken: []
      description: Get the latest unaccepted agreement for a specific agreement type
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Agreements:Acceptance:Read`: Always required.
      parameters:
        - schema:
            type: string
            enum:
              - PrivacyPolicy
              - TermsAndConditions
              - UniswapTermsOfService
              - UniswapPrivacyPolicy
            description: Type of agreement to look up.
          required: true
          description: Type of agreement to look up.
          name: agreementType
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  latestAgreement:
                    $ref: '#/components/schemas/Agreement'
                required:
                  - latestAgreement
  /agreements/{agreementId}/accept:
    post:
      summary: Record Agreement Acceptance
      tags:
        - Agreements
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Record the acceptance of a specific agreement by its ID
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Agreements:Acceptance:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            description: ID of the agreement to accept.
          required: true
          description: ID of the agreement to accept.
          name: agreementId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  agreementId:
                    type: string
                    description: ID of the agreement that was accepted.
                  userId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: User id.
                    example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                  dateAccepted:
                    type: string
                    format: date-time
                    description: >-
                      [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date
                      (must be UTC). Date the agreement was accepted.
                    example: 2023-04-14T20:41:28.715Z
                required:
                  - agreementId
                  - userId
                  - dateAccepted
                additionalProperties: false
  /allocations:
    post:
      summary: Create Allocation
      tags:
        - Allocations
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Create a new allocation.
      x-mint:
        content: >-
          #### Authentication


          ✅ Organization User (`CustomerEmployee`)    

          ❌ Delegated User (`EndUser`)    

          ✅ Service Account


          #### Required Permissions


          `Allocations:Create`: Always required   

          `Wallets:Transactions:Create`: Always required. Allocation
          transactions are broadcast from your wallet.   

          `FeeSponsors:Use`: Required if `feeSponsorId` is specified and the
          sponsoree wallet belongs to an `EndUser` user kind.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - 0fns
                      description: Ofns protocol
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    sourceAsset:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Erc20
                        contract:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        amount:
                          type: string
                          pattern: ^\d+$
                      required:
                        - kind
                        - contract
                        - amount
                      title: EVM Fungible Token (ERC-20)
                    targetAsset:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Erc20
                        contract:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        amount:
                          type: string
                          pattern: ^\d+$
                      required:
                        - kind
                        - contract
                        - amount
                      title: EVM Fungible Token (ERC-20)
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  description: >-
                    Request body for creating a allocation investment using the
                    0fns protocol.
                  title: 0fns Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - SkySusds
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        USDS amount in smallest unit, e.g. "1000000000000000000"
                        = 1 USDS
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Sky sUSDS Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - GauntletUsdcPrime
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: USDC amount in smallest unit, e.g. "1000000" = 1 USDC
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Gauntlet gtUSDC Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - SteakhouseUsdt
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: USDT amount in smallest unit, e.g. "1000000" = 1 USDT
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Steakhouse USDT Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - GauntletUsdcPrimeBase
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: USDC amount in smallest unit, e.g. "1000000" = 1 USDC
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Gauntlet USDC Prime (Base) Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - SteakhouseUsdcBase
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: USDC amount in smallest unit, e.g. "1000000" = 1 USDC
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Steakhouse USDC (Base) Allocation Request
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Wallet id.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    protocol:
                      type: string
                      enum:
                        - SentoraPyusdMain
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    provider:
                      type: string
                      enum:
                        - M0
                        - Yield.xyz
                      description: The provider handling this allocation.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: PYUSD amount in smallest unit, e.g. "1000000" = 1 PYUSD
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - walletId
                    - protocol
                    - amount
                  title: Sentora PYUSD Main Allocation Request
              description: Request body for creating an allocation investment.
            examples:
              Ofns:
                value:
                  externalId: ext-123
                  sourceAsset:
                    kind: Erc20
                    contract: '0x6b175474e89094c44da98b954eedeac495271d0f'
                    amount: '1000000000000000000'
                  targetAsset:
                    kind: Erc20
                    contract: '0x5d3a536e4d6dbd6114cc1ead35777bab948e3643'
                    amount: '32000000000000000000'
                  slippageBps: 50
                  walletId: wa-4g991-s29to-9hrq4nbuto6ih33b
                  protocol: 0fns
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Allocation'
                  - type: object
                    properties:
                      actions:
                        type: array
                        items:
                          $ref: '#/components/schemas/AllocationAction'
                    required:
                      - actions
                description: >-
                  A allocation investment representing funds deposited to earn
                  interest from a DeFi protocol.
    get:
      summary: List Allocations
      tags:
        - Allocations
      security:
        - authenticationToken: []
      description: Lists the allocations of your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Allocations:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Allocation'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /allocations/{allocationId}/actions:
    post:
      summary: Create Allocation Action
      tags:
        - Allocations
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Create a new action for an existing allocation.
      x-mint:
        content: >-
          #### Authentication


          ✅ Organization User (`CustomerEmployee`)    

          ❌ Delegated User (`EndUser`)    

          ✅ Service Account


          #### Required Permissions


          `Allocations:Update`: Always required   

          `Wallets:Transactions:Create`: Always required. Allocation
          transactions are broadcast from your wallet.   

          `FeeSponsors:Use`: Required if `feeSponsorId` is specified and the
          sponsoree wallet belongs to an `EndUser` user kind.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Unique identifier for the allocation investment.
          required: true
          description: Unique identifier for the allocation investment.
          name: allocationId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Deposit
                        - Withdraw
                      description: >-
                        The type of action being performed on the allocation
                        investment: Deposit to add funds or Withdraw to remove
                        funds.
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    sourceAsset:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Erc20
                        contract:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        amount:
                          type: string
                          pattern: ^\d+$
                      required:
                        - kind
                        - contract
                        - amount
                      title: EVM Fungible Token (ERC-20)
                    targetAsset:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - Erc20
                        contract:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                        amount:
                          type: string
                          pattern: ^\d+$
                      required:
                        - kind
                        - contract
                        - amount
                      title: EVM Fungible Token (ERC-20)
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  description: >-
                    Request body for creating a allocation action (deposit or
                    withdrawal) using the 0fns protocol.
                  title: 0fns Allocation Action Request
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Deposit
                        - Withdraw
                      description: >-
                        The type of action being performed on the allocation
                        investment: Deposit to add funds or Withdraw to remove
                        funds.
                    externalId:
                      type: string
                      description: >-
                        An optional external identifier provided by the client
                        to ensure idempotency and prevent duplicate operations.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        Underlying token amount in smallest unit, e.g. "1000000"
                        = 1 USDC. Applies to both deposits and withdrawals.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this allocation. When set, allocation transactions are
                        broadcast as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - amount
                  description: >-
                    Request body for creating a allocation action (deposit or
                    withdrawal) for a Yield.xyz vault allocation.
                  title: Yield.xyz Vault Allocation Action Request
              description: Request body for creating an allocation action.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Allocation'
                  - type: object
                    properties:
                      actions:
                        type: array
                        items:
                          $ref: '#/components/schemas/AllocationAction'
                    required:
                      - actions
                description: >-
                  A allocation investment representing funds deposited to earn
                  interest from a DeFi protocol.
    get:
      summary: List Allocation Actions
      tags:
        - Allocations
      security:
        - authenticationToken: []
      description: Retrieve the list of actions for a specific allocation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Allocations:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Unique identifier for the allocation investment.
          required: true
          description: Unique identifier for the allocation investment.
          name: allocationId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/AllocationAction'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /allocations/{allocationId}:
    get:
      summary: Get Allocation
      tags:
        - Allocations
      security:
        - authenticationToken: []
      description: Retrieve the details of a specific allocation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Allocations:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Unique identifier for the allocation investment.
          required: true
          description: Unique identifier for the allocation investment.
          name: allocationId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Allocation'
                  - type: object
                    properties:
                      actions:
                        type: array
                        items:
                          $ref: '#/components/schemas/AllocationAction'
                    required:
                      - actions
                description: >-
                  A allocation investment representing funds deposited to earn
                  interest from a DeFi protocol.
  /allocations/info:
    get:
      summary: Get Allocations Info
      tags:
        - Allocations
      security:
        - authenticationToken: []
      description: >-
        Retrieve the current reward rate (APY) for each supported allocation
        protocol.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Allocations:Read`: Always required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  0fns: &ref_113
                    type: object
                    properties:
                      rewardsRate:
                        type: number
                    required:
                      - rewardsRate
                  SkySusds: *ref_113
                  GauntletUsdcPrime: *ref_113
                  SteakhouseUsdt: *ref_113
                  GauntletUsdcPrimeBase: *ref_113
                  SteakhouseUsdcBase: *ref_113
                  SentoraPyusdMain: *ref_113
  /auth/action:
    post:
      summary: Create User Action Signature
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >
        Completes the user action signing process and provides a signing token
        that can be used to verify the user intended to perform the action.


        This is the first step of the [User Action Signing
        flow](https://docs.dfns.co/api-reference/auth/signing-flows).


        The type of credentials used to sign the action is determined by the
        `kind` field in the nested objects (`firstFactor` and `secondFactor`).
        Supported credential kinds are:

        * `Fido2`: User action is signed by a user's signing device using
        `WebAuthn`.

        * `Key`: User action is signed by a user's, or token's, private key.

        * `PasswordProtectedKey`: Login challenge is signed by the decrypted
        user's private key that was sent during [Create User Action Signature
        Challenge](https://docs.dfns.co/api-reference/auth/create-user-action-challenge)
        step.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                challengeIdentifier:
                  type: string
                  description: >-
                    Temporary authentication token returned by the Create
                    Challenge endpoint.
                firstFactor:
                  $ref: '#/components/schemas/FirstFactorAssertion'
                secondFactor:
                  $ref: '#/components/schemas/SecondFactorAssertion'
              required:
                - challengeIdentifier
                - firstFactor
              additionalProperties: false
            examples:
              Fido2 Passkey credential:
                value:
                  challengeIdentifier: eyJ0e...fQNA
                  firstFactor:
                    kind: Fido2
                    credentialAssertion:
                      credId: c1QEdgnPLJargwzy3cbYKny4Q18u0hr97unXsF3DiE8
                      clientData: >-
                        eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiTVdNME1tWTVZVFEwTURSaU56ZGhOVEZoTnpZNU9EUXdOV0k1WlRRNFkyUmhPRFppTkRrM1pUWXpPVEU1T0dZeU1EY3haakJqWXprNE1tUTVZelkxTUEiLCJvcmlnaW4iOiJodHRwczovL2FwcC5kZm5zLm5pbmphIiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ
                      authenticatorData: WT-zFZUBbJHfBkmhzTlPf49LTn7asLeTQKhm_riCvFgFAAAAAA
                      signature: >-
                        MEUCIQDJ8G9J1NTjdoKx0yloYw45bpn6fJhcqCoUGiZuOU1IAQIgAtPt7S8FHFYW9OMHh3S5FVAxk-lhli-2lX22bBNSDog
                      userHandle: dXMtMmJhMGgtbHZwMnEtOHYxODYwcGNqMWJoNWlyaQ
              Key Credential:
                value:
                  challengeIdentifier: eyJ0e...fQNA
                  firstFactor:
                    kind: Key
                    credentialAssertion:
                      credId: 6Ca6tAOFTx2odyJBnCoRO-gPvfpfy0EOoOcEaxfxIOk
                      clientData: >-
                        eyJ0eXBlIjoia2V5LmdldCIsImNoYWxsZW5nZSI6Ik1XTTBNbVk1WVRRME1EUmlOemRoTlRGaE56WTVPRFF3TldJNVpUUTRZMlJoT0RaaU5EazNaVFl6T1RFNU9HWXlNRGN4WmpCall6azRNbVE1WXpZMU1BIiwib3JpZ2luIjoiaHR0cHM6Ly9hcHAuZGZucy5uaW5qYSIsImNyb3NzT3JpZ2luIjpmYWxzZX0
                      signature: >-
                        owt8WtpJT_6eEuw4UwdIX2HMMwENgk0SrI-RoCMPhx_9YMVpNKJGmJfHUusf_R1Mor9a_hinQVuXj4_XRdeJFSY2AySXSUk
              Password-protected Key Credential:
                value:
                  challengeIdentifier: eyJ0e...fQNA
                  firstFactor:
                    kind: PasswordProtectedKey
                    credentialAssertion:
                      credId: 6Ca6tAOFTx2odyJBnCoRO-gPvfpfy0EOoOcEaxfxIOk
                      clientData: >-
                        eyJ0eXBlIjoia2V5LmdldCIsImNoYWxsZW5nZSI6Ik1XTTBNbVk1WVRRME1EUmlOemRoTlRGaE56WTVPRFF3TldJNVpUUTRZMlJoT0RaaU5EazNaVFl6T1RFNU9HWXlNRGN4WmpCall6azRNbVE1WXpZMU1BIiwib3JpZ2luIjoiaHR0cHM6Ly9hcHAuZGZucy5uaW5qYSIsImNyb3NzT3JpZ2luIjpmYWxzZX0
                      signature: >-
                        owt8WtpJT_6eEuw4UwdIX2HMMwENgk0SrI-RoCMPhx_9YMVpNKJGmJfHUusf_R1Mor9a_hinQVuXj4_XRdeJFSY2AySXSUk
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  userAction:
                    type: string
                    description: >-
                      Signing token to use to verify the user intended to
                      perform the action.
                required:
                  - userAction
                example:
                  userAction: eyJ0eX...bzrQakA
  /auth/action/init:
    post:
      summary: Create User Action Challenge
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >-
        Starts a user action signing session, returning a challenge that will be
        used to verify the user's intent to perform an action.
          
          This is the first step of the [User Action Signing flow](https://docs.dfns.co/api-reference/auth/signing-flows).
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                userActionServerKind:
                  type: string
                  enum:
                    - Api
                  description: Optional indicator of which Dfns service being called.
                userActionHttpMethod:
                  type: string
                  enum:
                    - POST
                    - PUT
                    - DELETE
                    - GET
                  description: >-
                    The HTTP method that will be used to make the request that
                    is being signed.
                userActionHttpPath:
                  type: string
                  minLength: 1
                  description: The path of the request that is being signed.
                userActionPayload:
                  type: string
                  description: The JSON-encoded body of the request that is being signed.
              required:
                - userActionHttpMethod
                - userActionHttpPath
                - userActionPayload
              additionalProperties: false
              example:
                userActionPayload: >-
                  {"name": "My PAT","publicKey": "-----BEGIN PUBLIC
                  KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZQt0YI2hdsFNmKJesSkAHldyPLIV\nFLI/AhQ5eGasA7jU8tEXOb6nGvxRaTIXrgZ2NPdk78O8zMqz5u9AekH8jA==\n-----END
                  PUBLIC KEY-----","daysValid": 365,"permissionId":
                  "pm-delaw-avoca-v16r37fpp8koqebc"}
                userActionHttpMethod: POST
                userActionHttpPath: /auth/pats
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  challenge:
                    type: string
                    description: >-
                      Challenge (string) to be signed by the requester with his
                      private key.
                  challengeIdentifier:
                    type: string
                    description: A JWT that identifies the signing session.
                  rp:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          ID of the WebAuthn relying party (typically a domain
                          name).
                      name:
                        type: string
                        description: Human-readable name of the relying party.
                    required:
                      - id
                      - name
                    description: Deprecated. Should not be used.
                  supportedCredentialKinds:
                    type: array
                    items:
                      type: object
                      properties:
                        kind:
                          $ref: '#/components/schemas/CredentialKind'
                        factor:
                          type: string
                          enum:
                            - first
                            - second
                            - either
                          description: >-
                            Indicates if the credential can be used as a first
                            factor, second factor, or either; can be `first`,
                            `second`, or `either`.
                        requiresSecondFactor:
                          type: boolean
                          description: >-
                            When true indicates a second factor credential is
                            required if the credential is used as a first
                            factor.
                      required:
                        - kind
                        - factor
                        - requiresSecondFactor
                    description: >-
                      Identifies the kind of credentials that can be used to
                      sign the user action.
                  userVerification:
                    type: string
                    enum:
                      - required
                      - preferred
                      - discouraged
                    description: >
                      Value indicating if the user should be prompted for a
                      second factor. Can be one of the following values:

                      * required to indicate the user must be prompted for their
                      pin, biometrics, or another second factor option

                      * preferred to indicate the user should be prompted for a
                      second factor if it is supported

                      * discouraged to indicate the user should not be prompted
                      for their second factor unless the device requires it
                  attestation:
                    type: string
                    enum:
                      - none
                      - indirect
                      - direct
                      - enterprise
                    description: >
                      Identifies the information needed to verify the user's
                      signing certificate; can be one of the following:

                      * none: indicates no attestation data is required

                      * indirect: indicates the attestation data should be
                      given, but that it can be generated using an Anonymization
                      CA

                      * direct: indicates the attestation data must be given and
                      should be generated by the authenticator

                      * enterprise: indicates the attestation data should
                      include information to uniquely identify the user's device
                  allowCredentials:
                    type: object
                    properties:
                      key:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                              description: Is always `public-key`.
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID that identifies the credential.
                              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                          required:
                            - type
                            - id
                        description: >-
                          List of keys that the user can use to sign the user
                          action.
                      passwordProtectedKey:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                              description: Is always `public-key`.
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID that identifies the credential.
                              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                            encryptedPrivateKey:
                              type: string
                              description: >-
                                Encrypted Private Key. Only the user knows the
                                password to decrypt it and have access to the
                                private key.
                          required:
                            - type
                            - id
                            - encryptedPrivateKey
                        description: >-
                          List of password protected keys that the user can use
                          to sign the login challenge.
                      webauthn:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                              description: Is always `public-key`.
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID that identifies the credential.
                              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                          required:
                            - type
                            - id
                        description: >-
                          List of WebAuthn credentials that the user can use to
                          sign the user action.
                    required:
                      - key
                      - webauthn
                    description: >-
                      List of credentials that the user can use to sign the user
                      action.
                  externalAuthenticationUrl:
                    type: string
                    description: >-
                      Optional url containing a secret value that can be used to
                      enable cross device/origin signing.
                required:
                  - challenge
                  - challengeIdentifier
                  - supportedCredentialKinds
                  - userVerification
                  - attestation
                  - allowCredentials
                  - externalAuthenticationUrl
                example: &ref_114
                  supportedCredentialKinds:
                    - kind: Fido2
                      factor: first
                      requiresSecondFactor: true
                  challenge: >-
                    MWM0MmY5YTQ0MDRiNzdhNTFhNzY5ODQwNWI5ZTQ4Y2RhODZiNDk3ZTYzOTE5OGYyMDcxZjBjYzk4MmQ5YzY1MA
                  challengeIdentifier: eyJ0e...fQNA
                  userVerification: required
                  attestation: direct
                  externalAuthenticationUrl: ''
                  allowCredentials:
                    key: []
                    passwordProtectedKey:
                      - type: public-key
                        id: hIjkx5PqVxz8wbtuvOh2UYHEY1QXS8mMfKeEDGt-0Fo=
                        encryptedPrivateKey: >-
                          LsXVskHYqqrKKxBC9KvqStLEmxak5Y7NaboDDlRSIW7evUJpQTT1AYvx0EsFskmriaVb3AjTCGEv7gqUKokml1USL7+dVmrUVhV+cNWtS5AorvRuZr1FMGVKFkW1pKJhFNH2e2O661UhpyXsRXzcmksA7ZN/V37ZK7ITue0gs6I=
                    webauthn:
                      - type: public-key
                        id: c1QEdgnPLJargwzy3cbYKny4Q18u0hr97unXsF3DiE8
  /auth/action/logs:
    get:
      summary: List Audit Logs
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >2+

          Gets all signature events which have occurred in the over the timeframe. The time range is unbounded, but the export is capped at 100,000 rows. When the result is truncated, the `X-Dfns-Result-Truncated: true` response header is set and a trailing `# TRUNCATED ...` line is appended to the CSV; narrow the time range to retrieve all data.

        StartTime and EndTime are URL-encoded UTC ISO timestamps:

        `startTime=2025-08-29T02%3A46%3A40Z`   

        `endTime=2025-09-01T02%3A46%3A40Z`   


        An additional optional query parameter, `userId` can be specified to
        filter down events to a particular user. The API will return results
        found in CSV format.



        Dfns maintains a script which can be used for audit log signature
        validation: [WebAuthn Signature
        Verifier](https://github.com/dfns/example-scripts/tree/m/python/utils)

      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Logs:Read`: Always required.
      parameters:
        - schema:
            type: string
            format: date-time
            description: >-
              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
              UTC). Start of the range.
          required: true
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). Start of the range.
          name: startTime
          in: query
        - schema:
            type: string
            format: date-time
            description: >-
              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
              UTC). End of the range. The export is capped at 100,000 rows.
          required: true
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). End of the range. The export is capped at 100,000 rows.
          name: endTime
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Provide a user id to list events from that particular user only.
          required: false
          description: Provide a user id to list events from that particular user only.
          name: userId
          in: query
      responses:
        '200':
          description: Success
          content:
            text/csv:
              schema:
                type: string
                description: "List of event in CSV format. Content contains: \n        \n| Field | Type | description |\n| ----- | ---- | ----------- |\n| Date Performed | date-time | When the action was performed |\n| Audit Log ID | log id | id of the log (to use with [Get Audit Log](https://docs.dfns.co/api-reference/auth/get-audit-log)) |\n| User ID | user id | User id who performed the action |\n| Primary Credential ID | credential id | Credential used by the user |\n| Action Path\tSummary | string | Summary of this action |\n\nCheck out '[Get Audit Log](https://docs.dfns.co/api-reference/auth/get-audit-log)' response for more details about those fields.\n    "
                example: >-
                  Date Performed,Audit Log ID,User ID,Username,Primary
                  Credential ID,Action Path,Summary

                  2025-10-09T13:23:05.134Z,uj-4vs1l-5012b-9589s12d57t26u8,us-4ovh4-6a0h8-81d2df5e2u8l6djt,my-user@my-company.com,cr-7bfqk-89uag-8nle1s2d3f8e6dvd1mk,/wallets/wa-3l6ap-r4cbt-8js1e2f3s8u5242c8,Update
                  wallet wa-3l6ap-r4cbt-8j09mhse1f3s5e242c8.
  /auth/action/logs/{id}:
    get:
      summary: Get Audit Log
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >-

        Gets detailed information for a particular audit log. Specifically, the
        API returns the action performed, as well as the `firstFactorCredential`
        in which you will find the signature information required to validate
        it. 


        Dfns maintains a script which can be used for audit log signature
        validation: [WebAuthn Signature
        Verifier](https://github.com/dfns/example-scripts/tree/m/python/utils)
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Logs:Read`: Always required.
      parameters:
        - schema:
            anyOf:
              - type: string
                minLength: 1
                maxLength: 64
                pattern: ^uj-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                description: ''
                example: uj-22lhj-mp2ir-88at3r4cufpis60i
              - type: string
                minLength: 1
                maxLength: 64
                pattern: ^to-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                description: ''
                example: to-202a0-cdo33-o65mbt6q758lvvnt
            description: Log id you need information about.
          required: true
          description: Log id you need information about.
          name: id
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditLog'
  /auth/apps:
    get:
      summary: List Applications
      tags:
        - Auth
      security:
        - authenticationToken: []
      deprecated: true
      description: |-
        <Warning>
          Applications are deprecated and will be removed in a future release. See details [here](https://docs.dfns.co/deprecation/applications-deprecation).
          </Warning>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        appId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID of the application (deprecated).
                          example: ap-2a9in-tt2a1-983lho480p35ejd0
                        kind:
                          type: string
                          enum:
                            - ServerSideApplication
                            - ClientSideApplication
                        orgId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Organization id.
                          example: or-30tnh-itmjs-s235s5ontr3r23h2
                        expectedRpId:
                          type: string
                          description: Expected relying party ID for webauthn (deprecated).
                        name:
                          type: string
                          description: Human-readable name of the application.
                        isActive:
                          type: boolean
                          description: Whether the application is active.
                        expectedOrigin:
                          type: string
                          description: Expected origin for webauthn (deprecated).
                        permissionAssignments:
                          type: array
                          items:
                            type: object
                            properties:
                              permissionName:
                                type: string
                                description: Human-readable name of the permission (role).
                              permissionId:
                                type: string
                                minLength: 1
                                maxLength: 64
                                pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                description: >-
                                  ID of the permission (also referred to as
                                  "role" in the dashboard).
                                example: pm-37vj4-jkr4l-lc9945spfftkne57
                              assignmentId:
                                type: string
                                minLength: 1
                                maxLength: 64
                                pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                description: ID of the permission assignment.
                                example: as-1vcmc-qrek0-6b4vii9pln60907e
                              operations:
                                type: array
                                items:
                                  type: string
                                description: >-
                                  List of API operations granted by this
                                  permission.
                            required:
                              - permissionName
                              - permissionId
                              - assignmentId
                          description: Permissions (roles) assigned to the application.
                        accessTokens:
                          type: array
                          items:
                            $ref: '#/components/schemas/PersonalAccessToken'
                          description: Access tokens associated with the application.
                      required:
                        - appId
                        - kind
                        - orgId
                        - name
                        - isActive
                        - permissionAssignments
                        - accessTokens
                    description: Current page items.
                required:
                  - items
  /auth/apps/{appId}:
    get:
      summary: Get Application
      tags:
        - Auth
      security:
        - authenticationToken: []
      deprecated: true
      description: |-
        <Warning>
          Applications are deprecated and will be removed in a future release. See details [here](https://docs.dfns.co/deprecation/applications-deprecation).
          </Warning>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: ID of the application (deprecated).
          required: true
          description: ID of the application (deprecated).
          name: appId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  appId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: ID of the application (deprecated).
                    example: ap-2a9in-tt2a1-983lho480p35ejd0
                  kind:
                    type: string
                    enum:
                      - ServerSideApplication
                      - ClientSideApplication
                  orgId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: Organization id.
                    example: or-30tnh-itmjs-s235s5ontr3r23h2
                  expectedRpId:
                    type: string
                    description: Expected relying party ID for webauthn (deprecated).
                  name:
                    type: string
                    description: Human-readable name of the application.
                  isActive:
                    type: boolean
                    description: Whether the application is active.
                  expectedOrigin:
                    type: string
                    description: Expected origin for webauthn (deprecated).
                  permissionAssignments:
                    type: array
                    items:
                      type: object
                      properties:
                        permissionName:
                          type: string
                          description: Human-readable name of the permission (role).
                        permissionId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: >-
                            ID of the permission (also referred to as "role" in
                            the dashboard).
                          example: pm-37vj4-jkr4l-lc9945spfftkne57
                        assignmentId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID of the permission assignment.
                          example: as-1vcmc-qrek0-6b4vii9pln60907e
                        operations:
                          type: array
                          items:
                            type: string
                          description: List of API operations granted by this permission.
                      required:
                        - permissionName
                        - permissionId
                        - assignmentId
                    description: Permissions (roles) assigned to the application.
                  accessTokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonalAccessToken'
                    description: Access tokens associated with the application.
                required:
                  - appId
                  - kind
                  - orgId
                  - name
                  - isActive
                  - permissionAssignments
                  - accessTokens
  /auth/credentials:
    post:
      summary: Create Credential
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Part of the flow [Create Credential Regular
        flow](https://docs.dfns.co/api-reference/auth/credentials#regular-flow).


        Adds a new credential to a user's account. See [Credential
        Kinds](https://docs.dfns.co/api-reference/auth/credentials#credential-kinds)
        for all supported credential types.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateCredentialFido2Attestation'
                - $ref: '#/components/schemas/CreateCredentialKeyAttestation'
                - $ref: >-
                    #/components/schemas/CreateCredentialPasswordProtectedKeyAttestation
                - $ref: '#/components/schemas/CreateCredentialRecoveryKeyAttestation'
                - $ref: '#/components/schemas/CreateCredentialPasswordAttestation'
                - $ref: '#/components/schemas/CreateCredentialTotpAttestation'
              discriminator:
                propertyName: credentialKind
                mapping:
                  Fido2: '#/components/schemas/CreateCredentialFido2Attestation'
                  Key: '#/components/schemas/CreateCredentialKeyAttestation'
                  PasswordProtectedKey: >-
                    #/components/schemas/CreateCredentialPasswordProtectedKeyAttestation
                  RecoveryKey: '#/components/schemas/CreateCredentialRecoveryKeyAttestation'
                  Password: '#/components/schemas/CreateCredentialPasswordAttestation'
                  Totp: '#/components/schemas/CreateCredentialTotpAttestation'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credential'
    get:
      summary: List Credentials
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: List all credentials for a user.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Credential'
                    description: Current page items.
                required:
                  - items
  /auth/credentials/init:
    post:
      summary: Create Credential Challenge
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >-
        Part of the flow [Create Credential Regular
        flow](https://docs.dfns.co/api-reference/auth/credentials#regular-flow).
          
          Starts a create user credential session, returning a challenge that will be used to verify the user's identity.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  $ref: '#/components/schemas/CredentialKind'
              required:
                - kind
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Fido2
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      challenge:
                        type: string
                        description: Challenge value to be signed by the credential.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      authenticatorSelection:
                        type: object
                        properties:
                          authenticatorAttachment:
                            type: string
                            enum:
                              - platform
                              - cross-platform
                          residentKey:
                            type: string
                            enum:
                              - required
                              - preferred
                              - discouraged
                          requireResidentKey:
                            type: boolean
                          userVerification:
                            type: string
                            enum:
                              - required
                              - preferred
                              - discouraged
                            description: >
                              Value indicating if the user should be prompted
                              for a second factor. Can be one of the following
                              values:

                              * required to indicate the user must be prompted
                              for their pin, biometrics, or another second
                              factor option

                              * preferred to indicate the user should be
                              prompted for a second factor if it is supported

                              * discouraged to indicate the user should not be
                              prompted for their second factor unless the device
                              requires it
                        required:
                          - residentKey
                          - requireResidentKey
                          - userVerification
                      attestation:
                        type: string
                        enum:
                          - none
                          - indirect
                          - direct
                          - enterprise
                        description: >
                          Identifies the information needed to verify the user's
                          signing certificate; can be one of the following:

                          * none: indicates no attestation data is required

                          * indirect: indicates the attestation data should be
                          given, but that it can be generated using an
                          Anonymization CA

                          * direct: indicates the attestation data must be given
                          and should be generated by the authenticator

                          * enterprise: indicates the attestation data should
                          include information to uniquely identify the user's
                          device
                      pubKeyCredParams:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                            alg:
                              type: number
                          required:
                            - type
                            - alg
                      excludeCredentials:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                              description: Is always `public-key`.
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID that identifies the credential.
                              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                          required:
                            - type
                            - id
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - challenge
                      - authenticatorSelection
                      - attestation
                      - pubKeyCredParams
                      - excludeCredentials
                      - temporaryAuthenticationToken
                    description: >-
                      Fido2 Credential, also known as Passkeys or WebauthN
                      credential.
                    title: Fido2/Passkeys
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Key
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      challenge:
                        type: string
                        description: Challenge value to be signed by the credential.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      attestation:
                        type: string
                        enum:
                          - none
                          - indirect
                          - direct
                          - enterprise
                        description: >
                          Identifies the information needed to verify the user's
                          signing certificate; can be one of the following:

                          * none: indicates no attestation data is required

                          * indirect: indicates the attestation data should be
                          given, but that it can be generated using an
                          Anonymization CA

                          * direct: indicates the attestation data must be given
                          and should be generated by the authenticator

                          * enterprise: indicates the attestation data should
                          include information to uniquely identify the user's
                          device
                      pubKeyCredParams:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                            alg:
                              type: number
                          required:
                            - type
                            - alg
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - challenge
                      - attestation
                      - pubKeyCredParams
                      - temporaryAuthenticationToken
                    description: '"raw" public/private keypair.'
                    title: Public/Private key pair
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - PasswordProtectedKey
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      challenge:
                        type: string
                        description: Challenge value to be signed by the credential.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      attestation:
                        type: string
                        enum:
                          - none
                          - indirect
                          - direct
                          - enterprise
                        description: >
                          Identifies the information needed to verify the user's
                          signing certificate; can be one of the following:

                          * none: indicates no attestation data is required

                          * indirect: indicates the attestation data should be
                          given, but that it can be generated using an
                          Anonymization CA

                          * direct: indicates the attestation data must be given
                          and should be generated by the authenticator

                          * enterprise: indicates the attestation data should
                          include information to uniquely identify the user's
                          device
                      pubKeyCredParams:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                            alg:
                              type: number
                          required:
                            - type
                            - alg
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - challenge
                      - attestation
                      - pubKeyCredParams
                      - temporaryAuthenticationToken
                    description: 'Encrypted private key. '
                    title: Password-protected Key
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - RecoveryKey
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      challenge:
                        type: string
                        description: Challenge value to be signed by the credential.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      attestation:
                        type: string
                        enum:
                          - none
                          - indirect
                          - direct
                          - enterprise
                        description: >
                          Identifies the information needed to verify the user's
                          signing certificate; can be one of the following:

                          * none: indicates no attestation data is required

                          * indirect: indicates the attestation data should be
                          given, but that it can be generated using an
                          Anonymization CA

                          * direct: indicates the attestation data must be given
                          and should be generated by the authenticator

                          * enterprise: indicates the attestation data should
                          include information to uniquely identify the user's
                          device
                      pubKeyCredParams:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                            alg:
                              type: number
                          required:
                            - type
                            - alg
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - challenge
                      - attestation
                      - pubKeyCredParams
                      - temporaryAuthenticationToken
                    description: 'Use an recovery key. '
                    title: Recovery Credentials
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Password
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - temporaryAuthenticationToken
                    description: Not supported, will be removed in a future release.
                    title: <Deprecated> Password
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Totp
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      otpUrl:
                        type: string
                        description: Provisioning URL for the TOTP authenticator.
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - otpUrl
                      - temporaryAuthenticationToken
                    description: Not supported, will be removed in a future release.
                    title: <Deprecated> TOTP
  /auth/credentials/activate:
    put:
      summary: Activate Credential
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Activates a credential that was previously deactivated. If the
        credential is already activated no action is taken.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                credentialUuid:
                  type: string
                  minLength: 1
                  description: UUID of the credential to activate.
              required:
                - credentialUuid
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable success message.
                required:
                  - message
  /auth/credentials/{credentialUuid}:
    delete:
      summary: Delete Credential
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Delete a specific credential.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: credentialUuid
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /auth/credentials/deactivate:
    put:
      summary: Deactivate Credential
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Deactivates a credential that was previously active. If the credential
        is already deactivated no action is taken.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                credentialUuid:
                  type: string
                  minLength: 1
                  description: UUID of the credential to deactivate.
              required:
                - credentialUuid
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable success message.
                required:
                  - message
  /auth/credentials/code:
    post:
      summary: Create Credential Code
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Part of the [Create Credential With Code
        flow](https://docs.dfns.co/api-reference/auth/credentials#create-credential-with-code-flow).


        Creates a one-time-code that can then be used to create a new credential
        from a place you don't have access to one of your existing credential.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                expiration:
                  anyOf:
                    - type: string
                      format: date-time
                    - type: integer
                      exclusiveMinimum: 0
                  description: >-
                    Code expiration, as an ISO-8601 datetime string or a unix
                    timestamp
              required:
                - expiration
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: One-time code that can be used to create a new credential.
                  expiration:
                    type: string
                    description: >-
                      Code expiration, as an ISO-8601 datetime string or a unix
                      timestamp.
                required:
                  - code
                  - expiration
  /auth/credentials/code/init:
    post:
      summary: Create Credential Challenge With Code
      tags:
        - Auth
      security:
        - {}
      description: >
        Part of the flow [Create Credential With
        Code](https://docs.dfns.co/api-reference/auth/credentials#create-credential-with-code-flow).


        Creates a credential challenge using a one time code-time-code. This
        challenge must then be signed by the new credential, before finalizing
        the flow.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                credentialKind:
                  type: string
                  enum:
                    - Fido2
                    - Key
                    - Password
                    - Totp
                    - RecoveryKey
                    - PasswordProtectedKey
                code:
                  type: string
                  minLength: 1
                  description: >-
                    One-time code obtained from the create credential code
                    endpoint.
              required:
                - credentialKind
                - code
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Fido2
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      challenge:
                        type: string
                        description: Challenge value to be signed by the credential.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      authenticatorSelection:
                        type: object
                        properties:
                          authenticatorAttachment:
                            type: string
                            enum:
                              - platform
                              - cross-platform
                          residentKey:
                            type: string
                            enum:
                              - required
                              - preferred
                              - discouraged
                          requireResidentKey:
                            type: boolean
                          userVerification:
                            type: string
                            enum:
                              - required
                              - preferred
                              - discouraged
                            description: >
                              Value indicating if the user should be prompted
                              for a second factor. Can be one of the following
                              values:

                              * required to indicate the user must be prompted
                              for their pin, biometrics, or another second
                              factor option

                              * preferred to indicate the user should be
                              prompted for a second factor if it is supported

                              * discouraged to indicate the user should not be
                              prompted for their second factor unless the device
                              requires it
                        required:
                          - residentKey
                          - requireResidentKey
                          - userVerification
                      attestation:
                        type: string
                        enum:
                          - none
                          - indirect
                          - direct
                          - enterprise
                        description: >
                          Identifies the information needed to verify the user's
                          signing certificate; can be one of the following:

                          * none: indicates no attestation data is required

                          * indirect: indicates the attestation data should be
                          given, but that it can be generated using an
                          Anonymization CA

                          * direct: indicates the attestation data must be given
                          and should be generated by the authenticator

                          * enterprise: indicates the attestation data should
                          include information to uniquely identify the user's
                          device
                      pubKeyCredParams:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                            alg:
                              type: number
                          required:
                            - type
                            - alg
                      excludeCredentials:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                              description: Is always `public-key`.
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID that identifies the credential.
                              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                          required:
                            - type
                            - id
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - challenge
                      - authenticatorSelection
                      - attestation
                      - pubKeyCredParams
                      - excludeCredentials
                      - temporaryAuthenticationToken
                    description: >-
                      Fido2 Credential, also known as Passkeys or WebauthN
                      credential.
                    title: Fido2/Passkeys
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Key
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      challenge:
                        type: string
                        description: Challenge value to be signed by the credential.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      attestation:
                        type: string
                        enum:
                          - none
                          - indirect
                          - direct
                          - enterprise
                        description: >
                          Identifies the information needed to verify the user's
                          signing certificate; can be one of the following:

                          * none: indicates no attestation data is required

                          * indirect: indicates the attestation data should be
                          given, but that it can be generated using an
                          Anonymization CA

                          * direct: indicates the attestation data must be given
                          and should be generated by the authenticator

                          * enterprise: indicates the attestation data should
                          include information to uniquely identify the user's
                          device
                      pubKeyCredParams:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                            alg:
                              type: number
                          required:
                            - type
                            - alg
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - challenge
                      - attestation
                      - pubKeyCredParams
                      - temporaryAuthenticationToken
                    description: '"raw" public/private keypair.'
                    title: Public/Private key pair
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - PasswordProtectedKey
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      challenge:
                        type: string
                        description: Challenge value to be signed by the credential.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      attestation:
                        type: string
                        enum:
                          - none
                          - indirect
                          - direct
                          - enterprise
                        description: >
                          Identifies the information needed to verify the user's
                          signing certificate; can be one of the following:

                          * none: indicates no attestation data is required

                          * indirect: indicates the attestation data should be
                          given, but that it can be generated using an
                          Anonymization CA

                          * direct: indicates the attestation data must be given
                          and should be generated by the authenticator

                          * enterprise: indicates the attestation data should
                          include information to uniquely identify the user's
                          device
                      pubKeyCredParams:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                            alg:
                              type: number
                          required:
                            - type
                            - alg
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - challenge
                      - attestation
                      - pubKeyCredParams
                      - temporaryAuthenticationToken
                    description: 'Encrypted private key. '
                    title: Password-protected Key
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - RecoveryKey
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      challenge:
                        type: string
                        description: Challenge value to be signed by the credential.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      attestation:
                        type: string
                        enum:
                          - none
                          - indirect
                          - direct
                          - enterprise
                        description: >
                          Identifies the information needed to verify the user's
                          signing certificate; can be one of the following:

                          * none: indicates no attestation data is required

                          * indirect: indicates the attestation data should be
                          given, but that it can be generated using an
                          Anonymization CA

                          * direct: indicates the attestation data must be given
                          and should be generated by the authenticator

                          * enterprise: indicates the attestation data should
                          include information to uniquely identify the user's
                          device
                      pubKeyCredParams:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                            alg:
                              type: number
                          required:
                            - type
                            - alg
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - challenge
                      - attestation
                      - pubKeyCredParams
                      - temporaryAuthenticationToken
                    description: 'Use an recovery key. '
                    title: Recovery Credentials
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Password
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - temporaryAuthenticationToken
                    description: Not supported, will be removed in a future release.
                    title: <Deprecated> Password
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Totp
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Base64url-encoded user handle (WebAuthn user.id).
                          displayName:
                            type: string
                            description: Display name of the user.
                          name:
                            type: string
                            description: Username of the user.
                        required:
                          - id
                          - displayName
                          - name
                      challengeIdentifier:
                        type: string
                        description: >-
                          Challenge identifier to be used in the subsequent
                          create credential request.
                      rp:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              ID of the WebAuthn relying party (typically a
                              domain name).
                          name:
                            type: string
                            description: Human-readable name of the relying party.
                        required:
                          - id
                          - name
                      otpUrl:
                        type: string
                        description: Provisioning URL for the TOTP authenticator.
                      temporaryAuthenticationToken:
                        type: string
                        description: '@deprecated use challengeIdentifier instead'
                    required:
                      - kind
                      - user
                      - challengeIdentifier
                      - otpUrl
                      - temporaryAuthenticationToken
                    description: Not supported, will be removed in a future release.
                    title: <Deprecated> TOTP
  /auth/credentials/code/verify:
    post:
      summary: Create Credential With Code
      tags:
        - Auth
      security:
        - {}
      description: >-
        Finalizes the flow [Create Credential With
        Code](https://docs.dfns.co/api-reference/auth/credentials#create-credential-with-code-flow).
          
        Adds a new credential to a user's account. This endpoint is similar to
        the [Create
        Credential](https://docs.dfns.co/api-reference/auth/create-credential)
        endpoint, except:

        * it does not need the user to be authenticated

        * it does not need user action signing

        * it will only work with the challenge gotten from the [Create
        Credential Challenge With
        Code](https://docs.dfns.co/api-reference/auth/create-credential-challenge-with-code)
        endpoint

          
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateCredentialFido2Attestation'
                - $ref: '#/components/schemas/CreateCredentialKeyAttestation'
                - $ref: >-
                    #/components/schemas/CreateCredentialPasswordProtectedKeyAttestation
                - $ref: '#/components/schemas/CreateCredentialRecoveryKeyAttestation'
                - $ref: '#/components/schemas/CreateCredentialPasswordAttestation'
                - $ref: '#/components/schemas/CreateCredentialTotpAttestation'
              discriminator:
                propertyName: credentialKind
                mapping:
                  Fido2: '#/components/schemas/CreateCredentialFido2Attestation'
                  Key: '#/components/schemas/CreateCredentialKeyAttestation'
                  PasswordProtectedKey: >-
                    #/components/schemas/CreateCredentialPasswordProtectedKeyAttestation
                  RecoveryKey: '#/components/schemas/CreateCredentialRecoveryKeyAttestation'
                  Password: '#/components/schemas/CreateCredentialPasswordAttestation'
                  Totp: '#/components/schemas/CreateCredentialTotpAttestation'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credential'
  /auth/login/init:
    post:
      summary: Create Login Challenge
      tags:
        - Auth
      security:
        - {}
      description: >-
        Start a user login session, returning a challenge that will be used to
        verify the user's identity.


        If the user has a credential of kind `PasswordProtectedKey` a temporary
        one time code needs to be passed in the `loginCode` field.


        If the user has at least one discoverable WebAuthn credential,
        `username` is optional (username-less flow).
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: >-
                    Username/identifier of the user. Optional when the user has
                    at least one discoverable WebAuthn credential.
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                tenantId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Tenant id.
                  example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                loginCode:
                  type: string
                  description: >-
                    One-time login code, required when the user has a credential
                    of kind `PasswordProtectedKey`.
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  challenge:
                    type: string
                    description: >-
                      Challenge (string) to be signed by the requester with his
                      private key.
                  challengeIdentifier:
                    type: string
                    description: A JWT that identifies the signing session.
                  rp:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          ID of the WebAuthn relying party (typically a domain
                          name).
                      name:
                        type: string
                        description: Human-readable name of the relying party.
                    required:
                      - id
                      - name
                    description: Deprecated. Should not be used.
                  supportedCredentialKinds:
                    type: array
                    items:
                      type: object
                      properties:
                        kind:
                          $ref: '#/components/schemas/CredentialKind'
                        factor:
                          type: string
                          enum:
                            - first
                            - second
                            - either
                          description: >-
                            Indicates if the credential can be used as a first
                            factor, second factor, or either; can be `first`,
                            `second`, or `either`.
                        requiresSecondFactor:
                          type: boolean
                          description: >-
                            When true indicates a second factor credential is
                            required if the credential is used as a first
                            factor.
                      required:
                        - kind
                        - factor
                        - requiresSecondFactor
                    description: >-
                      Identifies the kind of credentials that can be used to
                      sign the user action.
                  userVerification:
                    type: string
                    enum:
                      - required
                      - preferred
                      - discouraged
                    description: >
                      Value indicating if the user should be prompted for a
                      second factor. Can be one of the following values:

                      * required to indicate the user must be prompted for their
                      pin, biometrics, or another second factor option

                      * preferred to indicate the user should be prompted for a
                      second factor if it is supported

                      * discouraged to indicate the user should not be prompted
                      for their second factor unless the device requires it
                  attestation:
                    type: string
                    enum:
                      - none
                      - indirect
                      - direct
                      - enterprise
                    description: >
                      Identifies the information needed to verify the user's
                      signing certificate; can be one of the following:

                      * none: indicates no attestation data is required

                      * indirect: indicates the attestation data should be
                      given, but that it can be generated using an Anonymization
                      CA

                      * direct: indicates the attestation data must be given and
                      should be generated by the authenticator

                      * enterprise: indicates the attestation data should
                      include information to uniquely identify the user's device
                  allowCredentials:
                    type: object
                    properties:
                      key:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                              description: Is always `public-key`.
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID that identifies the credential.
                              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                          required:
                            - type
                            - id
                        description: >-
                          List of keys that the user can use to sign the user
                          action.
                      passwordProtectedKey:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                              description: Is always `public-key`.
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID that identifies the credential.
                              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                            encryptedPrivateKey:
                              type: string
                              description: >-
                                Encrypted Private Key. Only the user knows the
                                password to decrypt it and have access to the
                                private key.
                          required:
                            - type
                            - id
                            - encryptedPrivateKey
                        description: >-
                          List of password protected keys that the user can use
                          to sign the login challenge.
                      webauthn:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - public-key
                              description: Is always `public-key`.
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID that identifies the credential.
                              example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                          required:
                            - type
                            - id
                        description: >-
                          List of WebAuthn credentials that the user can use to
                          sign the user action.
                    required:
                      - key
                      - webauthn
                    description: >-
                      List of credentials that the user can use to sign the user
                      action.
                  externalAuthenticationUrl:
                    type: string
                    description: >-
                      Optional url containing a secret value that can be used to
                      enable cross device/origin signing.
                required:
                  - challenge
                  - challengeIdentifier
                  - supportedCredentialKinds
                  - userVerification
                  - attestation
                  - allowCredentials
                  - externalAuthenticationUrl
                example: *ref_114
  /auth/login/delegated:
    post:
      summary: Delegated Login
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >2

          <Warning>
        Only a [Service
        Account](https://docs.dfns.co/api-reference/auth/service-accounts) can
        use this endpoint.

        </Warning>


        Logs a user into an organization without the user's credentials.


        If you want to use your own authentication system, while still using
        `Delegated Signing`, you can use this endpoint to authenticate a user
        without needing the user's credentials.


        The user authentication token can be used for read operations within the
        Dfns API, however, write operations will still require the user to sign
        the action.
      x-mint:
        content: |-
          #### Authentication

          ❌ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Login:Delegated`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: Username/identifier of the user to log in.
              required:
                - username
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                    description: Authentication token issued to the user.
                required:
                  - token
  /auth/login:
    post:
      summary: Complete User Login
      tags:
        - Auth
      security:
        - {}
      description: >
        Completes the login process and provides the authenticated user with
        their authentication token.


        The type of credentials used to login is determined by the `kind` field
        in the nested objects (`firstFactor` and `secondFactor`). Supported
        credential kinds are:

        * `Fido2`: Login challenge is signed by a user's signing device using
        `WebAuthn`.

        * `Key`: Login challenge is signed by a user's private key.

        * `PasswordProtectedKey`: Login challenge is signed by the decrypted
        user's private key that was sent during the [Create Login
        Challenge](https://docs.dfns.co/api-reference/auth/create-login-challenge)
        step.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                challengeIdentifier:
                  type: string
                  description: >-
                    Temporary authentication token returned by the Create
                    Challenge endpoint.
                firstFactor:
                  $ref: '#/components/schemas/FirstFactorAssertion'
                secondFactor:
                  $ref: '#/components/schemas/SecondFactorAssertion'
              required:
                - challengeIdentifier
                - firstFactor
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      token:
                        type: string
                        description: Authentication token issued to the user.
                    required:
                      - token
                  - type: object
                    properties:
                      ssoClientId:
                        type: string
                        description: >-
                          Identifier of the SSO client to use to complete the
                          login flow.
                    required:
                      - ssoClientId
  /auth/logout:
    put:
      summary: Logout
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: Completes the user logout process.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                allSessions:
                  type: boolean
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable success message.
                required:
                  - message
  /auth/login/oidc:
    post:
      summary: Complete OIDC Login
      tags:
        - Auth
      security:
        - {}
      description: >-
        Completes the OIDC login process by exchanging the authorization code
        obtained from the identity provider. If the verified user has no active
        first-factor credential yet, it returns a registration challenge to
        complete via [Complete User
        Registration](/api-reference/auth/complete-user-registration); otherwise
        it returns the user's authentication token.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: Authorization code obtained from the IdP
                state:
                  type: string
                  description: State forwarded by the IdP
              required:
                - code
                - state
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      token:
                        type: string
                        description: Authentication token issued to the user.
                    required:
                      - token
                  - type: object
                    properties:
                      registrationChallenge:
                        type: object
                        properties:
                          user:
                            type: object
                            properties:
                              id:
                                type: string
                                description: >-
                                  Base64url-encoded user handle (WebAuthn
                                  user.id).
                              displayName:
                                type: string
                                description: Display name of the user.
                              name:
                                type: string
                                description: Username of the user.
                            required:
                              - id
                              - displayName
                              - name
                          temporaryAuthenticationToken:
                            type: string
                            description: >-
                              JWT used to identify the registration session when
                              calling Complete User Registration.
                          challenge:
                            type: string
                            description: >-
                              Challenge to be signed by the credential being
                              registered.
                          rp:
                            type: object
                            properties:
                              id:
                                type: string
                                description: >-
                                  ID of the WebAuthn relying party (typically a
                                  domain name).
                              name:
                                type: string
                                description: Human-readable name of the relying party.
                            required:
                              - id
                              - name
                            description: Deprecated. Should not be used.
                          supportedCredentialKinds:
                            type: object
                            properties:
                              firstFactor:
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - Fido2
                                    - Key
                                    - Password
                                    - Totp
                                    - RecoveryKey
                                    - PasswordProtectedKey
                                description: Credential kinds accepted as first factor.
                              secondFactor:
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - Fido2
                                    - Key
                                    - Password
                                    - Totp
                                    - RecoveryKey
                                    - PasswordProtectedKey
                                description: Credential kinds accepted as second factor.
                            required:
                              - firstFactor
                              - secondFactor
                            description: >-
                              Credential kinds that can be used to register the
                              user.
                          authenticatorSelection:
                            type: object
                            properties:
                              authenticatorAttachment:
                                type: string
                                enum:
                                  - platform
                                  - cross-platform
                              residentKey:
                                type: string
                                enum:
                                  - required
                                  - preferred
                                  - discouraged
                              requireResidentKey:
                                type: boolean
                              userVerification:
                                type: string
                                enum:
                                  - required
                                  - preferred
                                  - discouraged
                                description: >
                                  Value indicating if the user should be
                                  prompted for a second factor. Can be one of
                                  the following values:

                                  * required to indicate the user must be
                                  prompted for their pin, biometrics, or another
                                  second factor option

                                  * preferred to indicate the user should be
                                  prompted for a second factor if it is
                                  supported

                                  * discouraged to indicate the user should not
                                  be prompted for their second factor unless the
                                  device requires it
                            required:
                              - residentKey
                              - requireResidentKey
                              - userVerification
                          attestation:
                            type: string
                            enum:
                              - none
                              - indirect
                              - direct
                              - enterprise
                            description: >
                              Identifies the information needed to verify the
                              user's signing certificate; can be one of the
                              following:

                              * none: indicates no attestation data is required

                              * indirect: indicates the attestation data should
                              be given, but that it can be generated using an
                              Anonymization CA

                              * direct: indicates the attestation data must be
                              given and should be generated by the authenticator

                              * enterprise: indicates the attestation data
                              should include information to uniquely identify
                              the user's device
                          pubKeyCredParams:
                            type: array
                            items:
                              type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - public-key
                                alg:
                                  type: number
                              required:
                                - type
                                - alg
                            description: >-
                              Public key credential parameters supported for the
                              registration.
                          excludeCredentials:
                            type: array
                            items:
                              type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - public-key
                                  description: Is always `public-key`.
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  description: ID that identifies the credential.
                                  example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                              required:
                                - type
                                - id
                            description: >-
                              Credentials to exclude from the registration
                              (already registered for the user).
                          otpUrl:
                            type: string
                            description: >-
                              URL to provision a TOTP credential, when
                              applicable.
                        required:
                          - user
                          - temporaryAuthenticationToken
                          - challenge
                          - supportedCredentialKinds
                          - authenticatorSelection
                          - attestation
                          - pubKeyCredParams
                          - excludeCredentials
                          - otpUrl
                        description: >-
                          Registration challenge offering all supported
                          credential kinds, returned when the user has no active
                          first-factor credential yet.
                    required:
                      - registrationChallenge
  /auth/login/oidc/init:
    post:
      summary: Initiate OIDC Login
      tags:
        - Auth
      security:
        - {}
      description: >-
        Initialize the OIDC login process by returning the identity provider
        authorization URL to redirect the user to.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                tenantId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Tenant id.
                  example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                redirectUri:
                  type: string
                  format: uri
                  description: Redirect URI used for the authentication flow
              required:
                - redirectUri
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  redirectUrl:
                    type: string
                    format: uri
                    description: The URL to redirect the user to authenticate with the IdP
                required:
                  - redirectUrl
  /auth/login/code:
    post:
      summary: Send Login Code
      tags:
        - Auth
      security:
        - {}
      description: >2-

          Sends a temporary one time code to the user that can be used during login flow.

        If the user has a credential of kind `PasswordProtectedKey` a temporary
        one time code needs to be passed in the `loginCode` field. That's
        because the [Create Login
        Challenge](https://docs.dfns.co/api-reference/auth/create-login-challenge)
        is unauthenticated and returns the encrypted private key of the user. So
        we need a first step to verify the identity of the user to prevent
        anybody from fetching the encrypted private key and trying to brute
        force it offline.

          
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: Username/identifier of the user to send the login code to.
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                tenantId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Tenant id.
                  example: acct-24hka-dhili-9hgvdlvr1ohpibp4
              required:
                - username
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable success message.
                required:
                  - message
  /auth/login/social:
    post:
      summary: Social Login
      tags:
        - Auth
      security:
        - {}
      description: >-
        Logs a user in with a JWT id token issued by a social login provider and
        provides the authenticated user with their authentication token.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                socialLoginProviderKind:
                  type: string
                  enum:
                    - Oidc
                  description: Social login provider used to issue the JWT.
                idToken:
                  type: string
                  description: JWT id token issued by the social login provider.
              required:
                - socialLoginProviderKind
                - idToken
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                    description: Authentication token issued to the user.
                required:
                  - token
  /auth/login/sso:
    post:
      summary: Complete SSO Login
      tags:
        - Auth
      security:
        - {}
      description: >-
        Completes the SSO login process by exchanging the authorization code
        obtained from the identity provider for the user's authentication token.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: Authorization code obtained from the IdP
                state:
                  type: string
                  description: State forwarded by the IdP
              required:
                - code
                - state
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                    description: Authentication token issued to the user.
                required:
                  - token
  /auth/login/sso/init:
    post:
      summary: Initiate SSO Login
      tags:
        - Auth
      security:
        - {}
      description: Initialize the login process with SSO by returning the IdP URL to call.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                tenantId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Tenant id.
                  example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                clientId:
                  type: string
                  description: Client Id obtained from the IdP
                redirectUri:
                  type: string
                  format: uri
                  description: Redirect URI used for the authentication flow
              required:
                - clientId
                - redirectUri
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  ssoRedirectUrl:
                    type: string
                    format: uri
                    description: The URL to redirect the user to authenticate with the IdP
                required:
                  - ssoRedirectUrl
  /auth/tokens:
    post:
      summary: Exchange Access Token
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >-
        Only for TenantUsers - Exchanges the current user access token, for an
        org-bound or tenant-bound token. The user must have access to the target
        org / tenant. The new access token expiration won't exceed the current
        token's one.
      x-mint:
        content: |-
          #### Authentication

          ❌ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                target:
                  type: string
                  description: >-
                    ID of the Organisation or Tenant for which you wish to
                    obtain an access token.
              required:
                - target
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                required:
                  - token
  /auth/pats:
    get:
      summary: List Personal Access Tokens
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: Retrieve the list of your Personal Access Tokens.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonalAccessToken'
                    description: Current page items.
                required:
                  - items
    post:
      summary: Create Personal Access Token
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Create a new Personal Access Token for the caller.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          `Auth:Pats:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  description: Human-readable name of the Personal Access Token.
                publicKey:
                  type: string
                  pattern: >-
                    ^-----BEGIN (RSA )?PUBLIC
                    KEY-----[A-Za-z0-9+/=\n\r\\]+-----END (RSA )?PUBLIC
                    KEY-----\s?$
                permissionId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    ID of the permission (also referred to as "role" in the
                    dashboard).
                  example: pm-37vj4-jkr4l-lc9945spfftkne57
                externalId:
                  type: string
                  description: >-
                    Value that can be used to correlate the entity with an
                    external system.
                daysValid:
                  type: integer
                  exclusiveMinimum: 0
                  description: Number of days the token will be valid for.
                secondsValid:
                  type: integer
                  exclusiveMinimum: 0
                  description: Number of seconds the token will be valid for.
              required:
                - name
                - publicKey
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  accessToken:
                    type: string
                    description: The access token. Only returned at creation time.
                  dateCreated:
                    type: string
                    format: date-time
                    description: >-
                      [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date
                      (must be UTC). Date the access token was created.
                    example: 2023-04-14T20:41:28.715Z
                  credId:
                    type: string
                    description: ID of the credential associated with the access token.
                  isActive:
                    type: boolean
                    description: Whether the access token is active.
                  kind:
                    type: string
                    enum:
                      - Pat
                      - ServiceAccount
                      - Token
                      - Code
                      - Recovery
                      - Temp
                      - Application
                  linkedUserId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: User id.
                    example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                  linkedAppId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: ID of the application the access token is linked to.
                    example: ap-2a9in-tt2a1-983lho480p35ejd0
                  name:
                    type: string
                    description: Human-readable name of the access token.
                  orgId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: Organization id.
                    example: or-30tnh-itmjs-s235s5ontr3r23h2
                  publicKey:
                    type: string
                    description: Public key associated with the access token.
                  tokenId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^to-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: Token id.
                    example: to-202a0-cdo33-o65mbt6q758lvvnt
                  permissionAssignments:
                    type: array
                    items:
                      type: object
                      properties:
                        permissionName:
                          type: string
                          description: Human-readable name of the permission (role).
                        permissionId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: >-
                            ID of the permission (also referred to as "role" in
                            the dashboard).
                          example: pm-37vj4-jkr4l-lc9945spfftkne57
                        assignmentId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID of the permission assignment.
                          example: as-1vcmc-qrek0-6b4vii9pln60907e
                        operations:
                          type: array
                          items:
                            type: string
                          description: List of API operations granted by this permission.
                      required:
                        - permissionName
                        - permissionId
                        - assignmentId
                    description: Permissions (roles) assigned to the access token.
                required:
                  - accessToken
                  - dateCreated
                  - credId
                  - isActive
                  - kind
                  - linkedUserId
                  - linkedAppId
                  - name
                  - orgId
                  - publicKey
                  - tokenId
                  - permissionAssignments
  /auth/pats/{tokenId}:
    get:
      summary: Get Personal Access Token
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: Retrieve a specific Personal Access Token.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Token id.
          required: true
          description: Token id.
          name: tokenId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessToken'
    put:
      summary: Update Personal Access Token
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Update a specific Personal Access Token.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Token id.
          required: true
          description: Token id.
          name: tokenId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Updated human-readable name of the Personal Access Token.
                externalId:
                  type: string
                  description: >-
                    Value that can be used to correlate the entity with an
                    external system.
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessToken'
    delete:
      summary: Delete Personal Access Token
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Delete a specific Personal Access Token.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Token id.
          required: true
          description: Token id.
          name: tokenId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessToken'
  /auth/pats/{tokenId}/activate:
    put:
      summary: Activate Personal Access Token
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Activate a specific Personal Access Token.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Token id.
          required: true
          description: Token id.
          name: tokenId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessToken'
  /auth/pats/{tokenId}/deactivate:
    put:
      summary: Deactivate Personal Access Token
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Deactivates a personal access token that was previously active. If the
        token is already deactivated no action is taken.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Token id.
          required: true
          description: Token id.
          name: tokenId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessToken'
  /auth/recover/user/delegated:
    post:
      summary: Create Delegated Recovery Challenge
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >

        <Warning>

        Only a [Service
        Account](https://docs.dfns.co/api-reference/auth/service-accounts) can
        use this endpoint.

        </Warning>


        Starts a recovery session for an end user under your brand, without
        sending a Dfns recovery email. Call this after you have verified the
        user's identity with your own auth system.


        The response returns a recovery challenge. Pass it to your frontend so
        the user can decrypt their recovery credential and sign, then call
        [Recover User](https://docs.dfns.co/api-reference/auth/recover-user) to
        complete the recovery and register fresh credentials.
      x-mint:
        content: |-
          #### Authentication

          ❌ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Recover:Delegated`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  minLength: 1
                  description: Username/identifier of the user to recover.
                credentialId:
                  type: string
                  minLength: 1
                  description: Identifier of the recovery credential to use.
              required:
                - username
                - credentialId
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Base64url-encoded user handle (WebAuthn user.id).
                      displayName:
                        type: string
                        description: Display name of the user.
                      name:
                        type: string
                        description: Username of the user.
                    required:
                      - id
                      - displayName
                      - name
                  temporaryAuthenticationToken:
                    type: string
                    description: >-
                      JWT used to identify the registration session when calling
                      Complete User Registration.
                  challenge:
                    type: string
                    description: Challenge to be signed by the credential being registered.
                  rp:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          ID of the WebAuthn relying party (typically a domain
                          name).
                      name:
                        type: string
                        description: Human-readable name of the relying party.
                    required:
                      - id
                      - name
                    description: Deprecated. Should not be used.
                  supportedCredentialKinds:
                    type: object
                    properties:
                      firstFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as first factor.
                      secondFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as second factor.
                    required:
                      - firstFactor
                      - secondFactor
                    description: Credential kinds that can be used to register the user.
                  authenticatorSelection:
                    type: object
                    properties:
                      authenticatorAttachment:
                        type: string
                        enum:
                          - platform
                          - cross-platform
                      residentKey:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                      requireResidentKey:
                        type: boolean
                      userVerification:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                        description: >
                          Value indicating if the user should be prompted for a
                          second factor. Can be one of the following values:

                          * required to indicate the user must be prompted for
                          their pin, biometrics, or another second factor option

                          * preferred to indicate the user should be prompted
                          for a second factor if it is supported

                          * discouraged to indicate the user should not be
                          prompted for their second factor unless the device
                          requires it
                    required:
                      - residentKey
                      - requireResidentKey
                      - userVerification
                  attestation:
                    type: string
                    enum:
                      - none
                      - indirect
                      - direct
                      - enterprise
                    description: >
                      Identifies the information needed to verify the user's
                      signing certificate; can be one of the following:

                      * none: indicates no attestation data is required

                      * indirect: indicates the attestation data should be
                      given, but that it can be generated using an Anonymization
                      CA

                      * direct: indicates the attestation data must be given and
                      should be generated by the authenticator

                      * enterprise: indicates the attestation data should
                      include information to uniquely identify the user's device
                  pubKeyCredParams:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                        alg:
                          type: number
                      required:
                        - type
                        - alg
                    description: >-
                      Public key credential parameters supported for the
                      registration.
                  excludeCredentials:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                          description: Is always `public-key`.
                        id:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID that identifies the credential.
                          example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                      required:
                        - type
                        - id
                    description: >-
                      Credentials to exclude from the registration (already
                      registered for the user).
                  otpUrl:
                    type: string
                    description: URL to provision a TOTP credential, when applicable.
                  allowedRecoveryCredentials:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Identifier of the recovery credential.
                        encryptedRecoveryKey:
                          type: string
                          description: >-
                            Encrypted recovery key associated with this
                            credential.
                      required:
                        - id
                        - encryptedRecoveryKey
                      additionalProperties: false
                required:
                  - user
                  - temporaryAuthenticationToken
                  - challenge
                  - supportedCredentialKinds
                  - authenticatorSelection
                  - attestation
                  - pubKeyCredParams
                  - excludeCredentials
                  - otpUrl
                  - allowedRecoveryCredentials
                additionalProperties: false
  /auth/recover/user:
    post:
      summary: Recover User
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >
        Recovers a user, using a recovery credential. After successfully
        recovering the user, all of the user's previous credentials and personal
        access tokens will be invalidated.


        This flow requires cryptographic validation of newly created
        credential(s) using a recovery credential. The
        `recovery.credentialAssertion.clientData` field's challenge must be the
        _base64url-encoded_ representation of the `newCredential` object.


        The process is as follows:


        1. Construct the `newCredential` object, using the challenge obtained
        from either the [Create Recovery
        Challenge](https://docs.dfns.co/api-reference/auth/create-recovery-challenge)
        or [Create Delegated Recovery
        Challenge](https://docs.dfns.co/api-reference/auth/create-delegated-recovery-challenge)
        endpoints.

        2. Serialize the `newCredential` object to JSON and then
        base64url-encode the resulting JSON string. This _base64url-encoded_
        string will serve as the challenge for the
        `recovery.credentialAssertion` object.

        3. Construct the `recovery.credentialAssertion` object, using the
        _base64url-encoded_ string generated in step 2 as its challenge.
      x-mint:
        content: |-
          #### Authentication

          ❌ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account    
          ✅ Recovery Code

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                recovery:
                  type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - RecoveryKey
                    credentialAssertion:
                      type: object
                      properties:
                        credId:
                          type: string
                          minLength: 1
                          description: >-
                            Base64url-encoded id of the credential returned by
                            the user's WebAuthn client.
                        clientData:
                          type: string
                          minLength: 1
                          description: >-
                            Base64url-encoded, stringified JSON [client
                            data](https://docs.dfns.co/api-reference/auth/credentials-data#client-data)
                            object returned by the user's WebAuthn client.
                        signature:
                          type: string
                          minLength: 1
                          description: >-
                            Base64url-encoded signature returned by the user's
                            WebAuthn client.
                        algorithm:
                          type: string
                          description: >-
                            The algorithm/digest that the credential will use to
                            sign data. If the algoritm is not specified then the
                            algorithm will be determined by the key.
                      required:
                        - credId
                        - clientData
                        - signature
                      additionalProperties: false
                  required:
                    - kind
                    - credentialAssertion
                  additionalProperties: false
                newCredentials:
                  type: object
                  properties:
                    firstFactorCredential:
                      $ref: '#/components/schemas/FirstFactorAttestation'
                    secondFactorCredential:
                      $ref: '#/components/schemas/SecondFactorAttestation'
                    recoveryCredential:
                      $ref: '#/components/schemas/RecoveryKeyAttestation'
                  required:
                    - firstFactorCredential
                  additionalProperties: false
              required:
                - recovery
                - newCredentials
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  credential:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: UUID of the credential that was registered.
                      kind:
                        type: string
                        enum:
                          - Fido2
                          - Key
                          - Password
                          - Totp
                          - RecoveryKey
                          - PasswordProtectedKey
                        description: Kind of credential that was registered.
                      name:
                        type: string
                        description: Human-readable name of the credential.
                    required:
                      - uuid
                      - kind
                      - name
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      username:
                        type: string
                        description: Username/identifier of the user.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                    required:
                      - id
                      - username
                required:
                  - credential
                  - user
  /auth/recover/user/init:
    post:
      summary: Create Recovery Challenge
      tags:
        - Auth
      security:
        - {}
      description: >-
        Starts a user recovery session, returning a challenge that will be used
        to verify the user's identity.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  minLength: 1
                  description: Username/identifier of the user to recover.
                verificationCode:
                  type: string
                  minLength: 1
                  description: Recovery verification code sent to the user by email.
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                tenantId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Tenant id.
                  example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                credentialId:
                  type: string
                  minLength: 1
                  description: Identifier of the recovery credential to use.
              required:
                - username
                - verificationCode
                - credentialId
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Base64url-encoded user handle (WebAuthn user.id).
                      displayName:
                        type: string
                        description: Display name of the user.
                      name:
                        type: string
                        description: Username of the user.
                    required:
                      - id
                      - displayName
                      - name
                  temporaryAuthenticationToken:
                    type: string
                    description: >-
                      JWT used to identify the registration session when calling
                      Complete User Registration.
                  challenge:
                    type: string
                    description: Challenge to be signed by the credential being registered.
                  rp:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          ID of the WebAuthn relying party (typically a domain
                          name).
                      name:
                        type: string
                        description: Human-readable name of the relying party.
                    required:
                      - id
                      - name
                    description: Deprecated. Should not be used.
                  supportedCredentialKinds:
                    type: object
                    properties:
                      firstFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as first factor.
                      secondFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as second factor.
                    required:
                      - firstFactor
                      - secondFactor
                    description: Credential kinds that can be used to register the user.
                  authenticatorSelection:
                    type: object
                    properties:
                      authenticatorAttachment:
                        type: string
                        enum:
                          - platform
                          - cross-platform
                      residentKey:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                      requireResidentKey:
                        type: boolean
                      userVerification:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                        description: >
                          Value indicating if the user should be prompted for a
                          second factor. Can be one of the following values:

                          * required to indicate the user must be prompted for
                          their pin, biometrics, or another second factor option

                          * preferred to indicate the user should be prompted
                          for a second factor if it is supported

                          * discouraged to indicate the user should not be
                          prompted for their second factor unless the device
                          requires it
                    required:
                      - residentKey
                      - requireResidentKey
                      - userVerification
                  attestation:
                    type: string
                    enum:
                      - none
                      - indirect
                      - direct
                      - enterprise
                    description: >
                      Identifies the information needed to verify the user's
                      signing certificate; can be one of the following:

                      * none: indicates no attestation data is required

                      * indirect: indicates the attestation data should be
                      given, but that it can be generated using an Anonymization
                      CA

                      * direct: indicates the attestation data must be given and
                      should be generated by the authenticator

                      * enterprise: indicates the attestation data should
                      include information to uniquely identify the user's device
                  pubKeyCredParams:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                        alg:
                          type: number
                      required:
                        - type
                        - alg
                    description: >-
                      Public key credential parameters supported for the
                      registration.
                  excludeCredentials:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                          description: Is always `public-key`.
                        id:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID that identifies the credential.
                          example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                      required:
                        - type
                        - id
                    description: >-
                      Credentials to exclude from the registration (already
                      registered for the user).
                  otpUrl:
                    type: string
                    description: URL to provision a TOTP credential, when applicable.
                  allowedRecoveryCredentials:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Identifier of the recovery credential.
                        encryptedRecoveryKey:
                          type: string
                          description: >-
                            Encrypted recovery key associated with this
                            credential.
                      required:
                        - id
                        - encryptedRecoveryKey
                      additionalProperties: false
                required:
                  - user
                  - temporaryAuthenticationToken
                  - challenge
                  - supportedCredentialKinds
                  - authenticatorSelection
                  - attestation
                  - pubKeyCredParams
                  - excludeCredentials
                  - otpUrl
                  - allowedRecoveryCredentials
                additionalProperties: false
  /auth/recover/user/code:
    post:
      summary: Send Recovery Code Email
      tags:
        - Auth
      security:
        - {}
      description: >-
        Send the user a recovery verification code. This code is used as a
        second factor to verify the user initiated the recovery request.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  minLength: 1
                  description: >-
                    Username/identifier of the user to send the recovery code
                    to.
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                tenantId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Tenant id.
                  example: acct-24hka-dhili-9hgvdlvr1ohpibp4
              required:
                - username
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable success message.
                required:
                  - message
  /auth/registration/delegated:
    post:
      summary: Create Delegated Registration Challenge
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        <Warning>

        Only a [Service
        Account](https://docs.dfns.co/api-reference/auth/service-accounts) can
        use this endpoint.

        </Warning>


        Registers a new End User in your organization and returns a registration
        challenge, without sending a Dfns registration email. Use this when your
        application owns the authentication system and you want delegated
        signing under your brand.


        The response includes:

        1. A new `EndUser` attached to your organization.

        2. A registration challenge plus a `temporaryAuthenticationToken` to
        authenticate the next call.


        Pass the challenge to your frontend so the user can create a passkey,
        then call [Complete User
        Registration](https://docs.dfns.co/api-reference/auth/complete-user-registration)
        or [Complete End User Registration with
        Wallets](https://docs.dfns.co/api-reference/auth/complete-end-user-registration-with-wallets)
        with that challenge signed.


        Bundle a `recoveryCredential` in the completion call alongside the first
        passkey. All credentials in that call sign the same challenge returned
        here. See [Implement end-user
        recovery](https://docs.dfns.co/guides/developers/end-user-recovery).
      x-mint:
        content: |-
          #### Authentication

          ❌ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Register:Delegated`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  minLength: 1
                  description: >-
                    Username/identifier (any unique string accepted, e.g. your
                    internal user ID or email).
                kind:
                  type: string
                  enum:
                    - EndUser
                  description: Must be `EndUser`.
                externalId:
                  type: string
                  minLength: 1
                  description: >-
                    Optional external identifier for the user, used for
                    cross-referencing with your own systems.
              required:
                - email
                - kind
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Base64url-encoded user handle (WebAuthn user.id).
                      displayName:
                        type: string
                        description: Display name of the user.
                      name:
                        type: string
                        description: Username of the user.
                    required:
                      - id
                      - displayName
                      - name
                  temporaryAuthenticationToken:
                    type: string
                    description: >-
                      JWT used to identify the registration session when calling
                      Complete User Registration.
                  challenge:
                    type: string
                    description: Challenge to be signed by the credential being registered.
                  rp:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          ID of the WebAuthn relying party (typically a domain
                          name).
                      name:
                        type: string
                        description: Human-readable name of the relying party.
                    required:
                      - id
                      - name
                    description: Deprecated. Should not be used.
                  supportedCredentialKinds:
                    type: object
                    properties:
                      firstFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as first factor.
                      secondFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as second factor.
                    required:
                      - firstFactor
                      - secondFactor
                    description: Credential kinds that can be used to register the user.
                  authenticatorSelection:
                    type: object
                    properties:
                      authenticatorAttachment:
                        type: string
                        enum:
                          - platform
                          - cross-platform
                      residentKey:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                      requireResidentKey:
                        type: boolean
                      userVerification:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                        description: >
                          Value indicating if the user should be prompted for a
                          second factor. Can be one of the following values:

                          * required to indicate the user must be prompted for
                          their pin, biometrics, or another second factor option

                          * preferred to indicate the user should be prompted
                          for a second factor if it is supported

                          * discouraged to indicate the user should not be
                          prompted for their second factor unless the device
                          requires it
                    required:
                      - residentKey
                      - requireResidentKey
                      - userVerification
                  attestation:
                    type: string
                    enum:
                      - none
                      - indirect
                      - direct
                      - enterprise
                    description: >
                      Identifies the information needed to verify the user's
                      signing certificate; can be one of the following:

                      * none: indicates no attestation data is required

                      * indirect: indicates the attestation data should be
                      given, but that it can be generated using an Anonymization
                      CA

                      * direct: indicates the attestation data must be given and
                      should be generated by the authenticator

                      * enterprise: indicates the attestation data should
                      include information to uniquely identify the user's device
                  pubKeyCredParams:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                        alg:
                          type: number
                      required:
                        - type
                        - alg
                    description: >-
                      Public key credential parameters supported for the
                      registration.
                  excludeCredentials:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                          description: Is always `public-key`.
                        id:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID that identifies the credential.
                          example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                      required:
                        - type
                        - id
                    description: >-
                      Credentials to exclude from the registration (already
                      registered for the user).
                  otpUrl:
                    type: string
                    description: URL to provision a TOTP credential, when applicable.
                required:
                  - user
                  - temporaryAuthenticationToken
                  - challenge
                  - supportedCredentialKinds
                  - authenticatorSelection
                  - attestation
                  - pubKeyCredParams
                  - excludeCredentials
                  - otpUrl
  /auth/registration/init:
    post:
      summary: Create Registration Challenge
      tags:
        - Auth
      security:
        - {}
      description: >-
        Starts a user registration session. It returns a challenge that will
        need to be signed by a passkey and used to perform the step [Complete
        User Registration](/api-reference/auth/complete-user-registration)
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                tenantId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Tenant id.
                  example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                username:
                  type: string
                  minLength: 1
                  description: >-
                    Username/identifier of the user being registered (any unique
                    string accepted, e.g. email).
                registrationCode:
                  type: string
                  minLength: 1
                  description: One-time registration code sent to the user by email.
              required:
                - username
                - registrationCode
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Base64url-encoded user handle (WebAuthn user.id).
                      displayName:
                        type: string
                        description: Display name of the user.
                      name:
                        type: string
                        description: Username of the user.
                    required:
                      - id
                      - displayName
                      - name
                  temporaryAuthenticationToken:
                    type: string
                    description: >-
                      JWT used to identify the registration session when calling
                      Complete User Registration.
                  challenge:
                    type: string
                    description: Challenge to be signed by the credential being registered.
                  rp:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          ID of the WebAuthn relying party (typically a domain
                          name).
                      name:
                        type: string
                        description: Human-readable name of the relying party.
                    required:
                      - id
                      - name
                    description: Deprecated. Should not be used.
                  supportedCredentialKinds:
                    type: object
                    properties:
                      firstFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as first factor.
                      secondFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as second factor.
                    required:
                      - firstFactor
                      - secondFactor
                    description: Credential kinds that can be used to register the user.
                  authenticatorSelection:
                    type: object
                    properties:
                      authenticatorAttachment:
                        type: string
                        enum:
                          - platform
                          - cross-platform
                      residentKey:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                      requireResidentKey:
                        type: boolean
                      userVerification:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                        description: >
                          Value indicating if the user should be prompted for a
                          second factor. Can be one of the following values:

                          * required to indicate the user must be prompted for
                          their pin, biometrics, or another second factor option

                          * preferred to indicate the user should be prompted
                          for a second factor if it is supported

                          * discouraged to indicate the user should not be
                          prompted for their second factor unless the device
                          requires it
                    required:
                      - residentKey
                      - requireResidentKey
                      - userVerification
                  attestation:
                    type: string
                    enum:
                      - none
                      - indirect
                      - direct
                      - enterprise
                    description: >
                      Identifies the information needed to verify the user's
                      signing certificate; can be one of the following:

                      * none: indicates no attestation data is required

                      * indirect: indicates the attestation data should be
                      given, but that it can be generated using an Anonymization
                      CA

                      * direct: indicates the attestation data must be given and
                      should be generated by the authenticator

                      * enterprise: indicates the attestation data should
                      include information to uniquely identify the user's device
                  pubKeyCredParams:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                        alg:
                          type: number
                      required:
                        - type
                        - alg
                    description: >-
                      Public key credential parameters supported for the
                      registration.
                  excludeCredentials:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                          description: Is always `public-key`.
                        id:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID that identifies the credential.
                          example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                      required:
                        - type
                        - id
                    description: >-
                      Credentials to exclude from the registration (already
                      registered for the user).
                  otpUrl:
                    type: string
                    description: URL to provision a TOTP credential, when applicable.
                required:
                  - user
                  - temporaryAuthenticationToken
                  - challenge
                  - supportedCredentialKinds
                  - authenticatorSelection
                  - attestation
                  - pubKeyCredParams
                  - excludeCredentials
                  - otpUrl
  /auth/registration/social:
    post:
      summary: Create Social Registration Challenge
      tags:
        - Auth
      security:
        - {}
      description: >-
        Starts an end-user registration session by passing a JWT obtained by an
        IdP. It returns a challenge that will need to be signed by a passkey and
        used to perform [Complete End User Registration with
        Wallets](/api-reference/auth/complete-end-user-registration-with-wallets).
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                socialLoginProviderKind:
                  type: string
                  enum:
                    - Oidc
                  description: Social login provider used to issue the JWT.
                idToken:
                  type: string
                  description: JWT id token issued by the social login provider.
              required:
                - socialLoginProviderKind
                - idToken
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Base64url-encoded user handle (WebAuthn user.id).
                      displayName:
                        type: string
                        description: Display name of the user.
                      name:
                        type: string
                        description: Username of the user.
                    required:
                      - id
                      - displayName
                      - name
                  temporaryAuthenticationToken:
                    type: string
                    description: >-
                      JWT used to identify the registration session when calling
                      Complete User Registration.
                  challenge:
                    type: string
                    description: Challenge to be signed by the credential being registered.
                  rp:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          ID of the WebAuthn relying party (typically a domain
                          name).
                      name:
                        type: string
                        description: Human-readable name of the relying party.
                    required:
                      - id
                      - name
                    description: Deprecated. Should not be used.
                  supportedCredentialKinds:
                    type: object
                    properties:
                      firstFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as first factor.
                      secondFactor:
                        type: array
                        items:
                          type: string
                          enum:
                            - Fido2
                            - Key
                            - Password
                            - Totp
                            - RecoveryKey
                            - PasswordProtectedKey
                        description: Credential kinds accepted as second factor.
                    required:
                      - firstFactor
                      - secondFactor
                    description: Credential kinds that can be used to register the user.
                  authenticatorSelection:
                    type: object
                    properties:
                      authenticatorAttachment:
                        type: string
                        enum:
                          - platform
                          - cross-platform
                      residentKey:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                      requireResidentKey:
                        type: boolean
                      userVerification:
                        type: string
                        enum:
                          - required
                          - preferred
                          - discouraged
                        description: >
                          Value indicating if the user should be prompted for a
                          second factor. Can be one of the following values:

                          * required to indicate the user must be prompted for
                          their pin, biometrics, or another second factor option

                          * preferred to indicate the user should be prompted
                          for a second factor if it is supported

                          * discouraged to indicate the user should not be
                          prompted for their second factor unless the device
                          requires it
                    required:
                      - residentKey
                      - requireResidentKey
                      - userVerification
                  attestation:
                    type: string
                    enum:
                      - none
                      - indirect
                      - direct
                      - enterprise
                    description: >
                      Identifies the information needed to verify the user's
                      signing certificate; can be one of the following:

                      * none: indicates no attestation data is required

                      * indirect: indicates the attestation data should be
                      given, but that it can be generated using an Anonymization
                      CA

                      * direct: indicates the attestation data must be given and
                      should be generated by the authenticator

                      * enterprise: indicates the attestation data should
                      include information to uniquely identify the user's device
                  pubKeyCredParams:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                        alg:
                          type: number
                      required:
                        - type
                        - alg
                    description: >-
                      Public key credential parameters supported for the
                      registration.
                  excludeCredentials:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - public-key
                          description: Is always `public-key`.
                        id:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID that identifies the credential.
                          example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                      required:
                        - type
                        - id
                    description: >-
                      Credentials to exclude from the registration (already
                      registered for the user).
                  otpUrl:
                    type: string
                    description: URL to provision a TOTP credential, when applicable.
                required:
                  - user
                  - temporaryAuthenticationToken
                  - challenge
                  - supportedCredentialKinds
                  - authenticatorSelection
                  - attestation
                  - pubKeyCredParams
                  - excludeCredentials
                  - otpUrl
  /auth/registration:
    post:
      summary: Complete User Registration
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >
        Completes the user registration process and creates the user's initial
        credentials.


        All credentials submitted in this call (`firstFactorCredential`,
        `secondFactorCredential`, `recoveryCredential`) sign the same challenge
        returned by the registration init endpoint ([Create Registration
        Challenge](https://docs.dfns.co/api-reference/auth/create-registration-challenge),
        [Create Delegated Registration
        Challenge](https://docs.dfns.co/api-reference/auth/create-delegated-registration-challenge),
        or [Create Social Registration
        Challenge](https://docs.dfns.co/api-reference/auth/create-social-registration-challenge)).


        Always include a `recoveryCredential` for end users. Without one, a user
        who loses their device cannot recover access and you must initiate a
        delegated recovery manually. See [Implement end-user
        recovery](https://docs.dfns.co/guides/developers/end-user-recovery).


        The type of credentials being registered is determined by the
        `credentialKind` field in the nested objects (`firstFactorCredential` ,
        `secondFactorCredential` and `recoveryCredential`). Supported credential
        kinds are:

        * `Fido2`: User action is signed by a user's signing device using
        `WebAuthn`.

        * `Key`: User action is signed by a user's, or token's, private key.

        * `PasswordProtectedKey`: User action is signed by a user's, or token's,
        private key. The encrypted version of the private key is stored by Dfns
        and returns during the signing flow for the user to decrypt it.

        * `RecoveryKey` : Similar to `PasswordProtectedKey`, but this credential
        can only be used to recover an account not to sign an action or login.
        Once this credential is used all the other user's credentials are
        invalidated.
      x-mint:
        content: |-
          #### Authentication

          ❌ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account    
          ✅ Registration Code

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                firstFactorCredential:
                  $ref: '#/components/schemas/FirstFactorAttestation'
                secondFactorCredential:
                  $ref: '#/components/schemas/SecondFactorAttestation'
                recoveryCredential:
                  $ref: '#/components/schemas/RecoveryKeyAttestation'
              required:
                - firstFactorCredential
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  credential:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: UUID of the credential that was registered.
                      kind:
                        type: string
                        enum:
                          - Fido2
                          - Key
                          - Password
                          - Totp
                          - RecoveryKey
                          - PasswordProtectedKey
                        description: Kind of credential that was registered.
                      name:
                        type: string
                        description: Human-readable name of the credential.
                    required:
                      - uuid
                      - kind
                      - name
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      username:
                        type: string
                        description: Username/identifier of the user.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                    required:
                      - id
                      - username
                required:
                  - credential
                  - user
  /auth/registration/enduser:
    post:
      summary: Complete End User Registration with Wallets
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: >-
        Completes the end user registration process and creates the user's
        initial credentials along with delegated wallets for the new end user.


        All credentials submitted in this call (`firstFactorCredential`,
        `secondFactorCredential`, `recoveryCredential`) sign the same challenge
        returned by the registration init endpoint ([Create Delegated
        Registration
        Challenge](https://docs.dfns.co/api-reference/auth/create-delegated-registration-challenge)
        or [Create Social Registration
        Challenge](https://docs.dfns.co/api-reference/auth/create-social-registration-challenge)).


        Always include a `recoveryCredential` for end users. Without one, a user
        who loses their device cannot recover access and you must initiate a
        delegated recovery manually. See [Implement end-user
        recovery](https://docs.dfns.co/guides/developers/end-user-recovery).


        The type of credentials being registered is determined by the
        `credentialKind` field in the nested objects (`firstFactorCredential` ,
        `secondFactorCredential` and `recoveryCredential`). Supported credential
        kinds are:

        * `Fido2`: User action is signed by a user's signing device using
        `WebAuthn`.

        * `Key`: User action is signed by a user's, or token's, private key.

        * `PasswordProtectedKey`: User action is signed by a user's, or token's,
        private key. The encrypted version of the private key is stored by Dfns
        and returns during the signing flow for the user to decrypt it.

        * `RecoveryKey`: Similar to `PasswordProtectedKey`, but this credential
        can only be used to recover an account, not to sign an action or login.
        Once this credential is used, all the other user's credentials are
        invalidated.


        The number of delegated wallets created and the wallet types are
        determined by the `wallets` specifications. The end user is
        automatically assigned `ManagedDefaultEndUserAccess` managed permission
        that grants the end user full access to the wallets.
      x-mint:
        content: |-
          #### Authentication

          ❌ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account    
          ✅ Registration Code

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                firstFactorCredential:
                  $ref: '#/components/schemas/FirstFactorAttestation'
                secondFactorCredential:
                  $ref: '#/components/schemas/SecondFactorAttestation'
                recoveryCredential:
                  $ref: '#/components/schemas/RecoveryKeyAttestation'
                wallets:
                  type: array
                  items:
                    type: object
                    properties:
                      network:
                        type: string
                        enum: *ref_54
                      name:
                        type: string
                        maxLength: 100
                        description: Wallet nickname.
                    required:
                      - network
                    additionalProperties: false
                  minItems: 1
              required:
                - firstFactorCredential
                - wallets
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  credential:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: UUID of the credential that was registered.
                      kind:
                        type: string
                        enum:
                          - Fido2
                          - Key
                          - Password
                          - Totp
                          - RecoveryKey
                          - PasswordProtectedKey
                        description: Kind of credential that was registered.
                      name:
                        type: string
                        description: Human-readable name of the credential.
                    required:
                      - uuid
                      - kind
                      - name
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      username:
                        type: string
                        description: Username/identifier of the user.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                    required:
                      - id
                      - username
                  authentication:
                    type: object
                    properties:
                      token:
                        type: string
                        description: Authentication token issued to the user.
                    required:
                      - token
                  wallets:
                    type: array
                    items:
                      $ref: '#/components/schemas/Wallet'
                required:
                  - credential
                  - user
                  - authentication
                  - wallets
  /auth/registration/code:
    put:
      summary: Resend Registration Code
      tags:
        - Auth
      security:
        - {}
      description: >-
        Sends the user a new registration code. The previous registration code
        will be marked invalid. If the user has already completed their
        registration no action will be taken.
      x-mint:
        content: |-
          #### Authentication

          No authentication required.

          #### Required Permissions

          No authentication required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  minLength: 1
                  description: >-
                    Username/identifier of the user (any unique string accepted,
                    e.g. your internal user ID or email).
                orgId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Organization id.
                  example: or-30tnh-itmjs-s235s5ontr3r23h2
                tenantId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: Tenant id.
                  example: acct-24hka-dhili-9hgvdlvr1ohpibp4
              required:
                - username
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable success message.
                required:
                  - message
  /auth/service-accounts:
    get:
      summary: List Service Accounts
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: List all Service Accounts in your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:ServiceAccounts:Read`: Always required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        userInfo:
                          type: object
                          properties:
                            username:
                              type: string
                              description: >-
                                Username/identifier of the user (any unique
                                string accepted, e.g. your internal user ID or
                                email).
                            name:
                              type: string
                              description: Display name of the user.
                            userId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: User id.
                              example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                            kind:
                              type: string
                              enum: *ref_115
                              description: User kind.
                            credentialUuid:
                              type: string
                              description: UUID of the user's primary credential.
                            orgId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: Organization id.
                              example: or-30tnh-itmjs-s235s5ontr3r23h2
                            tenantId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: Tenant id.
                              example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                            permissions:
                              type: array
                              items:
                                type: string
                              description: >-
                                @deprecated - Flat list of API operations the
                                user has access to.
                            isActive:
                              type: boolean
                              description: Whether the user is active.
                            isServiceAccount:
                              type: boolean
                              description: Whether the user is a service account.
                            isRegistered:
                              type: boolean
                              description: Whether the user has completed registration.
                            permissionAssignments:
                              type: array
                              items:
                                type: object
                                properties:
                                  permissionName:
                                    type: string
                                    description: >-
                                      Human-readable name of the permission
                                      (role).
                                  permissionId:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: >-
                                      ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                    description: >-
                                      ID of the permission (also referred to as
                                      "role" in the dashboard).
                                    example: pm-37vj4-jkr4l-lc9945spfftkne57
                                  assignmentId:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: >-
                                      ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                    description: ID of the permission assignment.
                                    example: as-1vcmc-qrek0-6b4vii9pln60907e
                                  operations:
                                    type: array
                                    items:
                                      type: string
                                    description: >-
                                      List of API operations granted by this
                                      permission.
                                required:
                                  - permissionName
                                  - permissionId
                                  - assignmentId
                              description: Permissions (roles) assigned to the user.
                          required:
                            - username
                            - name
                            - userId
                            - kind
                            - credentialUuid
                            - isActive
                            - isServiceAccount
                            - isRegistered
                            - permissionAssignments
                        accessTokens:
                          type: array
                          items:
                            $ref: '#/components/schemas/PersonalAccessToken'
                      required:
                        - userInfo
                        - accessTokens
                    description: Current page items.
                required:
                  - items
    post:
      summary: Create Service Account
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Create a new Service Account for your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          `Auth:ServiceAccounts:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  description: Human-readable name of the Service Account.
                publicKey:
                  type: string
                  pattern: >-
                    ^-----BEGIN (RSA )?PUBLIC
                    KEY-----[A-Za-z0-9+/=\n\r\\]+-----END (RSA )?PUBLIC
                    KEY-----\s?$
                permissionId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    ID of the permission (also referred to as "role" in the
                    dashboard).
                  example: pm-37vj4-jkr4l-lc9945spfftkne57
                externalId:
                  type: string
                  description: >-
                    Value that can be used to correlate the entity with an
                    external system.
                daysValid:
                  type: integer
                  exclusiveMinimum: 0
                  description: Number of days the service account will be valid for.
              required:
                - name
                - publicKey
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  userInfo:
                    type: object
                    properties:
                      username:
                        type: string
                        description: >-
                          Username/identifier of the user (any unique string
                          accepted, e.g. your internal user ID or email).
                      name:
                        type: string
                        description: Display name of the user.
                      userId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      kind:
                        type: string
                        enum: *ref_115
                        description: User kind.
                      credentialUuid:
                        type: string
                        description: UUID of the user's primary credential.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                      permissions:
                        type: array
                        items:
                          type: string
                        description: >-
                          @deprecated - Flat list of API operations the user has
                          access to.
                      isActive:
                        type: boolean
                        description: Whether the user is active.
                      isServiceAccount:
                        type: boolean
                        description: Whether the user is a service account.
                      isRegistered:
                        type: boolean
                        description: Whether the user has completed registration.
                      permissionAssignments:
                        type: array
                        items:
                          type: object
                          properties:
                            permissionName:
                              type: string
                              description: Human-readable name of the permission (role).
                            permissionId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: >-
                                ID of the permission (also referred to as "role"
                                in the dashboard).
                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                            assignmentId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID of the permission assignment.
                              example: as-1vcmc-qrek0-6b4vii9pln60907e
                            operations:
                              type: array
                              items:
                                type: string
                              description: >-
                                List of API operations granted by this
                                permission.
                          required:
                            - permissionName
                            - permissionId
                            - assignmentId
                        description: Permissions (roles) assigned to the user.
                    required:
                      - username
                      - name
                      - userId
                      - kind
                      - credentialUuid
                      - isActive
                      - isServiceAccount
                      - isRegistered
                      - permissionAssignments
                  accessTokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonalAccessToken'
                required:
                  - userInfo
                  - accessTokens
  /auth/service-accounts/{serviceAccountId}:
    get:
      summary: Get Service Account
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: Get information about a specific Service Account.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:ServiceAccounts:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: ID of the service account.
          required: true
          description: ID of the service account.
          name: serviceAccountId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  userInfo:
                    type: object
                    properties:
                      username:
                        type: string
                        description: >-
                          Username/identifier of the user (any unique string
                          accepted, e.g. your internal user ID or email).
                      name:
                        type: string
                        description: Display name of the user.
                      userId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      kind:
                        type: string
                        enum: *ref_115
                        description: User kind.
                      credentialUuid:
                        type: string
                        description: UUID of the user's primary credential.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                      permissions:
                        type: array
                        items:
                          type: string
                        description: >-
                          @deprecated - Flat list of API operations the user has
                          access to.
                      isActive:
                        type: boolean
                        description: Whether the user is active.
                      isServiceAccount:
                        type: boolean
                        description: Whether the user is a service account.
                      isRegistered:
                        type: boolean
                        description: Whether the user has completed registration.
                      permissionAssignments:
                        type: array
                        items:
                          type: object
                          properties:
                            permissionName:
                              type: string
                              description: Human-readable name of the permission (role).
                            permissionId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: >-
                                ID of the permission (also referred to as "role"
                                in the dashboard).
                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                            assignmentId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID of the permission assignment.
                              example: as-1vcmc-qrek0-6b4vii9pln60907e
                            operations:
                              type: array
                              items:
                                type: string
                              description: >-
                                List of API operations granted by this
                                permission.
                          required:
                            - permissionName
                            - permissionId
                            - assignmentId
                        description: Permissions (roles) assigned to the user.
                    required:
                      - username
                      - name
                      - userId
                      - kind
                      - credentialUuid
                      - isActive
                      - isServiceAccount
                      - isRegistered
                      - permissionAssignments
                  accessTokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonalAccessToken'
                required:
                  - userInfo
                  - accessTokens
    put:
      summary: Update Service Account
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Update a specific Service Account.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:ServiceAccounts:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: ID of the service account.
          required: true
          description: ID of the service account.
          name: serviceAccountId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Updated human-readable name of the Service Account.
                externalId:
                  type: string
                  description: >-
                    Value that can be used to correlate the entity with an
                    external system.
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  userInfo:
                    type: object
                    properties:
                      username:
                        type: string
                        description: >-
                          Username/identifier of the user (any unique string
                          accepted, e.g. your internal user ID or email).
                      name:
                        type: string
                        description: Display name of the user.
                      userId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      kind:
                        type: string
                        enum: *ref_115
                        description: User kind.
                      credentialUuid:
                        type: string
                        description: UUID of the user's primary credential.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                      permissions:
                        type: array
                        items:
                          type: string
                        description: >-
                          @deprecated - Flat list of API operations the user has
                          access to.
                      isActive:
                        type: boolean
                        description: Whether the user is active.
                      isServiceAccount:
                        type: boolean
                        description: Whether the user is a service account.
                      isRegistered:
                        type: boolean
                        description: Whether the user has completed registration.
                      permissionAssignments:
                        type: array
                        items:
                          type: object
                          properties:
                            permissionName:
                              type: string
                              description: Human-readable name of the permission (role).
                            permissionId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: >-
                                ID of the permission (also referred to as "role"
                                in the dashboard).
                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                            assignmentId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID of the permission assignment.
                              example: as-1vcmc-qrek0-6b4vii9pln60907e
                            operations:
                              type: array
                              items:
                                type: string
                              description: >-
                                List of API operations granted by this
                                permission.
                          required:
                            - permissionName
                            - permissionId
                            - assignmentId
                        description: Permissions (roles) assigned to the user.
                    required:
                      - username
                      - name
                      - userId
                      - kind
                      - credentialUuid
                      - isActive
                      - isServiceAccount
                      - isRegistered
                      - permissionAssignments
                  accessTokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonalAccessToken'
                required:
                  - userInfo
                  - accessTokens
    delete:
      summary: Delete Service Account
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Delete a specific Service Account.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:ServiceAccounts:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: ID of the service account.
          required: true
          description: ID of the service account.
          name: serviceAccountId
          in: path
        - schema:
            type:
              - boolean
              - 'null'
            default: false
            description: >-
              If true, bypasses the policy approver check and deletes
              immediately.
          required: false
          description: If true, bypasses the policy approver check and deletes immediately.
          name: force
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  userInfo:
                    type: object
                    properties:
                      username:
                        type: string
                        description: >-
                          Username/identifier of the user (any unique string
                          accepted, e.g. your internal user ID or email).
                      name:
                        type: string
                        description: Display name of the user.
                      userId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      kind:
                        type: string
                        enum: *ref_115
                        description: User kind.
                      credentialUuid:
                        type: string
                        description: UUID of the user's primary credential.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                      permissions:
                        type: array
                        items:
                          type: string
                        description: >-
                          @deprecated - Flat list of API operations the user has
                          access to.
                      isActive:
                        type: boolean
                        description: Whether the user is active.
                      isServiceAccount:
                        type: boolean
                        description: Whether the user is a service account.
                      isRegistered:
                        type: boolean
                        description: Whether the user has completed registration.
                      permissionAssignments:
                        type: array
                        items:
                          type: object
                          properties:
                            permissionName:
                              type: string
                              description: Human-readable name of the permission (role).
                            permissionId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: >-
                                ID of the permission (also referred to as "role"
                                in the dashboard).
                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                            assignmentId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID of the permission assignment.
                              example: as-1vcmc-qrek0-6b4vii9pln60907e
                            operations:
                              type: array
                              items:
                                type: string
                              description: >-
                                List of API operations granted by this
                                permission.
                          required:
                            - permissionName
                            - permissionId
                            - assignmentId
                        description: Permissions (roles) assigned to the user.
                    required:
                      - username
                      - name
                      - userId
                      - kind
                      - credentialUuid
                      - isActive
                      - isServiceAccount
                      - isRegistered
                      - permissionAssignments
                  accessTokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonalAccessToken'
                required:
                  - userInfo
                  - accessTokens
  /auth/service-accounts/{serviceAccountId}/activate:
    put:
      summary: Activate Service Account
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Activate a specific Service Account.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ✅ Service Account

          #### Required Permissions

          `Auth:ServiceAccounts:Activate`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: ID of the service account.
          required: true
          description: ID of the service account.
          name: serviceAccountId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  userInfo:
                    type: object
                    properties:
                      username:
                        type: string
                        description: >-
                          Username/identifier of the user (any unique string
                          accepted, e.g. your internal user ID or email).
                      name:
                        type: string
                        description: Display name of the user.
                      userId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      kind:
                        type: string
                        enum: *ref_115
                        description: User kind.
                      credentialUuid:
                        type: string
                        description: UUID of the user's primary credential.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                      permissions:
                        type: array
                        items:
                          type: string
                        description: >-
                          @deprecated - Flat list of API operations the user has
                          access to.
                      isActive:
                        type: boolean
                        description: Whether the user is active.
                      isServiceAccount:
                        type: boolean
                        description: Whether the user is a service account.
                      isRegistered:
                        type: boolean
                        description: Whether the user has completed registration.
                      permissionAssignments:
                        type: array
                        items:
                          type: object
                          properties:
                            permissionName:
                              type: string
                              description: Human-readable name of the permission (role).
                            permissionId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: >-
                                ID of the permission (also referred to as "role"
                                in the dashboard).
                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                            assignmentId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID of the permission assignment.
                              example: as-1vcmc-qrek0-6b4vii9pln60907e
                            operations:
                              type: array
                              items:
                                type: string
                              description: >-
                                List of API operations granted by this
                                permission.
                          required:
                            - permissionName
                            - permissionId
                            - assignmentId
                        description: Permissions (roles) assigned to the user.
                    required:
                      - username
                      - name
                      - userId
                      - kind
                      - credentialUuid
                      - isActive
                      - isServiceAccount
                      - isRegistered
                      - permissionAssignments
                  accessTokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonalAccessToken'
                required:
                  - userInfo
                  - accessTokens
  /auth/service-accounts/{serviceAccountId}/deactivate:
    put:
      summary: Deactivate Service Account
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Deactivate a specific Service Account.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ✅ Service Account

          #### Required Permissions

          `Auth:ServiceAccounts:Deactivate`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: ID of the service account.
          required: true
          description: ID of the service account.
          name: serviceAccountId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                force:
                  type: boolean
                  default: false
                  description: >-
                    If true, bypasses the policy approver check and deactivates
                    immediately.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  userInfo:
                    type: object
                    properties:
                      username:
                        type: string
                        description: >-
                          Username/identifier of the user (any unique string
                          accepted, e.g. your internal user ID or email).
                      name:
                        type: string
                        description: Display name of the user.
                      userId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: User id.
                        example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                      kind:
                        type: string
                        enum: *ref_115
                        description: User kind.
                      credentialUuid:
                        type: string
                        description: UUID of the user's primary credential.
                      orgId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Organization id.
                        example: or-30tnh-itmjs-s235s5ontr3r23h2
                      tenantId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Tenant id.
                        example: acct-24hka-dhili-9hgvdlvr1ohpibp4
                      permissions:
                        type: array
                        items:
                          type: string
                        description: >-
                          @deprecated - Flat list of API operations the user has
                          access to.
                      isActive:
                        type: boolean
                        description: Whether the user is active.
                      isServiceAccount:
                        type: boolean
                        description: Whether the user is a service account.
                      isRegistered:
                        type: boolean
                        description: Whether the user has completed registration.
                      permissionAssignments:
                        type: array
                        items:
                          type: object
                          properties:
                            permissionName:
                              type: string
                              description: Human-readable name of the permission (role).
                            permissionId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: >-
                                ID of the permission (also referred to as "role"
                                in the dashboard).
                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                            assignmentId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID of the permission assignment.
                              example: as-1vcmc-qrek0-6b4vii9pln60907e
                            operations:
                              type: array
                              items:
                                type: string
                              description: >-
                                List of API operations granted by this
                                permission.
                          required:
                            - permissionName
                            - permissionId
                            - assignmentId
                        description: Permissions (roles) assigned to the user.
                    required:
                      - username
                      - name
                      - userId
                      - kind
                      - credentialUuid
                      - isActive
                      - isServiceAccount
                      - isRegistered
                      - permissionAssignments
                  accessTokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonalAccessToken'
                required:
                  - userInfo
                  - accessTokens
  /auth/users/{userId}/activate:
    put:
      summary: Activate User
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Activate a specific User.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ✅ Service Account

          #### Required Permissions

          `Auth:Users:Activate`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: User id.
          required: true
          description: User id.
          name: userId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /auth/users/{userId}/deactivate:
    put:
      summary: Deactivate User
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Deactivate a specific User.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ✅ Service Account

          #### Required Permissions

          `Auth:Users:Deactivate`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: User id.
          required: true
          description: User id.
          name: userId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /auth/users/{userId}:
    delete:
      summary: Delete User
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Delete a specific User.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Users:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: User id.
          required: true
          description: User id.
          name: userId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
    get:
      summary: Get User
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: Retrieve information about a specific User.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Users:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: User id.
          required: true
          description: User id.
          name: userId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
    put:
      summary: Update User
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Update a specific User.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Users:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: User id.
          required: true
          description: User id.
          name: userId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                isSSORequired:
                  type: boolean
              required:
                - isSSORequired
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /auth/users:
    post:
      summary: Create User
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Invite a new user in the caller's org. This will create the user and
        send a registration email to the created User's email, with a
        registration code, and pointing him to complete his registration on Dfns
        Dashboard. The user is created without any permissions.
          
          <Note>If you want the created User to not know about about Dfns, and don't want him to 
          receive the registration email from Dfns, you should rather use the Delegated Registration 
          endpoint.</Note>
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ✅ Service Account

          #### Required Permissions

          `Auth:Users:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                  description: The email address of the new user.
                kind:
                  type: string
                  enum:
                    - CustomerEmployee
                  description: |-
                    The kind of user being created. 
                          In this endpoint it can only be "`CustomerEmployee`" (creating an "`EndUser`" is done through the [Delegated Registration](https://docs.dfns.co/api-reference/auth/registration-flows#delegated-users-registration-flow) endpoint)
                publicKey:
                  type: string
                  description: Optional public key in PEM format associated with the user.
                externalId:
                  type: string
                  description: >-
                    Value that can be used to correlate the entity with an
                    external system.
                isSSORequired:
                  type: boolean
                  default: false
                  description: If set to true, the user will have to authenticate via SSO
              required:
                - email
                - kind
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
    get:
      summary: List Users
      tags:
        - Auth
      security:
        - authenticationToken: []
      description: List all Users in your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Auth:Users:Read`: Always required.
      parameters:
        - schema:
            type: integer
            exclusiveMinimum: 0
            maximum: 200
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            enum:
              - CustomerEmployee
              - EndUser
            description: Filter users by kind.
          required: false
          description: Filter users by kind.
          name: kind
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /auth/users/invite:
    post:
      summary: Invite Tenant User
      tags:
        - Auth
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Invite an existing Tenant User in the caller's org. The invited Tenant
        User starts without any permissions within the org.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Personal Access Token not allowed    
          ❌ Service Account

          #### Required Permissions

          `Auth:Users:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                  description: Email address of the existing Tenant User.
                kind:
                  type: string
                  enum:
                    - TenantUser
                  description: >-
                    The kind of user being invited. It can only be
                    "`TenantUser`"
              required:
                - email
                - kind
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /exchanges/{exchangeId}:
    get:
      summary: Get Exchange
      tags:
        - Exchanges
      security:
        - authenticationToken: []
      description: Retrieve the details of a specific exchange integration configuration.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account

          #### Required Permissions

          `Exchanges:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: exchangeId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  kind:
                    type: string
                    enum:
                      - Binance
                      - Kraken
                      - CoinbaseApp
                      - CoinbasePrime
                  dateCreated:
                    type: string
                required:
                  - id
                  - kind
                  - dateCreated
    delete:
      summary: Delete Exchange
      tags:
        - Exchanges
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Delete the exchange configuration from your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account

          #### Required Permissions

          `Exchanges:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: exchangeId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  deleted:
                    type: boolean
                    enum:
                      - true
                required:
                  - deleted
  /exchanges:
    post:
      summary: Create Exchange
      tags:
        - Exchanges
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Link your organization with a cryptocurrency exchange.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account

          #### Required Permissions

          `Exchanges:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 100
                kind:
                  type: string
                  enum:
                    - Binance
                    - Kraken
                    - CoinbaseApp
                    - CoinbasePrime
                readConfiguration:
                  type: object
                  properties:
                    publicApiKey:
                      type: string
                    privateApiKey:
                      type: string
                    password:
                      type: string
                    otp:
                      type: string
                  required:
                    - publicApiKey
                    - privateApiKey
                writeConfiguration:
                  type: object
                  properties:
                    publicApiKey:
                      type: string
                    privateApiKey:
                      type: string
                    password:
                      type: string
                    otp:
                      type: string
                  required:
                    - publicApiKey
                    - privateApiKey
              required:
                - kind
                - readConfiguration
                - writeConfiguration
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  kind:
                    type: string
                    enum:
                      - Binance
                      - Kraken
                      - CoinbaseApp
                      - CoinbasePrime
                  dateCreated:
                    type: string
                required:
                  - id
                  - kind
                  - dateCreated
                additionalProperties: false
    get:
      summary: List Exchanges
      tags:
        - Exchanges
      security:
        - authenticationToken: []
      description: List all configured exchange integrations.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account

          #### Required Permissions

          `Exchanges:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        kind:
                          type: string
                          enum:
                            - Binance
                            - Kraken
                            - CoinbaseApp
                            - CoinbasePrime
                        dateCreated:
                          type: string
                      required:
                        - id
                        - kind
                        - dateCreated
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /exchanges/{exchangeId}/accounts:
    get:
      summary: List Accounts
      tags:
        - Exchanges
      security:
        - authenticationToken: []
      description: Get a list of accounts for a specific exchange.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ❌ Service Account

          #### Required Permissions

          `Exchanges:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: exchangeId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        exchangeId:
                          type: string
                        exchangeName:
                          type: string
                      required:
                        - id
                        - exchangeId
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /exchanges/{exchangeId}/accounts/{accountId}/assets:
    get:
      summary: List Account Assets
      tags:
        - Exchanges
      security:
        - authenticationToken: []
      description: >-
        Retrieve the list of assets for a specific account on a specific
        exchange.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Exchanges:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: exchangeId
          in: path
        - schema:
            type: string
            minLength: 1
          required: true
          name: accountId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        symbol:
                          type: string
                        balance:
                          type: string
                      required:
                        - symbol
                        - balance
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /exchanges/{exchangeId}/accounts/{accountId}/assets/{asset}/withdrawal-networks:
    get:
      summary: List Asset Withdrawal Networks
      tags:
        - Exchanges
      security:
        - authenticationToken: []
      description: >-
        Lists the networks to which the given asset can be withdrawn from an
        exchange account.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Exchanges:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: exchangeId
          in: path
        - schema:
            type: string
            minLength: 1
          required: true
          name: accountId
          in: path
        - schema:
            type: string
            minLength: 1
          required: true
          name: asset
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                          required:
                            - kind
                          title: Native assets
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Aip21
                            metadata:
                              type: string
                          required:
                            - kind
                            - metadata
                          title: Aptos Fungible Assets (AIP-21)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Asa
                            assetId:
                              type: string
                          required:
                            - kind
                            - assetId
                          title: Algorand Standard Assets (ASAs)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Cis2
                            tokenAddress:
                              type: string
                          required:
                            - kind
                            - tokenAddress
                          title: Concordium CIS-2 tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum: *ref_116
                            contract:
                              type: string
                          required:
                            - kind
                            - contract
                          title: EVM ERC-20/Starknet SNIP-2/TRON TRC-20 tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc7984
                            contract:
                              type: string
                          required:
                            - kind
                            - contract
                          title: EVM ERC-7984 confidential tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Hts
                            tokenId:
                              type: string
                          required:
                            - kind
                            - tokenId
                          title: Hedera tokens (HTS)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Iou
                            currency:
                              type: string
                            issuer:
                              type: string
                          required:
                            - kind
                            - currency
                            - issuer
                          title: XRP Ledger IOU tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Cip56
                            instrumentId:
                              type: string
                            instrumentAdmin:
                              type: string
                          required:
                            - kind
                            - instrumentId
                            - instrumentAdmin
                          title: Canton CIP-56 tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum: *ref_117
                            coin:
                              type: string
                          required:
                            - kind
                            - coin
                          title: Sui/IOTA Coin assets
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Xls33
                            issuanceId:
                              type: string
                          required:
                            - kind
                            - issuanceId
                          title: XRP Ledger MPL (XLS-33) tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Asset
                            assetId:
                              type: string
                          required:
                            - kind
                            - assetId
                          title: Polymesh/Cardano assets
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Cis7
                            tokenId:
                              type: string
                          required:
                            - kind
                            - tokenId
                          title: Concordium PLTs ( CIS-7 tokens)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Sep41
                            issuer:
                              type: string
                            assetCode:
                              type: string
                          required:
                            - kind
                            - issuer
                            - assetCode
                          title: Stellar SEP-41 tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Trc10
                            tokenId:
                              type: string
                          required:
                            - kind
                            - tokenId
                          title: TRON TRC-10 tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum: *ref_118
                            mint:
                              type: string
                          required:
                            - kind
                            - mint
                          title: Solana SPL/SPL2022 tokens
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Tep74
                            master:
                              type: string
                          required:
                            - kind
                            - master
                          title: TON TEP-74 Jetton
                    - type: object
                      properties:
                        network:
                          $ref: '#/components/schemas/Network'
                        decimals:
                          type: number
                      required:
                        - network
                        - decimals
  /exchanges/{exchangeId}/accounts/{accountId}/deposits:
    post:
      summary: Create Exchange Deposit
      tags:
        - Exchanges
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Creates a new exchange deposit transaction.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Exchanges:Deposits:Create`: Always required.   
          `Wallets:Transfers:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            description: >-
              The exchange id obtained from the Create Exchange endpoint. Ex:
              `ex-1f04s-lqc9q-xxxxxxxxxxxxxxxx`
          required: true
          description: >-
            The exchange id obtained from the Create Exchange endpoint. Ex:
            `ex-1f04s-lqc9q-xxxxxxxxxxxxxxxx`
          name: exchangeId
          in: path
        - schema:
            type: string
            minLength: 1
            description: Unique identifier for the account like "spot"
          required: true
          description: Unique identifier for the account like "spot"
          name: accountId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of native tokens to transfer in minimum
                        denomination.
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: >-
                        The priority that determines the fees paid for the
                        transfer. All EVM compatible networks and Bitcoin
                        support `priority`. Not supported for other networks. It
                        uses the [estimate
                        fees](https://docs.dfns.co/api-reference/networks/estimate-fees)
                        API to calculate the transfer fees. When not specified,
                        defaults to `Standard` priority.
                    createDestinationAccount:
                      type: boolean
                      description: >-
                        Whether to create the destination account on chains that
                        require account creation (e.g., Stellar). Only valid for
                        chains that require the receiver account to exist before
                        transfer.
                    offer:
                      type: boolean
                      description: >-
                        Optional field for Canton, if true it will create a
                        transfer offer.
                    expiresAt:
                      type: string
                      format: date-time
                      description: >-
                        Optional field for Canton, especially useful in the
                        context of offers
                    useDurableNonce:
                      type: boolean
                      description: >-
                        Optional Solana-only flag. When `true` the SOL transfer
                        is built as a durable-nonce transaction using one of the
                        wallet's nonce accounts (picked server-side). Use this
                        for offline-signing flows where the construct →
                        broadcast gap may exceed 90 seconds. The wallet's nonce
                        account pool must be pre-populated via `POST
                        /wallets/{id}/transactions` with `kind:
                        CreateSolanaNonceAccounts`.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - amount
                    - walletId
                  description: ''
                  title: Native Assets
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: The ERC-20 contract address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: >-
                        The priority that determines the fees paid for the
                        transfer.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - contract
                    - amount
                    - walletId
                  description: ''
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Trc10
                    tokenId:
                      type: string
                      pattern: ^\d+$
                      description: The token ID.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - tokenId
                    - amount
                    - walletId
                  description: ''
                  title: TRON Native Fungible Token (TRC-10)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Trc20
                    contract:
                      type: string
                      pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                      description: The smart contract address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - contract
                    - amount
                    - walletId
                  description: ''
                  title: TRON Smart Contract Fungible Token (TRC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Asa
                    assetId:
                      type: string
                      pattern: ^\d+$
                      description: 'The token asset id. '
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - assetId
                    - amount
                    - walletId
                  description: ''
                  title: Algorand Standard Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Sep41
                    issuer:
                      type: string
                      pattern: ^(G[A-Z0-9]{55}|M[A-Z0-9]{68})$
                      description: The asset issuer address.
                    assetCode:
                      type: string
                      description: The asset code.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - issuer
                    - assetCode
                    - amount
                    - walletId
                  description: ''
                  title: Stellar Classic Assets (SEP-41)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum: *ref_119
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                      description: The mint account address.
                    createDestinationAccount:
                      type: boolean
                      description: >-
                        If `true`, pay to create the associated token account
                        for the recipient if it doesn't exist. Defaults to
                        `false`.
                    useDurableNonce:
                      type: boolean
                      description: >-
                        Optional. When `true` the SPL transfer is built as a
                        durable-nonce transaction using one of the wallet's
                        nonce accounts (picked server-side). The wallet's nonce
                        account pool must be pre-populated via `POST
                        /wallets/{id}/transactions` with `kind:
                        CreateSolanaNonceAccounts`.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - amount
                    - mint
                    - walletId
                  description: ''
                  title: Solana Program Library Token (SPL and SPL 2022)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Tep74
                    master:
                      type: string
                      pattern: ^(?:[A-Za-z0-9\-_]{48}|\d+:[a-fA-F0-9]{64})$
                      description: The Jetton master contract address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - master
                    - amount
                    - walletId
                  description: ''
                  title: TON Jetton (TEP-74)
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  exchangeId:
                    type: string
                  accountId:
                    type: string
                  transferId:
                    type: string
                  exchangeReference:
                    type: string
                  kind:
                    type: string
                    enum: &ref_120
                      - Withdrawal
                      - Deposit
                  walletId:
                    type: string
                  requester:
                    $ref: '#/components/schemas/Requester'
                  requestBody:
                    oneOf:
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Native
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of native tokens to transfer in minimum
                              denomination.
                          priority:
                            type: string
                            enum:
                              - Slow
                              - Standard
                              - Fast
                            description: >-
                              The priority that determines the fees paid for the
                              transfer. All EVM compatible networks and Bitcoin
                              support `priority`. Not supported for other
                              networks. It uses the [estimate
                              fees](https://docs.dfns.co/api-reference/networks/estimate-fees)
                              API to calculate the transfer fees. When not
                              specified, defaults to `Standard` priority.
                          createDestinationAccount:
                            type: boolean
                            description: >-
                              Whether to create the destination account on
                              chains that require account creation (e.g.,
                              Stellar). Only valid for chains that require the
                              receiver account to exist before transfer.
                          offer:
                            type: boolean
                            description: >-
                              Optional field for Canton, if true it will create
                              a transfer offer.
                          expiresAt:
                            type: string
                            format: date-time
                            description: >-
                              Optional field for Canton, especially useful in
                              the context of offers
                          useDurableNonce:
                            type: boolean
                            description: >-
                              Optional Solana-only flag. When `true` the SOL
                              transfer is built as a durable-nonce transaction
                              using one of the wallet's nonce accounts (picked
                              server-side). Use this for offline-signing flows
                              where the construct → broadcast gap may exceed 90
                              seconds. The wallet's nonce account pool must be
                              pre-populated via `POST
                              /wallets/{id}/transactions` with `kind:
                              CreateSolanaNonceAccounts`.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - amount
                          - walletId
                        description: ''
                        title: Native Assets
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Erc20
                          contract:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{40}$
                            description: The ERC-20 contract address.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          priority:
                            type: string
                            enum:
                              - Slow
                              - Standard
                              - Fast
                            description: >-
                              The priority that determines the fees paid for the
                              transfer.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - contract
                          - amount
                          - walletId
                        description: ''
                        title: EVM Fungible Token (ERC-20)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Trc10
                          tokenId:
                            type: string
                            pattern: ^\d+$
                            description: The token ID.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - tokenId
                          - amount
                          - walletId
                        description: ''
                        title: TRON Native Fungible Token (TRC-10)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Trc20
                          contract:
                            type: string
                            pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                            description: The smart contract address.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - contract
                          - amount
                          - walletId
                        description: ''
                        title: TRON Smart Contract Fungible Token (TRC-20)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Asa
                          assetId:
                            type: string
                            pattern: ^\d+$
                            description: 'The token asset id. '
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - assetId
                          - amount
                          - walletId
                        description: ''
                        title: Algorand Standard Asset
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Sep41
                          issuer:
                            type: string
                            pattern: ^(G[A-Z0-9]{55}|M[A-Z0-9]{68})$
                            description: The asset issuer address.
                          assetCode:
                            type: string
                            description: The asset code.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - issuer
                          - assetCode
                          - amount
                          - walletId
                        description: ''
                        title: Stellar Classic Assets (SEP-41)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum: *ref_119
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          mint:
                            type: string
                            pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            description: The mint account address.
                          createDestinationAccount:
                            type: boolean
                            description: >-
                              If `true`, pay to create the associated token
                              account for the recipient if it doesn't exist.
                              Defaults to `false`.
                          useDurableNonce:
                            type: boolean
                            description: >-
                              Optional. When `true` the SPL transfer is built as
                              a durable-nonce transaction using one of the
                              wallet's nonce accounts (picked server-side). The
                              wallet's nonce account pool must be pre-populated
                              via `POST /wallets/{id}/transactions` with `kind:
                              CreateSolanaNonceAccounts`.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - amount
                          - mint
                          - walletId
                        description: ''
                        title: Solana Program Library Token (SPL and SPL 2022)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Tep74
                          master:
                            type: string
                            pattern: ^(?:[A-Za-z0-9\-_]{48}|\d+:[a-fA-F0-9]{64})$
                            description: The Jetton master contract address.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - master
                          - amount
                          - walletId
                        description: ''
                        title: TON Jetton (TEP-74)
                  dateCreated:
                    type: string
                required:
                  - id
                  - exchangeId
                  - accountId
                  - kind
                  - walletId
                  - requester
                  - requestBody
                  - dateCreated
  /exchanges/{exchangeId}/accounts/{accountId}/withdrawals:
    post:
      summary: Create Exchange Withdrawal
      tags:
        - Exchanges
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Creates a new exchange withdrawal transaction.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Exchanges:Withdrawals:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            description: >-
              The exchange id obtained from the Create Exchange endpoint. Ex:
              `ex-1f04s-lqc9q-xxxxxxxxxxxxxxxx`
          required: true
          description: >-
            The exchange id obtained from the Create Exchange endpoint. Ex:
            `ex-1f04s-lqc9q-xxxxxxxxxxxxxxxx`
          name: exchangeId
          in: path
        - schema:
            type: string
            minLength: 1
            description: Unique identifier for the account like "spot"
          required: true
          description: Unique identifier for the account like "spot"
          name: accountId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of native tokens to transfer in minimum
                        denomination.
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: >-
                        The priority that determines the fees paid for the
                        transfer. All EVM compatible networks and Bitcoin
                        support `priority`. Not supported for other networks. It
                        uses the [estimate
                        fees](https://docs.dfns.co/api-reference/networks/estimate-fees)
                        API to calculate the transfer fees. When not specified,
                        defaults to `Standard` priority.
                    createDestinationAccount:
                      type: boolean
                      description: >-
                        Whether to create the destination account on chains that
                        require account creation (e.g., Stellar). Only valid for
                        chains that require the receiver account to exist before
                        transfer.
                    offer:
                      type: boolean
                      description: >-
                        Optional field for Canton, if true it will create a
                        transfer offer.
                    expiresAt:
                      type: string
                      format: date-time
                      description: >-
                        Optional field for Canton, especially useful in the
                        context of offers
                    useDurableNonce:
                      type: boolean
                      description: >-
                        Optional Solana-only flag. When `true` the SOL transfer
                        is built as a durable-nonce transaction using one of the
                        wallet's nonce accounts (picked server-side). Use this
                        for offline-signing flows where the construct →
                        broadcast gap may exceed 90 seconds. The wallet's nonce
                        account pool must be pre-populated via `POST
                        /wallets/{id}/transactions` with `kind:
                        CreateSolanaNonceAccounts`.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - amount
                    - walletId
                  description: ''
                  title: Native Assets
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: The ERC-20 contract address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: >-
                        The priority that determines the fees paid for the
                        transfer.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - contract
                    - amount
                    - walletId
                  description: ''
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Trc10
                    tokenId:
                      type: string
                      pattern: ^\d+$
                      description: The token ID.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - tokenId
                    - amount
                    - walletId
                  description: ''
                  title: TRON Native Fungible Token (TRC-10)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Trc20
                    contract:
                      type: string
                      pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                      description: The smart contract address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - contract
                    - amount
                    - walletId
                  description: ''
                  title: TRON Smart Contract Fungible Token (TRC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Asa
                    assetId:
                      type: string
                      pattern: ^\d+$
                      description: 'The token asset id. '
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - assetId
                    - amount
                    - walletId
                  description: ''
                  title: Algorand Standard Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Sep41
                    issuer:
                      type: string
                      pattern: ^(G[A-Z0-9]{55}|M[A-Z0-9]{68})$
                      description: The asset issuer address.
                    assetCode:
                      type: string
                      description: The asset code.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - issuer
                    - assetCode
                    - amount
                    - walletId
                  description: ''
                  title: Stellar Classic Assets (SEP-41)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum: *ref_119
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                      description: The mint account address.
                    createDestinationAccount:
                      type: boolean
                      description: >-
                        If `true`, pay to create the associated token account
                        for the recipient if it doesn't exist. Defaults to
                        `false`.
                    useDurableNonce:
                      type: boolean
                      description: >-
                        Optional. When `true` the SPL transfer is built as a
                        durable-nonce transaction using one of the wallet's
                        nonce accounts (picked server-side). The wallet's nonce
                        account pool must be pre-populated via `POST
                        /wallets/{id}/transactions` with `kind:
                        CreateSolanaNonceAccounts`.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - amount
                    - mint
                    - walletId
                  description: ''
                  title: Solana Program Library Token (SPL and SPL 2022)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Tep74
                    master:
                      type: string
                      pattern: ^(?:[A-Za-z0-9\-_]{48}|\d+:[a-fA-F0-9]{64})$
                      description: The Jetton master contract address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    walletId:
                      type: string
                      minLength: 1
                    otp:
                      type: string
                      minLength: 6
                      maxLength: 6
                  required:
                    - kind
                    - master
                    - amount
                    - walletId
                  description: ''
                  title: TON Jetton (TEP-74)
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  exchangeId:
                    type: string
                  accountId:
                    type: string
                  transferId:
                    type: string
                  exchangeReference:
                    type: string
                  kind:
                    type: string
                    enum: *ref_120
                  walletId:
                    type: string
                  requester:
                    $ref: '#/components/schemas/Requester'
                  requestBody:
                    oneOf:
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Native
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of native tokens to transfer in minimum
                              denomination.
                          priority:
                            type: string
                            enum:
                              - Slow
                              - Standard
                              - Fast
                            description: >-
                              The priority that determines the fees paid for the
                              transfer. All EVM compatible networks and Bitcoin
                              support `priority`. Not supported for other
                              networks. It uses the [estimate
                              fees](https://docs.dfns.co/api-reference/networks/estimate-fees)
                              API to calculate the transfer fees. When not
                              specified, defaults to `Standard` priority.
                          createDestinationAccount:
                            type: boolean
                            description: >-
                              Whether to create the destination account on
                              chains that require account creation (e.g.,
                              Stellar). Only valid for chains that require the
                              receiver account to exist before transfer.
                          offer:
                            type: boolean
                            description: >-
                              Optional field for Canton, if true it will create
                              a transfer offer.
                          expiresAt:
                            type: string
                            format: date-time
                            description: >-
                              Optional field for Canton, especially useful in
                              the context of offers
                          useDurableNonce:
                            type: boolean
                            description: >-
                              Optional Solana-only flag. When `true` the SOL
                              transfer is built as a durable-nonce transaction
                              using one of the wallet's nonce accounts (picked
                              server-side). Use this for offline-signing flows
                              where the construct → broadcast gap may exceed 90
                              seconds. The wallet's nonce account pool must be
                              pre-populated via `POST
                              /wallets/{id}/transactions` with `kind:
                              CreateSolanaNonceAccounts`.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - amount
                          - walletId
                        description: ''
                        title: Native Assets
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Erc20
                          contract:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{40}$
                            description: The ERC-20 contract address.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          priority:
                            type: string
                            enum:
                              - Slow
                              - Standard
                              - Fast
                            description: >-
                              The priority that determines the fees paid for the
                              transfer.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - contract
                          - amount
                          - walletId
                        description: ''
                        title: EVM Fungible Token (ERC-20)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Trc10
                          tokenId:
                            type: string
                            pattern: ^\d+$
                            description: The token ID.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - tokenId
                          - amount
                          - walletId
                        description: ''
                        title: TRON Native Fungible Token (TRC-10)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Trc20
                          contract:
                            type: string
                            pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                            description: The smart contract address.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - contract
                          - amount
                          - walletId
                        description: ''
                        title: TRON Smart Contract Fungible Token (TRC-20)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Asa
                          assetId:
                            type: string
                            pattern: ^\d+$
                            description: 'The token asset id. '
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - assetId
                          - amount
                          - walletId
                        description: ''
                        title: Algorand Standard Asset
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Sep41
                          issuer:
                            type: string
                            pattern: ^(G[A-Z0-9]{55}|M[A-Z0-9]{68})$
                            description: The asset issuer address.
                          assetCode:
                            type: string
                            description: The asset code.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - issuer
                          - assetCode
                          - amount
                          - walletId
                        description: ''
                        title: Stellar Classic Assets (SEP-41)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum: *ref_119
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          mint:
                            type: string
                            pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            description: The mint account address.
                          createDestinationAccount:
                            type: boolean
                            description: >-
                              If `true`, pay to create the associated token
                              account for the recipient if it doesn't exist.
                              Defaults to `false`.
                          useDurableNonce:
                            type: boolean
                            description: >-
                              Optional. When `true` the SPL transfer is built as
                              a durable-nonce transaction using one of the
                              wallet's nonce accounts (picked server-side). The
                              wallet's nonce account pool must be pre-populated
                              via `POST /wallets/{id}/transactions` with `kind:
                              CreateSolanaNonceAccounts`.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - amount
                          - mint
                          - walletId
                        description: ''
                        title: Solana Program Library Token (SPL and SPL 2022)
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Tep74
                          master:
                            type: string
                            pattern: ^(?:[A-Za-z0-9\-_]{48}|\d+:[a-fA-F0-9]{64})$
                            description: The Jetton master contract address.
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of tokens to transfer in minimum
                              denomination.
                          externalId:
                            type: string
                            minLength: 1
                            maxLength: 50
                            description: >-
                              A unique ID from your system. It can be leveraged
                              to be used as an idempotency key. (read more
                              [here](https://docs.dfns.co/api-reference/idempotency))
                          travelRule:
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - Notabene
                                  beneficiaryVASPdid:
                                    type: string
                                  beneficiaryProof:
                                    type: object
                                    additionalProperties: {}
                                  originator:
                                    type: object
                                    additionalProperties: {}
                                  beneficiary:
                                    type: object
                                    additionalProperties: {}
                                required:
                                  - kind
                                  - originator
                                  - beneficiary
                                additionalProperties: false
                                title: Notabene Travel Rule
                            description: >-
                              A travel rule payload to associate with the
                              transfer. (read more
                              [here](https://docs.dfns.co/features/travel-rule))
                          feeSponsorId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: >-
                              Id of the fee sponsor that will be used to pay for
                              your transfer fees, it might not be available for
                              all blockchains. (read more
                              [here](https://docs.dfns.co/features/fee-sponsors))
                            example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                          walletId:
                            type: string
                            minLength: 1
                          otp:
                            type: string
                            minLength: 6
                            maxLength: 6
                        required:
                          - kind
                          - master
                          - amount
                          - walletId
                        description: ''
                        title: TON Jetton (TEP-74)
                  dateCreated:
                    type: string
                required:
                  - id
                  - exchangeId
                  - accountId
                  - kind
                  - walletId
                  - requester
                  - requestBody
                  - dateCreated
  /fee-sponsors:
    post:
      summary: Create Fee Sponsor
      tags:
        - Fee Sponsors
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates a new `FeeSponsor` associated with a sponsor wallet. Returns a
        new fee sponsor entity with the `id` to be used when making a transfer.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `FeeSponsors:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    Nickname for the Fee Sponsor. This will be displayed on the
                    transfer modal in the dashboard.
                walletId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    Id of the wallet that will be used to sponsor the fee for
                    other wallets.
                  example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                allowEndUser:
                  type: boolean
                  default: false
                  description: >-
                    Defines whether EndUsers and their delegated wallets can use
                    this Fee Sponsor.
              required:
                - walletId
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeSponsor'
    get:
      summary: List Fee Sponsors
      tags:
        - Fee Sponsors
      security:
        - authenticationToken: []
      description: Retrieves all Fee Sponsors configured in your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `FeeSponsors:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/FeeSponsor'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /fee-sponsors/{feeSponsorId}:
    get:
      summary: Get Fee Sponsor
      tags:
        - Fee Sponsors
      security:
        - authenticationToken: []
      description: Retrieve a Fee Sponsor information by ID.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `FeeSponsors:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Which Fee Sponsor you wish to retrieve.
          required: true
          description: Which Fee Sponsor you wish to retrieve.
          name: feeSponsorId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeSponsor'
    delete:
      summary: Delete Fee Sponsor
      tags:
        - Fee Sponsors
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Delete a Fee Sponsor. This action is irreversible. The fee sponsor won't
        be able to be used anymore when making a transfer.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `FeeSponsors:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Which Fee Sponsor you wish to delete.
          required: true
          description: Which Fee Sponsor you wish to delete.
          name: feeSponsorId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeSponsor'
  /fee-sponsors/{feeSponsorId}/deactivate:
    put:
      summary: Deactivate Fee Sponsor
      tags:
        - Fee Sponsors
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Deactivate a Fee Sponsor: The fee sponsor won't be able to be used
        anymore when making a transfer.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `FeeSponsors:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Which Fee Sponsor you wish to deactivate.
          required: true
          description: Which Fee Sponsor you wish to deactivate.
          name: feeSponsorId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeSponsor'
  /fee-sponsors/{feeSponsorId}/activate:
    put:
      summary: Activate Fee Sponsor
      tags:
        - Fee Sponsors
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Activate a Fee Sponsor: The fee sponsor can be used when making a
        transfer.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `FeeSponsors:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Which Fee Sponsor you wish to activate.
          required: true
          description: Which Fee Sponsor you wish to activate.
          name: feeSponsorId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeSponsor'
  /fee-sponsors/{feeSponsorId}/fees:
    get:
      summary: List Sponsored Fees
      tags:
        - Fee Sponsors
      security:
        - authenticationToken: []
      description: Retrieves all fees paid by the specific Fee Sponsor.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `FeeSponsors:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Fee Sponsor to retrieve the fees from.
          required: true
          description: Fee Sponsor to retrieve the fees from.
          name: feeSponsorId
          in: path
        - schema:
            type: string
            pattern: ^\d+$
          required: false
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        feeSponsorId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Fee Sponsor id.
                          example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                        sponsoreeId:
                          type: string
                          description: Id of the entity being sponsored, e.g. a wallet id.
                        requestId:
                          type: string
                          description: Id of the request that was sponsored.
                        fee:
                          type: string
                          description: Fee amount that was paid for the request
                        dateRequested:
                          type: string
                          format: date-time
                          description: >-
                            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                            date (must be UTC). When the sponsorship was
                            requested.
                          example: 2023-04-14T20:41:28.715Z
                        dateConfirmed:
                          type: string
                          format: date-time
                          description: >-
                            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                            date (must be UTC). When the sponsorship was
                            confirmed.
                          example: 2023-04-14T20:41:28.715Z
                      required:
                        - feeSponsorId
                        - sponsoreeId
                        - requestId
                        - dateRequested
                        - dateConfirmed
                  nextPageToken:
                    type: string
                required:
                  - items
  /keys:
    post:
      summary: Create Key
      tags:
        - Keys
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates a key for the given scheme and curve. Returns the new key
        entity. 
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Create`: Always required   
          `Keys:Delegate`: Required if `delegateTo` is specified.   
          `Keys:ChildKeys:Create`: Required if `deriveFrom` is specified.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                scheme:
                  $ref: '#/components/schemas/KeyScheme'
                curve:
                  $ref: '#/components/schemas/KeyCurve'
                name:
                  type: string
                  maxLength: 100
                  description: Nickname for the key.
                masterKey:
                  type: boolean
                  description: >-
                    Whether this key can be used as a master key for HD
                    derivation.
                deriveFrom:
                  type: object
                  properties:
                    keyId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: The master key to derive from.
                      example: key-01snl-t56gb-j8tsok0vn802p80i
                    path:
                      type: string
                      pattern: ^m(\/(0|[1-9]\d{0,9}))+$
                      description: >-
                        Use this to specify the derivation path of the signing
                        key. One will be auto generated if left blank.
                  required:
                    - keyId
                  description: Options for hierarchical deterministic key derivation.
                storeId:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^store-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: The key store to save the key to.
                  example: store-425nf-ebf0a-qq22t6qra51tj8j0
                delegateTo:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: ID of the end user to delegate this key to.
                  example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                delayDelegation:
                  type: boolean
                  description: Whether to delay delegation until explicitly triggered.
              required:
                - scheme
                - curve
              additionalProperties: false
            examples:
              EdDSA:
                value:
                  scheme: EdDSA
                  curve: ed25519
              Schnorr:
                value:
                  scheme: Schnorr
                  curve: secp256k1
              Stark:
                value:
                  scheme: ECDSA
                  curve: stark
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Key'
    get:
      summary: List Keys
      tags:
        - Keys
      security:
        - authenticationToken: []
      description: Retrieve all keys registered for your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            minLength: 1
            description: Filter by owner id or username.
          required: false
          description: Filter by owner id or username.
          name: owner
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Key'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /keys/{keyId}/delegate:
    post:
      summary: Delegate Key
      tags:
        - Keys
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >
        <Warning>

        Only keys created with "`delayDelegation: true`" can then be delegated
        to an end-user. It means you need to know ahead of time that you're
        creating a wallet meant to be delegated to an end-user later. This is a
        safety to prevent, for example, a treasury wallet from being
        unintentionally delegated to an end-user.

        </Warning>


        <Note>

        When a key is delegated to an end user, all wallets using this key as
        the signing key are also automatically delegated to the same end user.
        Key and wallet ownerships are guaranteed to be always consistent.

        </Note>


        <Danger>

        This operation is irreversible. The key ownership will be transferred to
        the end-user

        </Danger>


        In most cases, when you want to implement [Wallet
        Delegation](https://docs.dfns.co/guides/developers/delegated-wallets),
        simply create the wallet by directly delegating it to an end user, in
        which case it will the non-custodial from the start.  There are some
        rare cases, however, where the key or wallet must be created before the
        user has accessed to the system.  To accommodate this, we've added the
        ability to create a key or wallet in delay delegation mode, and then
        later delegate it (i.e.: transfer ownership of it) to an end user via
        this endpoint.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Delegate`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: keyId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                delegateTo:
                  type: string
                  minLength: 1
              required:
                - delegateTo
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  keyId:
                    type: string
                  status:
                    type: string
                    enum:
                      - Delegated
                required:
                  - keyId
                  - status
  /keys/{keyId}:
    delete:
      summary: Delete Key
      tags:
        - Keys
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Deletes the key and all wallets using this key. Once deleted, keys (and
        wallets) are not usable anymore, and won't count in your overall
        organisation wallet count.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: keyId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Key'
                  - additionalProperties: false
    get:
      summary: Get Key
      tags:
        - Keys
      security:
        - authenticationToken: []
      description: Retrieves a key information by its ID.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The key to retrieve.
          required: true
          description: The key to retrieve.
          name: keyId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Key'
                  - type: object
                    properties:
                      wallets:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: The wallet id.
                              example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                            network:
                              type: string
                              description: The network of the wallet.
                              enum: *ref_54
                          required:
                            - id
                            - network
                        description: Wallets associated with this key.
                      store:
                        type: object
                        properties:
                          id:
                            type: string
                            description: The key store id.
                          kind:
                            type: string
                            enum:
                              - Hsm
                              - Mpc
                              - OfflineSigner
                            description: The type of key store.
                          keyId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: The key id within the store.
                            example: key-01snl-t56gb-j8tsok0vn802p80i
                          derivationPath:
                            type: string
                            description: The HD derivation path if applicable.
                        required:
                          - id
                          - kind
                          - keyId
                        description: Key store details.
                    required:
                      - wallets
                      - store
    put:
      summary: Update Key
      tags:
        - Keys
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Updates the name of an existing key.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: keyId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type:
                    - string
                    - 'null'
                  maxLength: 100
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Key'
                  - additionalProperties: false
  /keys/{keyId}/derive:
    post:
      summary: Derive Key
      tags:
        - Keys
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Dfns decentralized key management network supports threshold
        Diffie-Hellman protocol based on [GLOW20
        paper](https://eprint.iacr.org/2020/096). You can use the DH protocol to
        derive output from a domain separation tag and a seed value. The
        derivation process is deterministic, i.e. the same Diffie-Hellman key
        and seed will lead to the same derived output. To ensure
        reproducibility, we use hash to curve
        [RFC9380](https://www.rfc-editor.org/rfc/rfc9380.html) and standard
        ciphersuite `secp256k1_XMD:SHA-256_SSWU_RO_`.


        <Tip>

        The seed doesn’t need to be secret. Without access to the DH key, it is
        not possible to do the derivation, even if the seed is known. Moreover,
        if both seed and derived output are known, it’s also not possible to do
        the derivation for another seed without having access to the DH key.

        </Tip>


        This endpoint only supports Diffie-Hellman keys. Regular threshold
        signature keys, like `ECDSA` or `EdDSA`, will not work. You can create a
        Diffie-Hellman key with the [Create
        Key](https://docs.dfns.co/api-reference/keys/create-key) endpoint using
        `scheme=DH` and `curve=secp256k1`.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Derive`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: keyId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                seed:
                  type: string
                  pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
              required:
                - domain
                - seed
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  output:
                    type: string
                required:
                  - output
  /keys/{keyId}/export:
    post:
      summary: Export Key
      tags:
        - Keys
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Dfns secures private keys by generating them as MPC key shares in our
        decentralized key management network.  Our goal is to eliminate all
        single points of failure (SPOFs) associated with blockchain private
        keys.


        In certain circumstances, however, customers require Dfns to export a
        private key. In this case, Dfns exposes the following endpoint which can
        be used in conjunction with our [export
        SDK](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/export-wallet).


        <Danger>

        Dfns can not guarantee the security of exported keys as we have no way
        to control blockchain transactions once the single point of failure has
        been reconstituted.  For this reason, this feature is restricted to
        customers who have signed a contractual addendum limiting our liability
        for exported keys.  Additionally, by default exported keys can no longer
        be used to sign within the Dfns platform. Please contact your sales
        representative for more information.

        </Danger>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Export`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: keyId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                encryptionKey:
                  type: string
                  minLength: 1
                supportedSchemes:
                  type: array
                  items:
                    type: object
                    properties:
                      protocol:
                        anyOf:
                          - type: string
                            enum:
                              - CGGMP24
                              - FROST
                              - FROST_BITCOIN
                              - GLOW20_DH
                              - KU23
                          - type: string
                            enum:
                              - CGGMP21
                      curve:
                        type: string
                        enum:
                          - ed25519
                          - secp256k1
                          - stark
                    required:
                      - protocol
                      - curve
                    additionalProperties: false
              required:
                - encryptionKey
                - supportedSchemes
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  publicKey:
                    type: string
                  protocol:
                    anyOf:
                      - type: string
                        enum:
                          - CGGMP24
                          - FROST
                          - FROST_BITCOIN
                          - GLOW20_DH
                          - KU23
                      - type: string
                        enum:
                          - CGGMP21
                  curve:
                    type: string
                    enum:
                      - ed25519
                      - secp256k1
                      - stark
                  minSigners:
                    type: number
                    description: The TSS threshold of the wallet private signing key shares
                  encryptedKeyShares:
                    type: array
                    items:
                      type: object
                      properties:
                        signerId:
                          type: string
                          description: >-
                            Base64-encoded ID of the signer exported the
                            encrypted keyshare
                        encryptedKeyShare:
                          type: string
                          description: Base64-encoded keyshare
                      required:
                        - signerId
                        - encryptedKeyShare
                    description: >-
                      Keyshares of the exported wallet. They are encrypted with
                      the provided encryption key. The exported private key is
                      re-constructed from these keyshares.
                required:
                  - publicKey
                  - protocol
                  - curve
                  - minSigners
                  - encryptedKeyShares
  /keys/{keyId}/signatures:
    post:
      summary: Generate Signature
      tags:
        - Keys
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >
        Request to generate a signature with the key. **This process does not
        broadcast anything on-chain**, this is just an off-chain signature
        request.


        Dfns is compatible with any blockchain that uses a supported [key
        format](https://docs.dfns.co/networks/supported-key-formats). If Dfns
        doesn't officially integrate with a blockchain, you can use hash signing
        to generate the signatures to interact with the chain.


        <Note>

        If you were using the deprecated `POST /wallets/{walletId}/signatures`
        endpoint, then you should now use this one. See the [deprecation
        notice](https://docs.dfns.co/deprecation/keys-and-multichain-migration-guide)
        to get more information about how to change your code. TL,DR: from a
        wallet you can obtain the key as `wallet.signingKey.id`.

        </Note>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Signatures:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The key to sign with.
          required: true
          description: The key to sign with.
          name: keyId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Hash
                    hash:
                      type: string
                      pattern: ^(0x)?[0-9a-fA-F]{64}$
                      description: 32-byte hash in hex encoded format.
                    taprootMerkleRoot:
                      type: string
                      pattern: ^(0x)?([0-9A-Fa-f]{64})?$
                      description: >-
                        Required when signing with a Schnorr key. Specify the
                        merkle root for tweaking the signing key, or the empty
                        string "" to tweak with the default merkle root.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - hash
                  additionalProperties: false
                  description: >-
                    All cryptographic scheme support hash signing. Different
                    blockchains will apply different hash functions to compute
                    the hash.
                  title: Hash
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Message
                    message:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: An arbitrary hex encoded message.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - message
                  additionalProperties: false
                  description: Signs an arbitrary hex encoded arbitrary message.
                  title: Message
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Transaction
                    transaction:
                      anyOf:
                        - type: string
                          pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                        - type: object
                          properties: {}
                      description: >-
                        The unsigned hex encoded transaction or JSON object for
                        compatible networks
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - transaction
                  additionalProperties: false
                  description: >-
                    Signs an unsigned transaction. The transaction parameter
                    accepts hex-encoded transactions or JSON objects for
                    compatible networks (Concordium, Starknet, Evm).


                    The following blockchains only accept JSON transaction
                    objects (not hex strings): Concordium, Starknet.


                    For Starknet transactions, you may use invocation request
                    objects
                    (https://github.com/starkware-libs/starknet-specs/blob/v0.8.1/api/starknet_api_openrpc.json#L2621):


                    | Field                         |
                    Description                                                                                        
                    | Type - Optional                  |

                    |-------------------------------|-----------------------------------------------------------------------------------------------------|----------------------------------|

                    | type                          | transaction type (always
                    INVOKE             
                    )                                                      |
                    String (required)                |

                    | calldata                      | **Array** of encoded
                    function call
                    parameters                                                      
                    | **Array of Strings** (required)  |

                    | nonce                         | Transaction nonce in hex
                    format                                                                    
                    | String (required)                |

                    | version                       | Transaction version in hex
                    format. Typically "0x3" for current
                    transactions                         | String
                    (required)                |

                    | resourceBounds                | Gas bounds for L1, L2, and
                    L1 data
                    gas                                                             
                    | Object (required)                |

                    | ↳ resourceBounds.l1Gas        | L1 gas configuration with
                    maxAmount and
                    maxPricePerUnit                                            
                    | Object (required)                |

                    | ↳ resourceBounds.l2Gas        | L2 gas configuration with
                    maxAmount and
                    maxPricePerUnit                                            
                    | Object (required)                |

                    | ↳ resourceBounds.l1DataGas    | L1 data gas configuration
                    with maxAmount and
                    maxPricePerUnit                                        |
                    Object (required)                |

                    | tip                           | Transaction tip in hex
                    format. Typically
                    "0x0"                                                      |
                    String (required)                |

                    | paymasterData                 | Paymaster data
                    array                                                                               
                    | Array of Strings (required)      |

                    | accountDeploymentData         | Account deployment data
                    array                                                                      
                    | Array of Strings (required)      |

                    | nonceDataAvailabilityMode     | Data availability mode for
                    nonce. Typically "L1" for
                    now                                            | String
                    (required)                |

                    | feeDataAvailabilityMode       | Data availability mode for
                    fee. Typically "L1" for
                    now                                              | String
                    (required)                |

                    | chainId                       | The chain identifier in
                    hex
                    format                                                                 
                    | String (required)                |

                    | senderAddress                 | The address of the account
                    sending the
                    transaction                                                 
                    | String (required)                |


                    For Concordium transactions, use account transaction objects
                    (https://developer.concordium.software/concordium-node-sdk-js/classes/ccd_js_gen.ConcordiumGRPCClient.html):


                    | Field                          |
                    Description                                                                 
                    | Type - Optional              |

                    |--------------------------------|------------------------------------------------------------------------------|------------------------------|

                    | header.sender                  | Account address
                    (base58)                                                    
                    | String (required)            |

                    | header.nonce                   | Account
                    nonce                                                               
                    | String (required)            |

                    | header.expiry                  | Unix epoch seconds
                    expiry                                                    |
                    Number (required)            |

                    | header.executionEnergyAmount   | Max NRG for
                    execution                                                       
                    | String (required)            |

                    | header.numSignatures           | Number of
                    signatures                                                        
                    | Number (optional)            |

                    | payload                        | Transaction payload
                    (type-specific, e.g. Transfer, RegisterData)             |
                    Object (required)            |


                    ```json

                    {
                      "kind": "Transaction",
                      "blockchainKind": "Concordium",
                      "transaction": {
                        "header": {
                          "sender": "4FmiTW2L2AccyR36ZBRKNqwQvBJBH8CAXWMLB1dbX5WyZmRo6N",
                          "nonce": "42",
                          "expiry": 1709510400,
                          "executionEnergyAmount": "501"
                        },
                        "payload": {
                          "Transfer": {
                            "amount": "1000000",
                            "toAddress": "3U4sfVSqGG6XK8g6eho2qRYtnHc4MWJBG1dfxdtPGbfHwFxini"
                          }
                        }
                      }
                    }

                    ```


                    ```json

                    {
                      "kind": "Transaction",
                      "transaction": "0xe703847735941a82520894f0965f5eb35ace69f01b77031f2cff22daca622887470de4df82000080"
                    }

                    ```


                    ```json

                    {
                      "kind": "Transaction",
                      "transaction": {
                        "type": "INVOKE",
                        "calldata": [
                          "1",
                          "2009894490435840142178314390393166646092438090257831307886760648929397478285",
                          "232670485425082704932579856502088130646006032362877466777181098476241604910",
                          "3",
                          "296727860213112272332383824629975240127004024814636931420022890499591637514",
                          "1",
                          "0"
                        ],
                        "nonce": "0x51",
                        "version": "0x3",
                        "resourceBounds": {
                          "l1Gas": { "maxAmount": "0x0", "maxPricePerUnit": "0x239a01ff6e6c" },
                          "l2Gas": { "maxAmount": "0x1694a0", "maxPricePerUnit": "0x10c388d00" },
                          "l1DataGas": { "maxAmount": "0x120", "maxPricePerUnit": "0x98e8" }
                        },
                        "tip": "0x0",
                        "paymasterData": [],
                        "accountDeploymentData": [],
                        "nonceDataAvailabilityMode": "L1",
                        "feeDataAvailabilityMode": "L1",
                        "chainId": "0x534e5f5345504f4c4941",
                        "senderAddress": "0x0535a9762b984c876abe0b164b0ccedb0d23a78978c9fe87e29deae0ea890c72"
                      }
                    }

                    ```
                  title: Transaction
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Eip191
                    message:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: Hex-encoded message.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - message
                  additionalProperties: false
                  description: >-
                    Signs an personal_sign message as defined in
                    [EIP-191](https://eips.ethereum.org/EIPS/eip-191).
                  title: EIP-191 personal_sign Message
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Eip712
                    types:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            type:
                              type: string
                          required:
                            - name
                            - type
                          additionalProperties: false
                      description: Type definitions.
                    domain:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Name of the signing domain.
                        version:
                          type: string
                          description: Current major version of the signing domain.
                        chainId:
                          anyOf:
                            - type: integer
                              exclusiveMinimum: 0
                            - type: string
                          description: Chain ID.
                        verifyingContract:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{40}$
                          description: >-
                            The address of the contract that will verify the
                            signature.
                        salt:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{64}$
                          description: 32-byte value as a last-resort domain separator.
                      additionalProperties: false
                      description: Domain separator.
                    message:
                      type: object
                      additionalProperties: {}
                      description: Structured message to sign.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - types
                    - domain
                    - message
                  additionalProperties: false
                  description: >-
                    Signs a typed structured data as defined in
                    [EIP-712](https://eips.ethereum.org/EIPS/eip-712).
                  title: EIP-712 TypedData
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Eip7702
                    address:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: >-
                        The address of the contract the signer's EOA will be
                        delegated to.
                    nonce:
                      type: number
                      description: The current nonce of the signer EOA.
                    chainId:
                      type: number
                      description: Chain ID.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - address
                    - nonce
                    - chainId
                  additionalProperties: false
                  description: >-
                    Signs an authorization tuple for type 4 set code transaction
                    defined in
                    [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702).
                  title: EIP-7702 Authorization
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Snip12
                    primaryType:
                      type: string
                      description: The primary type of the message.
                    types:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            type:
                              type: string
                          required:
                            - name
                            - type
                          additionalProperties: false
                      description: Type definitions.
                    domain:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Name of the signing domain.
                        version:
                          type: string
                          description: Current major version of the signing domain.
                        chainId:
                          anyOf:
                            - type: integer
                              exclusiveMinimum: 0
                            - type: string
                          description: Chain ID.
                        revision:
                          anyOf:
                            - type: number
                            - type: string
                          description: Revision of the domain.
                      description: Domain separator.
                    message:
                      type: object
                      additionalProperties: {}
                      description: Structured message to sign.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - primaryType
                    - types
                    - domain
                    - message
                  additionalProperties: false
                  description: >-
                    Signs a typed structured data as defined in
                    [SNIP-12](https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-12.md).
                  title: SNIP-12 TypedData
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Psbt
                    psbt:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: The hex encoded PSBT.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - psbt
                  additionalProperties: false
                  description: Signs a partially signed Bitcoin / Litecoin transaction.
                  title: PSBT
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Bip322
                    message:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: The generic message hex encoded.
                    format:
                      type: string
                      enum:
                        - Simple
                        - Full
                      description: >-
                        Defaults to Simple if not present. The formatted
                        signature is returned in the `signedData` field in the
                        response.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - message
                  additionalProperties: false
                  description: >-
                    Signs a generic message using
                    [BIP-322](https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki).
                    Note: signing payload construction depends on the targeted
                    blockchain. Therefore it's tied to a specific `network`
                    rather than the blockchain kind.
                  title: BIP-322
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - SignDocDirect
                    signDoc:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: The hex encoded `SignDoc` Protobuf.
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - signDoc
                  additionalProperties: false
                  description: >-
                    Signs an unsigned transaction using [sign mode
                    direct](https://docs.cosmos.network/main/learn/advanced/transactions#sign_mode_direct-preferred).
                  title: SignDocDirect
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - SignerPayload
                    payload:
                      anyOf:
                        - type: string
                          pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                        - type: object
                          properties: {}
                      description: >
                        The unsigned Signer Payload formatted as JSON, or as a
                        serialized hex-encoded buffer.


                        Please refer to the original Polkadot definition for
                        more details:
                        [SignerPayloadJson](https://github.com/polkadot-js/api/blob/v16.2.2/packages/types/src/types/extrinsic.ts#L32).
                        Note that additional fields will be rejected.


                        | Field                |
                        Description                                                                             
                        | Type - Optional      |

                        | -------------------- |
                        ----------------------------------------------------------------------------------------
                        | -------------------- |

                        | `address`            | ss58-encoded address of the
                        sending
                        account.                                             |
                        String               |

                        | `blockHash`          | The hash of the checkpoint
                        block, hex
                        encoded.                                           |
                        String               |

                        | `blockNumber`        | The checkpoint block number,
                        hex
                        encoded.                                               
                        | String               |

                        | `era`                | The number of blocks after the
                        checkpoint for which a transaction is valid, hex
                        encoded. | String               |

                        | `genesisHash`        | The genesis hash of the chain,
                        hex
                        encoded.                                              |
                        String               |

                        | `metadataHash`       | The metadataHash for the
                        CheckMetadataHash SignedExtension, hex
                        encoded.                 | String *(optional)*  |

                        | `mode`               | flag indicating whether to
                        verify the metadata hash or
                        not.                              | Integer *(optional)*
                        |

                        | `method`             | The encoded method with
                        arguments, hex
                        encoded.                                          |
                        String               |

                        | `nonce`              | The nonce for the transaction,
                        hex
                        encoded.                                              |
                        String               |

                        | `tip`                | The tip to increase transaction
                        priority, hex encoded.                                  
                        | String               |

                        | `version`            | The version of the
                        extrinsic.                                                           
                        | Integer              |

                        | `specVersion`        | The current spec version for
                        the runtime, hex
                        encoded.                                   |
                        String               |

                        | `transactionVersion` | The current transaction version
                        for the runtime, hex encoded.                           
                        | String               |

                        | `signedExtensions`   | The applicable signed
                        extensions for this
                        runtime.                                       |
                        Array<String>       |


                        ```json

                        {
                          "network": "Polymesh",
                          "kind": "SignerPayload",
                          "payload": {
                            "address": "5H5tTnmLUqRgvTZvTwCdBKYjKLBm2gkp7u38Q9UUdJa8m6rX",
                            "blockHash": "0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6",
                            "blockNumber": "0x00000000",
                            "era": "0x00",
                            "genesisHash": "0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6",
                            "method": "0x07141f3da32e72ac6eb6cb40d9e757594363a617b2c3964a2b6ec6895c6648f48d500000",
                            "nonce": "0x00000000",
                            "tip": "0x00000000000000000000000000000000",
                            "version": 4,
                            "specVersion": "0x006adb7a",
                            "transactionVersion": "0x00000007",
                            "signedExtensions": []
                          }
                        }

                        ```
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - payload
                  additionalProperties: false
                  description: >-
                    Signs a [generic Signer
                    Payload](https://github.com/polkadot-js/api/blob/v15.0.1/packages/types/src/extrinsic/SignerPayload.ts#L47-L51).
                    Note: converting the generic signer payload to a signable
                    extrinsic requires fetching metadata from the targeted
                    blockchain. Therefore it's tied to a specific `network`
                    rather than the blockchain kind.
                  title: SignerPayload
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Cip8
                    payload:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: The generic message hex encoded.
                    externalAad:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: >-
                        Allows an application to ask the user to sign some extra
                        data but NOT put it inside the COSE structure (only as
                        part of the data to sign).
                    context:
                      type: string
                      enum:
                        - Signature1
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - context
                  additionalProperties: false
                  description: >-
                    Signs an arbitrary message using
                    [CIP-8](https://cips.cardano.org/cip/CIP-0008). Note:
                    signing address depends on the targeted blockchain.
                    Therefore it's tied to a specific `network` rather than the
                    blockchain kind.
                  title: CIP-8
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - DfnsSmartAccountTransaction
                    structured:
                      type: object
                      properties:
                        address:
                          type: string
                        userOperations:
                          type: array
                          items:
                            type: object
                            properties:
                              to:
                                type: string
                              value:
                                type: string
                              data:
                                type: string
                            required:
                              - to
                        message:
                          type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Eip712
                            domain:
                              type: object
                              properties:
                                name:
                                  type: string
                                version:
                                  type: string
                                chainId:
                                  anyOf:
                                    - type: number
                                    - type: string
                                verifyingContract:
                                  type: string
                                salt:
                                  type: string
                            types:
                              type: object
                              additionalProperties:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                    - name
                                    - type
                            message:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - domain
                            - types
                            - message
                        authorization:
                          type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Eip7702
                            address:
                              type: string
                            nonce:
                              type: number
                            chainId:
                              type: number
                          required:
                            - kind
                            - address
                            - nonce
                            - chainId
                      required:
                        - address
                        - userOperations
                        - message
                    signatures:
                      type: object
                      additionalProperties:
                        type: object
                        properties:
                          r:
                            type: string
                          s:
                            type: string
                          recid:
                            type: number
                          encoded:
                            type: string
                        required:
                          - r
                          - s
                    transactionReference:
                      type: string
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - structured
                    - signatures
                    - transactionReference
                  additionalProperties: false
                  title: Dfns Smart Account Transaction
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - StellarFeeBumpTransaction
                    innerTransaction:
                      type: string
                    transactionReference:
                      type: string
                    network:
                      $ref: '#/components/schemas/Network'
                    blockchainKind:
                      $ref: '#/components/schemas/BlockchainKind'
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - innerTransaction
                    - transactionReference
                  additionalProperties: false
                  title: Stellar Fee Bump Transaction
            examples:
              Bip322:
                value:
                  network: BitcoinSignet
                  kind: Bip322
                  message: '0x49206c6f76652044666e73'
              Cip8:
                value:
                  network: CardanoPreprod
                  kind: Cip8
                  payload: '0x49206c6f76652044666e73'
                  externalAad: '0x616464697469706e616c5f64617461'
                  context: Signature1
              Eip191:
                value:
                  blockchainKind: Evm
                  kind: Eip191
                  message: '0x49206c6f76652044666e73'
              Eip712:
                value:
                  blockchainKind: Evm
                  kind: Eip712
                  types:
                    Person:
                      - name: name
                        type: string
                      - name: wallet
                        type: address
                    Mail:
                      - name: from
                        type: Person
                      - name: to
                        type: Person
                      - name: contents
                        type: string
                  domain:
                    name: Ether Mail
                    version: '1'
                    chainId: 1
                    verifyingContract: '0x1b352de7a926ebd1bf52194dab487c2cb0793a9b'
                    salt: >-
                      0xf2d857f4a3edcb9b78b4d503bfe733db1e3f6cdc2b7971ee739626c97e86a558
                  message:
                    from:
                      name: Chris
                      wallet: '0x00e3495cf6af59008f22ffaf32d4c92ac33dac47'
                    to:
                      name: Bob
                      wallet: '0xcc0ee1a1c5e788b61916c8f1c96c960f9a9d3db7'
                    contents: Hello, Bob!
              Eip7702:
                value:
                  blockchainKind: Evm
                  kind: Eip7702
                  chainId: 1
                  address: '0xf5138ba9777A42F76437Ecd5F3cDb96Decd72b4e'
                  nonce: 0
              Hash:
                value:
                  kind: Hash
                  hash: >-
                    0xd356339fa071e88335fdfab167cb600430522b71839d8556fa351fe1b4cd7556
              Message:
                value:
                  blockchainKind: Evm
                  kind: Message
                  message: '0x49206c6f76652044666e73'
              Psbt:
                value:
                  blockchainKind: Bitcoin
                  kind: Psbt
                  psbt: >-
                    0x70736274ff0100db02000000019fc89619065ef6b81415397bb9879dfc78cacbaae66072d69eb619bfd79d5cba0200000000fdffffff0350c3000000000000225120cc8f48c274c1ac263046c301cb9e028979c8e89c4060b4b857c414ed6e7b43760000000000000000496a476262743400223d31efd004ca86999dedb0b32445f8ead685b4e99d92ec19ea0e211afd9672a99172cdc13644990aabe785f1595843de7f884249a28cc3170112e7a018b0c6fa00a2171b0000000000225120223d31efd004ca86999dedb0b32445f8ead685b4e99d92ec19ea0e211afd9672dd5d03000001012b9ceb1b0000000000225120223d31efd004ca86999dedb0b32445f8ead685b4e99d92ec19ea0e211afd9672011720223d31efd004ca86999dedb0b32445f8ead685b4e99d92ec19ea0e211afd967200000000
              Hash (Schnorr):
                value:
                  kind: Hash
                  hash: >-
                    0xd356339fa071e88335fdfab167cb600430522b71839d8556fa351fe1b4cd7556
                  taprootMerkleRoot: ''
              Transaction:
                value:
                  blockchainKind: Evm
                  kind: Transaction
                  transaction: >-
                    0xe703847735941a82520894f0965f5eb35ace69f01b77031f2cff22daca622887470de4df82000080
              Transaction (EVM JSON):
                value:
                  blockchainKind: Evm
                  kind: Transaction
                  transaction:
                    to: '0xd964d741998edc275f3800eed113378a391951d9'
                    value: '20000000000000000'
                    nonce: '3'
                    gasLimit: '21000'
                    maxFeePerGas: '2000000000'
                    maxPriorityFeePerGas: '1000000000'
              Transaction (Concordium JSON):
                value:
                  blockchainKind: Concordium
                  kind: Transaction
                  transaction:
                    header:
                      sender: 4FmiTW2L2AccyR36ZBRKNqwQvBJBH8CAXWMLB1dbX5WyZmRo6N
                      nonce: '42'
                      expiry: 1709510400
                      executionEnergyAmount: '501'
                    payload:
                      Transfer:
                        amount: '1000000'
                        toAddress: 3U4sfVSqGG6XK8g6eho2qRYtnHc4MWJBG1dfxdtPGbfHwFxini
              Transaction (Starknet JSON):
                value:
                  blockchainKind: Starknet
                  kind: Transaction
                  transaction:
                    type: INVOKE
                    calldata:
                      - '1'
                      - >-
                        2009894490435840142178314390393166646092438090257831307886760648929397478285
                      - >-
                        232670485425082704932579856502088130646006032362877466777181098476241604910
                      - '3'
                      - >-
                        296727860213112272332383824629975240127004024814636931420022890499591637514
                      - '1'
                      - '0'
                    nonce: '0x51'
                    version: '0x3'
                    resourceBounds:
                      l1Gas:
                        maxAmount: '0x0'
                        maxPricePerUnit: '0x239a01ff6e6c'
                      l2Gas:
                        maxAmount: '0x1694a0'
                        maxPricePerUnit: '0x10c388d00'
                      l1DataGas:
                        maxAmount: '0x120'
                        maxPricePerUnit: '0x98e8'
                    tip: '0x0'
                    paymasterData: []
                    accountDeploymentData: []
                    nonceDataAvailabilityMode: L1
                    feeDataAvailabilityMode: L1
                    chainId: '0x534e5f5345504f4c4941'
                    senderAddress: >-
                      0x0535a9762b984c876abe0b164b0ccedb0d23a78978c9fe87e29deae0ea890c72
              SignerPayload:
                value:
                  network: PolymeshTestnet
                  kind: SignerPayload
                  payload:
                    address: 5ELwJvCPKBxLm3rve77JGDmHv2FNNE2nUW17FXhBs7Tws4Cr
                    blockHash: >-
                      0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6
                    blockNumber: '0x00000000'
                    era: '0x00'
                    genesisHash: >-
                      0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6
                    method: >-
                      0x07141f3da32e72ac6eb6cb40d9e757594363a617b2c3964a2b6ec6895c6648f48d500000
                    mode: 0
                    nonce: '0x00000000'
                    tip: '0x00000000000000000000000000000000'
                    specVersion: '0x006adb7a'
                    transactionVersion: '0x00000007'
                    version: 4
                    signedExtensions: []
              Snip12:
                value:
                  blockchainKind: Starknet
                  kind: Snip12
                  primaryType: Mail
                  types:
                    StarkNetDomain:
                      - name: name
                        type: felt
                      - name: version
                        type: felt
                      - name: chainId
                        type: felt
                      - name: revision
                        type: felt
                    Person:
                      - name: name
                        type: felt
                      - name: wallet
                        type: felt
                    Mail:
                      - name: from
                        type: Person
                      - name: to
                        type: Person
                      - name: contents
                        type: felt
                  domain:
                    name: StarkNet Mail
                    version: '1'
                    chainId: '0x534e5f4d41494e'
                    revision: 1
                  message:
                    from:
                      name: Alice
                      wallet: '0x1234567890123456789012345678901234567890'
                    to:
                      name: Bob
                      wallet: '0x0987654321098765432109876543210987654321'
                    contents: Hello Bob!
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureRequest'
    get:
      summary: List Signatures
      tags:
        - Keys
      security:
        - authenticationToken: []
      description: List all signature requests for a key.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Signatures:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The key to list signatures for.
          required: true
          description: The key to list signatures for.
          name: keyId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/SignatureRequest'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                  keyId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: The key these signatures belong to.
                    example: key-01snl-t56gb-j8tsok0vn802p80i
                required:
                  - items
                  - keyId
  /keys/{keyId}/signatures/{signatureId}:
    get:
      summary: Get Signature
      tags:
        - Keys
      security:
        - authenticationToken: []
      description: Retrieve a signature request details.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Signatures:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The key that was used for signing.
          required: true
          description: The key that was used for signing.
          name: keyId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The signature request to retrieve.
          required: true
          description: The signature request to retrieve.
          name: signatureId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureRequest'
  /keys/import:
    post:
      summary: Import Key
      tags:
        - Keys
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >
        Dfns secures private keys by generating them as MPC key shares in our
        decentralized key management network.  This happens by default when you
        create a [key](https://docs.dfns.co/api-reference/keys/create-key) or
        [wallet](https://docs.dfns.co/api-reference/wallets/create-wallet).


        In some circumstances, however, you may need to import an existing
        private key into Dfns infrastructure, instead of creating a brand new
        wallet with Dfns and transfer funds to it. As an example, you might want
        to keep an existing wallet if its address is tied to a smart contract
        which you don't want to re-deploy.


        In such a case, Dfns exposes this key import API endpoint, which can be
        used in conjunction with our [import
        SDK](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/import-wallet).  
        Note this is intended to be used only to migrate wallets when first
        onboarding onto the Dfns platform.


        <Danger>

        Dfns can not guarantee the security of imported wallets, as we have no
        way to control who had access to the private key prior to import.  For
        this reason, this feature is restricted to Enterprise customers who have
        signed a contractual addendum limiting our liability for imported keys. 
        Please contact your sales representative for more information.

        </Danger>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Import`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 100
                curve:
                  type: string
                  enum:
                    - ed25519
                    - secp256k1
                    - stark
                protocol:
                  anyOf:
                    - type: string
                      enum:
                        - CGGMP24
                        - FROST
                        - FROST_BITCOIN
                        - GLOW20_DH
                        - KU23
                    - type: string
                      enum:
                        - CGGMP21
                minSigners:
                  type: integer
                  exclusiveMinimum: 0
                encryptedKeyShares:
                  type: array
                  items:
                    type: object
                    properties:
                      signerId:
                        type: string
                        minLength: 1
                      encryptedKeyShare:
                        type: string
                        minLength: 1
                    required:
                      - signerId
                      - encryptedKeyShare
                  minItems: 1
                masterKey:
                  type: boolean
                  description: Specify to create an extended master key for HD derivation
              required:
                - curve
                - protocol
                - minSigners
                - encryptedKeyShares
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Key'
  /networks/fees:
    get:
      summary: Estimate Fees
      tags:
        - Networks
      security:
        - authenticationToken: []
      description: >-
        Gets real-time fee details for a given network, allowing users to make
        decisions based on their preferences for transaction speed/priority.
        Three levels of priority will be displayed: `slow`, `standard`, `fast`.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            enum:
              - Bitcoin
              - BitcoinSignet
              - BitcoinTestnet4
              - Litecoin
              - LitecoinTestnet
              - Dogecoin
              - DogecoinTestnet
              - ArbitrumOne
              - ArbitrumSepolia
              - ArcTestnet
              - AvalancheC
              - AvalancheCFuji
              - Base
              - BaseSepolia
              - Bob
              - BobSepolia
              - Bsc
              - BscTestnet
              - Berachain
              - BerachainBepolia
              - Celo
              - CeloAlfajores
              - Codex
              - CodexSepolia
              - Ethereum
              - EthereumClassic
              - EthereumClassicMordor
              - EthereumSepolia
              - EthereumHoodi
              - FlareC
              - FlareCCoston2
              - FlowEvm
              - FlowEvmTestnet
              - Ink
              - InkSepolia
              - Optimism
              - OptimismSepolia
              - Plasma
              - PlasmaTestnet
              - Plume
              - PlumeSepolia
              - Polygon
              - PolygonAmoy
              - Race
              - RaceSepolia
              - Rayls
              - RaylsTestnet
              - Robinhood
              - RobinhoodSepolia
              - SeiPacific1
              - SeiAtlantic2
              - Sonic
              - SonicTestnet
              - Tempo
              - TempoModerato
              - Tsc
              - TscTestnet1
              - Xdc
              - XdcApothem
              - XLayer
              - XLayerSepolia
              - Solana
              - SolanaDevnet
          required: true
          name: network
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Bitcoin
                      network:
                        type: string
                        enum:
                          - Bitcoin
                          - BitcoinSignet
                          - BitcoinTestnet4
                          - Litecoin
                          - LitecoinTestnet
                          - Dogecoin
                          - DogecoinTestnet
                      blockNumber:
                        type: number
                      slow:
                        type: object
                        properties:
                          feeRate:
                            type: string
                            description: >-
                              Fee rate denominated in satoshis (the lowest
                              denomination) per virtual byte.
                            example: '12'
                          blockHorizon:
                            type: number
                            description: >-
                              Target number of blocks within which a transaction
                              at this fee rate is expected to confirm.
                            example: 2
                        required:
                          - feeRate
                          - blockHorizon
                      standard:
                        type: object
                        properties:
                          feeRate:
                            type: string
                            description: >-
                              Fee rate denominated in satoshis (the lowest
                              denomination) per virtual byte.
                            example: '12'
                          blockHorizon:
                            type: number
                            description: >-
                              Target number of blocks within which a transaction
                              at this fee rate is expected to confirm.
                            example: 2
                        required:
                          - feeRate
                          - blockHorizon
                      fast:
                        type: object
                        properties:
                          feeRate:
                            type: string
                            description: >-
                              Fee rate denominated in satoshis (the lowest
                              denomination) per virtual byte.
                            example: '12'
                          blockHorizon:
                            type: number
                            description: >-
                              Target number of blocks within which a transaction
                              at this fee rate is expected to confirm.
                            example: 2
                        required:
                          - feeRate
                          - blockHorizon
                    required:
                      - kind
                      - network
                      - blockNumber
                      - slow
                      - standard
                      - fast
                    title: Bitcoin
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Eip1559
                      network:
                        type: string
                        enum: *ref_121
                      blockNumber:
                        type: number
                      slow:
                        type: object
                        properties:
                          maxPriorityFeePerGas:
                            type: string
                            description: >-
                              Maximum priority fee (tip) per unit of gas,
                              denominated in wei (the lowest denomination).
                            example: '1500000000'
                          maxFeePerGas:
                            type: string
                            description: >-
                              Maximum total fee per unit of gas, denominated in
                              wei (the lowest denomination).
                            example: '1626000000000'
                        required:
                          - maxPriorityFeePerGas
                          - maxFeePerGas
                      standard:
                        type: object
                        properties:
                          maxPriorityFeePerGas:
                            type: string
                            description: >-
                              Maximum priority fee (tip) per unit of gas,
                              denominated in wei (the lowest denomination).
                            example: '1500000000'
                          maxFeePerGas:
                            type: string
                            description: >-
                              Maximum total fee per unit of gas, denominated in
                              wei (the lowest denomination).
                            example: '1626000000000'
                        required:
                          - maxPriorityFeePerGas
                          - maxFeePerGas
                      fast:
                        type: object
                        properties:
                          maxPriorityFeePerGas:
                            type: string
                            description: >-
                              Maximum priority fee (tip) per unit of gas,
                              denominated in wei (the lowest denomination).
                            example: '1500000000'
                          maxFeePerGas:
                            type: string
                            description: >-
                              Maximum total fee per unit of gas, denominated in
                              wei (the lowest denomination).
                            example: '1626000000000'
                        required:
                          - maxPriorityFeePerGas
                          - maxFeePerGas
                      baseFeePerGas:
                        type: string
                        description: >-
                          Base fee per unit of gas of the latest block,
                          denominated in wei (the lowest denomination).
                        example: '1000000000'
                    required:
                      - kind
                      - network
                      - blockNumber
                      - slow
                      - standard
                      - fast
                      - baseFeePerGas
                    description: >-
                      For EIP-1559, we  provide 2 different fields for each
                      strategy: `maxFee` (per Gas) and `maxPriorityFee` (per
                      Gas). To compute these estimations, we look at the block
                      history, compute three different percentiles for the
                      rewards offered by the transactions in the blocks, and
                      then calculate the average for each strategy.
                    title: EVM EIP-1559
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - Solana
                      network:
                        type: string
                        enum:
                          - Solana
                          - SolanaDevnet
                      blockNumber:
                        type: number
                      slow:
                        type: object
                        properties:
                          computeUnitPrice:
                            type: string
                            description: >-
                              Price per compute unit, denominated in
                              micro-lamports (the lowest denomination).
                            example: '10000'
                        required:
                          - computeUnitPrice
                      standard:
                        type: object
                        properties:
                          computeUnitPrice:
                            type: string
                            description: >-
                              Price per compute unit, denominated in
                              micro-lamports (the lowest denomination).
                            example: '10000'
                        required:
                          - computeUnitPrice
                      fast:
                        type: object
                        properties:
                          computeUnitPrice:
                            type: string
                            description: >-
                              Price per compute unit, denominated in
                              micro-lamports (the lowest denomination).
                            example: '10000'
                        required:
                          - computeUnitPrice
                    required:
                      - kind
                      - network
                      - blockNumber
                      - slow
                      - standard
                      - fast
                    title: Solana
  /networks/{network}/call-function:
    post:
      summary: Call Function
      tags:
        - Networks
      security:
        - authenticationToken: []
      description: >-
        Call a read-only function on a smart contract. In Solidity, these are
        functions with the state mutability set to `view`.

          <Note>
          Currently only works on EVM compatible chains.
          </Note>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            description: Network name formatted in kebab case
          required: true
          description: Network name formatted in kebab case
          name: network
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contract:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: Address of the contract to call
                abi:
                  type: object
                  properties:
                    type:
                      type: string
                    name:
                      type: string
                    stateMutability:
                      type: string
                    inputs:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          type:
                            type: string
                          components:
                            type: array
                            items: &ref_122
                              type: object
                        required:
                          - name
                          - type
                    outputs:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          type:
                            type: string
                          components:
                            type: array
                            items: *ref_122
                        required:
                          - name
                          - type
                  required:
                    - type
                    - name
                    - stateMutability
                    - inputs
                    - outputs
                  description: ABI of the read-only function to invoke
                calldata:
                  type: object
                  properties: {}
                  description: Function call arguments
              required:
                - contract
                - abi
              additionalProperties: false
              description: Calls an on-chain read function.
              title: Call Function
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
  /networks/{network}/validators/{validatorId}:
    get:
      summary: Get Canton Validator
      tags:
        - Networks
      security:
        - authenticationToken: []
      description: Return a configured Canton Validator in your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Networks:CantonValidators:Read`: Always required.
      parameters:
        - schema:
            type: string
            enum:
              - canton
              - canton-devnet
              - canton-testnet
          required: true
          name: network
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^cv-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: validatorId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CantonValidator'
    put:
      summary: Update Canton Validator
      tags:
        - Networks
      security:
        - authenticationToken: []
          userActionSignature: []
      description: |-
        Update an existing Canton Validator configuration.
          
          Read details about the process [here](https://docs.dfns.co/networks/canton). 
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Networks:CantonValidators:Update`: Always required.
      parameters:
        - schema:
            type: string
            enum:
              - canton
              - canton-devnet
              - canton-testnet
          required: true
          name: network
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^cv-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: validatorId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: Nickname for this validator.
                validator:
                  type: object
                  properties:
                    url:
                      type: string
                      format: uri
                      description: >-
                        URL to reach the API at this address. The calls will be
                        originating from our IP addresses (see [Dfns
                        Environments](https://docs.dfns.co/api-reference/regions))
                    oauth2:
                      type: object
                      properties:
                        domain:
                          type: string
                          format: uri
                          description: >-
                            your OAuth2 tenant domain. Provided by your auth
                            provider. 
                        tokenPath:
                          type: string
                          description: >-
                            token endpoint from your authorization provider. We
                            will call this endpoint on your tenant domain (i.e.:
                            `<domain>/<token path>`)
                        audience:
                          type: string
                          description: >-
                            the audience your configured on your auth provider.
                            It is suggested to start with
                            `https://canton.network.global`.
                        clientId:
                          type: string
                          description: >-
                            The client id from your auth provider for this
                            application.
                        clientSecret:
                          type: string
                          description: >-
                            The client secret from your auth provider for this
                            application.
                      required:
                        - domain
                        - audience
                        - clientId
                        - clientSecret
                      description: >-
                        How Dfns will authenticate into your validator/ledger.
                        You should have setup authentication already (see
                        details
                        [here](https://docs.dev.sync.global/validator_operator/validator_helm.html#helm-validator-auth)),
                        you can reuse the same Application details. See examples
                        in this endpoint payload examples above.
                  required:
                    - url
                    - oauth2
                ledger:
                  type: object
                  properties:
                    url:
                      type: string
                      format: uri
                      description: >-
                        URL to reach the API at this address. The calls will be
                        originating from our IP addresses (see [Dfns
                        Environments](https://docs.dfns.co/api-reference/regions))
                    oauth2:
                      type: object
                      properties:
                        domain:
                          type: string
                          format: uri
                          description: >-
                            your OAuth2 tenant domain. Provided by your auth
                            provider. 
                        tokenPath:
                          type: string
                          description: >-
                            token endpoint from your authorization provider. We
                            will call this endpoint on your tenant domain (i.e.:
                            `<domain>/<token path>`)
                        audience:
                          type: string
                          description: >-
                            the audience your configured on your auth provider.
                            It is suggested to start with
                            `https://canton.network.global`.
                        clientId:
                          type: string
                          description: >-
                            The client id from your auth provider for this
                            application.
                        clientSecret:
                          type: string
                          description: >-
                            The client secret from your auth provider for this
                            application.
                      required:
                        - domain
                        - audience
                        - clientId
                        - clientSecret
                      description: >-
                        How Dfns will authenticate into your validator/ledger.
                        You should have setup authentication already (see
                        details
                        [here](https://docs.dev.sync.global/validator_operator/validator_helm.html#helm-validator-auth)),
                        you can reuse the same Application details. See examples
                        in this endpoint payload examples above.
                  required:
                    - url
                    - oauth2
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CantonValidator'
    delete:
      summary: Delete Canton Validator
      tags:
        - Networks
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Delete a specific Canton Validator configuration.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Networks:CantonValidators:Delete`: Always required.
      parameters:
        - schema:
            type: string
            enum:
              - canton
              - canton-devnet
              - canton-testnet
          required: true
          name: network
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^cv-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: validatorId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CantonValidator'
  /networks/{network}/validators:
    post:
      summary: Create Canton Validator
      tags:
        - Networks
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Link a Canton Validator to your organization. This is required in order
        to create wallets or interact with the Canton network.

          The `Shared` option allows you to use a shared validator hosted by Dfns and get started in seconds, while the `Custom` option allows you to connect your own validator and ledger nodes using OAuth2 authentication.

          Read details about the process [here](https://docs.dfns.co/networks/canton). 
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Networks:CantonValidators:Create`: Always required.
      parameters:
        - schema:
            type: string
            enum:
              - canton
              - canton-devnet
              - canton-testnet
          required: true
          name: network
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: Nickname for this validator.
                    kind:
                      type: string
                      enum:
                        - Shared
                  required:
                    - kind
                  description: >-
                    Use Dfns' shared validator to create your Canton Wallets.
                    See [here](https://docs.dfns.co/networks/canton)
                  title: Dfns Shared validator
                - type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: Nickname for this validator.
                    kind:
                      type: string
                      enum:
                        - Custom
                    validator:
                      type: object
                      properties:
                        url:
                          type: string
                          format: uri
                          description: >-
                            URL to reach the API at this address. The calls will
                            be originating from our IP addresses (see [Dfns
                            Environments](https://docs.dfns.co/api-reference/regions))
                        oauth2:
                          type: object
                          properties:
                            domain:
                              type: string
                              format: uri
                              description: >-
                                your OAuth2 tenant domain. Provided by your auth
                                provider. 
                            tokenPath:
                              type: string
                              description: >-
                                token endpoint from your authorization provider.
                                We will call this endpoint on your tenant domain
                                (i.e.: `<domain>/<token path>`)
                            audience:
                              type: string
                              description: >-
                                the audience your configured on your auth
                                provider. It is suggested to start with
                                `https://canton.network.global`.
                            clientId:
                              type: string
                              description: >-
                                The client id from your auth provider for this
                                application.
                            clientSecret:
                              type: string
                              description: >-
                                The client secret from your auth provider for
                                this application.
                          required:
                            - domain
                            - audience
                            - clientId
                            - clientSecret
                          description: >-
                            How Dfns will authenticate into your
                            validator/ledger. You should have setup
                            authentication already (see details
                            [here](https://docs.dev.sync.global/validator_operator/validator_helm.html#helm-validator-auth)),
                            you can reuse the same Application details. See
                            examples in this endpoint payload examples above.
                      required:
                        - url
                        - oauth2
                      description: >-
                        Configuration to reach your validator Signing API. We
                        will call the validator External Signing API at the url
                        (and using the credentials) defined below ; for instance
                        `$URL/api/validator/v0/admin/external-party/topology/generate`.
                        See the underlying calls details
                        [here](https://docs.dev.sync.global/app_dev/validator_api/index.html#validator-api-external-signing).
                    ledger:
                      type: object
                      properties:
                        url:
                          type: string
                          format: uri
                          description: >-
                            URL to reach the API at this address. The calls will
                            be originating from our IP addresses (see [Dfns
                            Environments](https://docs.dfns.co/api-reference/regions))
                        oauth2:
                          type: object
                          properties:
                            domain:
                              type: string
                              format: uri
                              description: >-
                                your OAuth2 tenant domain. Provided by your auth
                                provider. 
                            tokenPath:
                              type: string
                              description: >-
                                token endpoint from your authorization provider.
                                We will call this endpoint on your tenant domain
                                (i.e.: `<domain>/<token path>`)
                            audience:
                              type: string
                              description: >-
                                the audience your configured on your auth
                                provider. It is suggested to start with
                                `https://canton.network.global`.
                            clientId:
                              type: string
                              description: >-
                                The client id from your auth provider for this
                                application.
                            clientSecret:
                              type: string
                              description: >-
                                The client secret from your auth provider for
                                this application.
                          required:
                            - domain
                            - audience
                            - clientId
                            - clientSecret
                          description: >-
                            How Dfns will authenticate into your
                            validator/ledger. You should have setup
                            authentication already (see details
                            [here](https://docs.dev.sync.global/validator_operator/validator_helm.html#helm-validator-auth)),
                            you can reuse the same Application details. See
                            examples in this endpoint payload examples above.
                      required:
                        - url
                        - oauth2
                      description: >-
                        Configuration to reach your validator Ledger JSON API.
                        We will call endpoints such as `/v2/state/ledger-end`,
                        `/v2/state/active-contracts`,
                        `/v2/parties/participant-id`,
                        `/v2/interactive-submission/prepare`,
                        `/v2/interactive-submission/execute`,
                        `/v2/commands/completions`. See the underlying details
                        [here](https://docs.dev.sync.global/app_dev/ledger_api/index.html).
                  required:
                    - kind
                    - validator
                    - ledger
                  description: >-
                    Connect your own validator. See
                    [here](https://docs.dfns.co/networks/canton) for more info.
                  title: Your own custom validator
            examples:
              Shared Validator:
                value:
                  kind: Shared
                  name: My shared validator
              Custom Validator | Auth0:
                value:
                  kind: Custom
                  name: My validator with auth0 credentials
                  validator:
                    url: https://validator.testnet.mydomain.com/
                    oauth2:
                      domain: https://xxxxxx.us.auth0.com
                      clientId: xxxxxx
                      clientSecret: xxxxxxx
                      audience: https://canton.network.global
                  ledger:
                    url: https://ledger.testnet.mydomain.com/
                    oauth2:
                      domain: https://xxxxxx.us.auth0.com
                      clientId: xxxxxx
                      clientSecret: xxxxxxx
                      audience: https://canton.network.global
              Custom Validator | Okta:
                value:
                  kind: Custom
                  name: My validator with auth0 credentials
                  validator:
                    url: https://validator.testnet.mydomain.com/
                    oauth2:
                      domain: https://xxxxxx.okta.com
                      tokenPath: oauth2/xxxxxx/v1/token
                      clientId: xxxxxx
                      clientSecret: xxxxxxx
                      audience: https://validator.testnet.mydomain.com/
                  ledger:
                    url: https://ledger.testnet.mydomain.com/
                    oauth2:
                      domain: https://xxxxxx.okta.com
                      tokenPath: oauth2/xxxxxx/v1/token
                      clientId: xxxxxx
                      clientSecret: xxxxxxx
                      audience: https://ledger.testnet.mydomain.com/
              Custom Validator | Keycloak:
                value:
                  kind: Custom
                  name: My validator with auth0 credentials
                  validator:
                    url: https://validator.testnet.mydomain.com/
                    oauth2:
                      domain: https://my-own-server.running-keycloak.com
                      tokenPath: /auth/realms/xxxxx/protocol/openid-connect/token
                      clientId: xxxxxx
                      clientSecret: xxxxxxx
                      audience: https://validator.testnet.mydomain.com/
                  ledger:
                    url: https://ledger.testnet.mydomain.com/
                    oauth2:
                      domain: https://my-own-server.running-keycloak.com
                      tokenPath: /auth/realms/xxxxx/protocol/openid-connect/token
                      clientId: xxxxxx
                      clientSecret: xxxxxxx
                      audience: https://ledger.testnet.mydomain.com/
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CantonValidator'
    get:
      summary: List Canton Validators
      tags:
        - Networks
      security:
        - authenticationToken: []
      description: Retrieve the list of configured Canton Validators in your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Networks:CantonValidators:Read`: Always required.
      parameters:
        - schema:
            type: string
            enum:
              - canton
              - canton-devnet
              - canton-testnet
          required: true
          name: network
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/CantonValidator'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /payins:
    post:
      summary: Create Payin
      tags:
        - Payins
      security:
        - authenticationToken: []
          userActionSignature: []
      description: |2-

            Deliver stablecoin from the organisation's provider balance to a wallet on-chain.
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payins:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: The destination wallet for the on-ramped funds.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    amount:
                      type: string
                      pattern: ^[0-9]+(\.[0-9]{1,2})?$
                      description: >-
                        The amount to deliver on-chain, in currency units (e.g.
                        "100.00").
                    provider:
                      type: string
                      enum:
                        - CircleMint
                    currency:
                      type: string
                      enum:
                        - USD
                        - EUR
                      description: >-
                        Fiat currency of the payin (determines the delivered
                        stablecoin, e.g. USD → USDC, EUR → EURC).
                  required:
                    - walletId
                    - amount
                    - provider
                    - currency
                  title: Circle Mint Create Payin
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^payin-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Payin id.
                        example: payin-59t9u-eng2t-dd9p5nm02uc81sto
                      walletId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: The destination wallet for the on-ramped funds.
                        example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                      amount:
                        type: string
                        pattern: ^[0-9]+(\.[0-9]{1,2})?$
                        description: >-
                          The amount to deliver on-chain, in currency units
                          (e.g. "100.00").
                      currency:
                        type: string
                        enum:
                          - USD
                          - EUR
                        description: >-
                          Fiat currency of the payin (determines the delivered
                          stablecoin, e.g. USD → USDC, EUR → EURC).
                      network:
                        allOf:
                          - $ref: '#/components/schemas/Network'
                          - description: >-
                              The network the funds are delivered on (the
                              destination wallet network).
                      status:
                        type: string
                        enum:
                          - Processing
                          - Completed
                          - Failed
                        description: The current status of the payin.
                      requester:
                        allOf:
                          - $ref: '#/components/schemas/Requester'
                          - description: The user/token that initiated the payin.
                      dateCreated:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payin
                          was created.
                        example: 2023-04-14T20:41:28.715Z
                      dateFinalized:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payin
                          was finalized.
                        example: 2023-04-14T20:41:28.715Z
                      provider:
                        type: string
                        enum:
                          - CircleMint
                      data:
                        type: object
                        properties:
                          executionStatus:
                            type: string
                            enum:
                              - Initializing
                              - AwaitingTransfer
                              - Completed
                              - Failed
                            description: The Circle Mint execution status.
                          statusReason:
                            type: string
                            description: >-
                              Reason for the current status, primarily for
                              failure cases.
                          recipientAddressId:
                            type: string
                            description: >-
                              Circle recipient-registry id for the destination
                              address (approved once in Circle's console).
                          circleTransferId:
                            type: string
                            description: >-
                              The id of the Circle transfer delivering the funds
                              on-chain.
                          transactionHash:
                            type: string
                            description: >-
                              The blockchain transaction hash of the delivery
                              transfer.
                          dateTransferConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              transfer confirmed on-chain.
                            example: 2023-04-14T20:41:28.715Z
                        required:
                          - executionStatus
                        description: Circle Mint provider-specific payin data.
                    required:
                      - id
                      - walletId
                      - amount
                      - currency
                      - network
                      - status
                      - requester
                      - dateCreated
                      - provider
                      - data
                    title: Circle Mint Payin
    get:
      summary: List Payins
      tags:
        - Payins
      security:
        - authenticationToken: []
      description: List payins with optional filtering and pagination.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payins:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Filter payins by wallet ID.
          required: false
          description: Filter payins by wallet ID.
          name: walletId
          in: query
        - schema:
            type: array
            items:
              type: string
              enum:
                - Processing
                - Completed
                - Failed
              description: The current status of the payin.
            description: Filter payins by status (comma-separated).
          required: false
          description: Filter payins by status (comma-separated).
          name: status
          in: query
        - schema:
            type: array
            items:
              type: string
              enum:
                - CircleMint
              description: Payin provider.
            description: Filter payins by provider (comma-separated).
          required: false
          description: Filter payins by provider (comma-separated).
          name: provider
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^payin-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: Payin id.
                              example: payin-59t9u-eng2t-dd9p5nm02uc81sto
                            walletId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: The destination wallet for the on-ramped funds.
                              example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                            amount:
                              type: string
                              pattern: ^[0-9]+(\.[0-9]{1,2})?$
                              description: >-
                                The amount to deliver on-chain, in currency
                                units (e.g. "100.00").
                            currency:
                              type: string
                              enum:
                                - USD
                                - EUR
                              description: >-
                                Fiat currency of the payin (determines the
                                delivered stablecoin, e.g. USD → USDC, EUR →
                                EURC).
                            network:
                              allOf:
                                - $ref: '#/components/schemas/Network'
                                - description: >-
                                    The network the funds are delivered on (the
                                    destination wallet network).
                            status:
                              type: string
                              enum:
                                - Processing
                                - Completed
                                - Failed
                              description: The current status of the payin.
                            requester:
                              allOf:
                                - $ref: '#/components/schemas/Requester'
                                - description: The user/token that initiated the payin.
                            dateCreated:
                              type: string
                              format: date-time
                              description: >-
                                [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                date (must be UTC). ISO 8601 timestamp when the
                                payin was created.
                              example: 2023-04-14T20:41:28.715Z
                            dateFinalized:
                              type: string
                              format: date-time
                              description: >-
                                [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                date (must be UTC). ISO 8601 timestamp when the
                                payin was finalized.
                              example: 2023-04-14T20:41:28.715Z
                            provider:
                              type: string
                              enum:
                                - CircleMint
                            data:
                              type: object
                              properties:
                                executionStatus:
                                  type: string
                                  enum:
                                    - Initializing
                                    - AwaitingTransfer
                                    - Completed
                                    - Failed
                                  description: The Circle Mint execution status.
                                statusReason:
                                  type: string
                                  description: >-
                                    Reason for the current status, primarily for
                                    failure cases.
                                recipientAddressId:
                                  type: string
                                  description: >-
                                    Circle recipient-registry id for the
                                    destination address (approved once in
                                    Circle's console).
                                circleTransferId:
                                  type: string
                                  description: >-
                                    The id of the Circle transfer delivering the
                                    funds on-chain.
                                transactionHash:
                                  type: string
                                  description: >-
                                    The blockchain transaction hash of the
                                    delivery transfer.
                                dateTransferConfirmed:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the transfer confirmed on-chain.
                                  example: 2023-04-14T20:41:28.715Z
                              required:
                                - executionStatus
                              description: Circle Mint provider-specific payin data.
                          required:
                            - id
                            - walletId
                            - amount
                            - currency
                            - network
                            - status
                            - requester
                            - dateCreated
                            - provider
                            - data
                          title: Circle Mint Payin
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /payins/recipients:
    post:
      summary: Register Payin Recipient
      tags:
        - Payins
      security:
        - authenticationToken: []
          userActionSignature: []
      description: |2-

            Register a wallet's address as an payin recipient with the provider. The registration then needs
            to be approved on the provider's side (for Circle Mint: by an administrator in the Mint Console)
            before payins to that wallet can be created.
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payins:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - CircleMint
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: The wallet to register as a Circle Mint recipient.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    currency:
                      type: string
                      enum:
                        - USD
                        - EUR
                      description: >-
                        Fiat currency of the payin (determines the delivered
                        stablecoin, e.g. USD → USDC, EUR → EURC).
                  required:
                    - provider
                    - walletId
                    - currency
                  title: Circle Mint Register Payin Recipient
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  provider:
                    type: string
                    enum:
                      - CircleMint
                    description: Payin provider.
                  walletId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: >-
                      The wallet whose address is (to be) registered as a
                      recipient.
                    example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                  currency:
                    type: string
                    enum:
                      - USD
                      - EUR
                    description: >-
                      Fiat currency of the payin (determines the delivered
                      stablecoin, e.g. USD → USDC, EUR → EURC).
                  status:
                    type: string
                    enum:
                      - NotRegistered
                      - PendingVerification
                      - Active
                    description: Recipient status.
                  recipientAddressId:
                    type: string
                    description: The provider's recipient-registry id, once registered.
                required:
                  - provider
                  - walletId
                  - currency
                  - status
    get:
      summary: Get Payin Recipient
      tags:
        - Payins
      security:
        - authenticationToken: []
      description: |2-

            Check whether a wallet's address is registered (and approved) as an payin recipient with the provider.
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payins:Read`: Always required.
      parameters:
        - schema:
            type: string
            enum:
              - CircleMint
            description: The payin provider to check the recipient with.
          required: true
          description: The payin provider to check the recipient with.
          name: provider
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The wallet whose recipient status to check.
          required: true
          description: The wallet whose recipient status to check.
          name: walletId
          in: query
        - schema:
            type: string
            enum:
              - USD
              - EUR
            description: >-
              Fiat currency of the payin (determines the delivered stablecoin,
              e.g. USD → USDC, EUR → EURC).
          required: true
          description: >-
            Fiat currency of the payin (determines the delivered stablecoin,
            e.g. USD → USDC, EUR → EURC).
          name: currency
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  provider:
                    type: string
                    enum:
                      - CircleMint
                    description: Payin provider.
                  walletId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: >-
                      The wallet whose address is (to be) registered as a
                      recipient.
                    example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                  currency:
                    type: string
                    enum:
                      - USD
                      - EUR
                    description: >-
                      Fiat currency of the payin (determines the delivered
                      stablecoin, e.g. USD → USDC, EUR → EURC).
                  status:
                    type: string
                    enum:
                      - NotRegistered
                      - PendingVerification
                      - Active
                    description: Recipient status.
                  recipientAddressId:
                    type: string
                    description: The provider's recipient-registry id, once registered.
                required:
                  - provider
                  - walletId
                  - currency
                  - status
  /payins/{payinId}:
    get:
      summary: Get Payin Status
      tags:
        - Payins
      security:
        - authenticationToken: []
      description: |2-

            Retrieve the current status of an payin by its ID.
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payins:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Payin id.
          required: true
          description: Payin id.
          name: payinId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^payin-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Payin id.
                        example: payin-59t9u-eng2t-dd9p5nm02uc81sto
                      walletId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: The destination wallet for the on-ramped funds.
                        example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                      amount:
                        type: string
                        pattern: ^[0-9]+(\.[0-9]{1,2})?$
                        description: >-
                          The amount to deliver on-chain, in currency units
                          (e.g. "100.00").
                      currency:
                        type: string
                        enum:
                          - USD
                          - EUR
                        description: >-
                          Fiat currency of the payin (determines the delivered
                          stablecoin, e.g. USD → USDC, EUR → EURC).
                      network:
                        allOf:
                          - $ref: '#/components/schemas/Network'
                          - description: >-
                              The network the funds are delivered on (the
                              destination wallet network).
                      status:
                        type: string
                        enum:
                          - Processing
                          - Completed
                          - Failed
                        description: The current status of the payin.
                      requester:
                        allOf:
                          - $ref: '#/components/schemas/Requester'
                          - description: The user/token that initiated the payin.
                      dateCreated:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payin
                          was created.
                        example: 2023-04-14T20:41:28.715Z
                      dateFinalized:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payin
                          was finalized.
                        example: 2023-04-14T20:41:28.715Z
                      provider:
                        type: string
                        enum:
                          - CircleMint
                      data:
                        type: object
                        properties:
                          executionStatus:
                            type: string
                            enum:
                              - Initializing
                              - AwaitingTransfer
                              - Completed
                              - Failed
                            description: The Circle Mint execution status.
                          statusReason:
                            type: string
                            description: >-
                              Reason for the current status, primarily for
                              failure cases.
                          recipientAddressId:
                            type: string
                            description: >-
                              Circle recipient-registry id for the destination
                              address (approved once in Circle's console).
                          circleTransferId:
                            type: string
                            description: >-
                              The id of the Circle transfer delivering the funds
                              on-chain.
                          transactionHash:
                            type: string
                            description: >-
                              The blockchain transaction hash of the delivery
                              transfer.
                          dateTransferConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              transfer confirmed on-chain.
                            example: 2023-04-14T20:41:28.715Z
                        required:
                          - executionStatus
                        description: Circle Mint provider-specific payin data.
                    required:
                      - id
                      - walletId
                      - amount
                      - currency
                      - network
                      - status
                      - requester
                      - dateCreated
                      - provider
                      - data
                    title: Circle Mint Payin
  /payins/balances:
    get:
      summary: List Payin Balances
      tags:
        - Payins
      security:
        - authenticationToken: []
      description: |2-

            The organisation's available balance at the payin provider, one entry per currency —
            the funds payins can deliver on-chain.
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payins:Read`: Always required.
      parameters:
        - schema:
            type: string
            enum:
              - CircleMint
            description: The payin provider to fetch balances from.
          required: true
          description: The payin provider to fetch balances from.
          name: provider
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        provider:
                          type: string
                          enum:
                            - CircleMint
                          description: Payin provider.
                        currency:
                          type: string
                          description: Fiat currency of the balance (e.g. USD, EUR).
                        amount:
                          type: string
                          description: Available amount in currency units (e.g. "408.82").
                      required:
                        - provider
                        - currency
                        - amount
                required:
                  - items
  /payouts:
    post:
      summary: Create Payout
      tags:
        - Payouts
      security:
        - authenticationToken: []
          userActionSignature: []
      description: |2-

            Create a new payout to convert crypto assets to fiat currency.
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payouts:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: The wallet ID to remit funds from.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    externalId:
                      type: string
                      description: >-
                        Optional idempotency key to ensure only one payout is
                        created.
                    asset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            contract:
                              type: string
                              description: The ERC-20 contract address.
                          required:
                            - kind
                            - amount
                            - contract
                          title: ERC-20 Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum: &ref_123
                                - Spl
                                - Spl2022
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            mint:
                              type: string
                              description: The token mint address.
                          required:
                            - kind
                            - amount
                            - mint
                          title: SPL/SPL-2022 Asset
                      description: The asset to be paid out.
                    fiatCurrency:
                      type: string
                      pattern: ^[A-Z]{3}$
                      description: ISO-4217 fiat currency code for the payout.
                    provider:
                      type: string
                      enum:
                        - Borderless
                    country:
                      type: string
                      pattern: ^[A-Z]{2}$
                      description: >-
                        ISO-3166 Alpha-2 country code for the payout
                        destination.
                    borderlessAccountId:
                      type: string
                      description: >-
                        Borderless account ID specifying who is paying out
                        funds.
                    paymentInstructionsId:
                      type: string
                      description: >-
                        Borderless payment instructions ID specifying fiat
                        settlement instructions.
                    paymentPurpose:
                      type: string
                      enum:
                        - salary payment
                        - personal remittance
                        - rent payment
                        - property purchase
                        - owned account abroad
                        - advertising expenses
                        - advisory fees
                        - business insurance
                        - construction
                        - delivery fees
                        - education
                        - exports
                        - donation
                        - hotel
                        - loan payment
                        - maintenance expenses
                        - medical expense
                        - office expenses
                        - royalty fees
                        - service charge
                        - shares investment
                        - tax payment
                        - transportation fees
                        - travel
                        - utility bills
                        - other
                      description: Borderless reason/purpose for the payment.
                  required:
                    - walletId
                    - asset
                    - fiatCurrency
                    - provider
                    - country
                    - borderlessAccountId
                    - paymentInstructionsId
                    - paymentPurpose
                  title: Borderless Create Payout
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: The wallet ID to remit funds from.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    externalId:
                      type: string
                      description: >-
                        Optional idempotency key to ensure only one payout is
                        created.
                    asset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            contract:
                              type: string
                              description: The ERC-20 contract address.
                          required:
                            - kind
                            - amount
                            - contract
                          title: ERC-20 Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum: *ref_123
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            mint:
                              type: string
                              description: The token mint address.
                          required:
                            - kind
                            - amount
                            - mint
                          title: SPL/SPL-2022 Asset
                      description: The asset to be paid out.
                    fiatCurrency:
                      type: string
                      pattern: ^[A-Z]{3}$
                      description: ISO-4217 fiat currency code for the payout.
                    provider:
                      type: string
                      enum:
                        - CircleMint
                    destination:
                      oneOf:
                        - type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - bank
                            bankId:
                              type: string
                              description: >-
                                The Circle Mint bank account id to pay out to
                                (the org links banks on Circle's website).
                            rail:
                              type: string
                              enum:
                                - wire
                                - sepa
                                - sepa_instant
                              description: The Circle Mint payout rail.
                          required:
                            - type
                            - bankId
                            - rail
                          title: Circle Mint Bank Destination
                        - type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - balance
                          required:
                            - type
                          title: Circle Mint Balance Destination
                      description: >-
                        Where the redeemed fiat goes: 'bank' wires it to a
                        linked bank account; 'balance' holds it in the org's
                        Circle Mint balance.
                  required:
                    - walletId
                    - asset
                    - fiatCurrency
                    - provider
                    - destination
                  title: Circle Mint Create Payout
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^pyt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Payout id.
                        example: pyt-4ihii-9lonb-tmhjo9bor4odmb5h
                      walletId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: The wallet ID used for the payout.
                        example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                      fiatCurrency:
                        type: string
                        description: ISO-4217 fiat currency code for the payout.
                      asset:
                        oneOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - Erc20
                              amount:
                                type: string
                                pattern: ^\d+$
                                description: >-
                                  The amount of the asset to be paid out in
                                  minimum denomination.
                              contract:
                                type: string
                                description: The ERC-20 contract address.
                              network:
                                $ref: '#/components/schemas/Network'
                              metadata:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The display name of the token.
                                  symbol:
                                    type: string
                                    description: The ticker symbol of the token.
                                  decimals:
                                    type: integer
                                    description: Number of decimals used by the token.
                                  verified:
                                    type: boolean
                                    description: >-
                                      Whether the token is verified by DFNS as
                                      legitimate.
                                required:
                                  - decimals
                            required:
                              - kind
                              - amount
                              - contract
                              - network
                            title: ERC-20 Asset
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum: *ref_123
                              amount:
                                type: string
                                pattern: ^\d+$
                                description: >-
                                  The amount of the asset to be paid out in
                                  minimum denomination.
                              mint:
                                type: string
                                description: The token mint address.
                              network:
                                $ref: '#/components/schemas/Network'
                              metadata:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The display name of the token.
                                  symbol:
                                    type: string
                                    description: The ticker symbol of the token.
                                  decimals:
                                    type: integer
                                    description: Number of decimals used by the token.
                                  verified:
                                    type: boolean
                                    description: >-
                                      Whether the token is verified by DFNS as
                                      legitimate.
                                required:
                                  - decimals
                            required:
                              - kind
                              - amount
                              - mint
                              - network
                            title: SPL/SPL-2022 Asset
                        description: >-
                          The asset being paid out, including token descriptor
                          and metadata.
                      externalId:
                        type: string
                        description: Optional external identifier for idempotency.
                      status:
                        type: string
                        enum:
                          - Processing
                          - Completed
                          - Failed
                          - Rejected
                          - Expired
                          - Canceled
                        description: The current status of the payout.
                      requester:
                        allOf:
                          - $ref: '#/components/schemas/Requester'
                          - description: The user/token that initiated the payout.
                      dateCreated:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payout
                          was created.
                        example: 2023-04-14T20:41:28.715Z
                      dateFinalized:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payout
                          was finalized.
                        example: 2023-04-14T20:41:28.715Z
                      provider:
                        type: string
                        enum:
                          - Borderless
                      data:
                        type: object
                        properties:
                          borderlessAccountId:
                            type: string
                            description: >-
                              The Borderless account ID associated with the
                              payout.
                          paymentInstructionsId:
                            type: string
                            description: >-
                              The Borderless payment instructions ID linked to
                              the destination bank account.
                          paymentPurpose:
                            type: string
                            enum:
                              - salary payment
                              - personal remittance
                              - rent payment
                              - property purchase
                              - owned account abroad
                              - advertising expenses
                              - advisory fees
                              - business insurance
                              - construction
                              - delivery fees
                              - education
                              - exports
                              - donation
                              - hotel
                              - loan payment
                              - maintenance expenses
                              - medical expense
                              - office expenses
                              - royalty fees
                              - service charge
                              - shares investment
                              - tax payment
                              - transportation fees
                              - travel
                              - utility bills
                              - other
                            description: The purpose of the withdrawal payment.
                          dateConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              settlement was confirmed via Action Confirm.
                            example: 2023-04-14T20:41:28.715Z
                          dateCanceled:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              settlement was canceled via Action Cancel.
                            example: 2023-04-14T20:41:28.715Z
                          executionStatus:
                            type: string
                            enum:
                              - Initializing
                              - AwaitingPayoutInstructions
                              - AwaitingPayoutConfirmation
                              - SubmittingPayoutTransfer
                              - PendingPolicyApproval
                              - DepositProcessing
                              - DisbursementPending
                              - Completed
                              - Rejected
                              - Failed
                              - Expired
                              - Canceled
                            description: The Borderless execution status.
                          statusReason:
                            type: string
                            description: >-
                              Reason for the current status, primarily for
                              failure cases.
                          country:
                            type: string
                            description: >-
                              ISO-3166 Alpha-2 country code for the payout
                              destination.
                          borderlessPayoutId:
                            type: string
                            description: >-
                              The ID assigned by Borderless when the payout is
                              created.
                          depositAddress:
                            type: string
                            description: The on-chain address to remit funds to.
                          transferId:
                            type: string
                            description: The Dfns transfer ID used to settle the payout.
                          transactionHash:
                            type: string
                            description: >-
                              The blockchain transaction hash once the transfer
                              is confirmed.
                          dateDepositConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              on-chain deposit was confirmed.
                            example: 2023-04-14T20:41:28.715Z
                          datePayoutConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when
                              Borderless verified fiat has settled.
                            example: 2023-04-14T20:41:28.715Z
                        required:
                          - borderlessAccountId
                          - paymentInstructionsId
                          - paymentPurpose
                          - executionStatus
                          - country
                        description: Borderless provider-specific payout data.
                    required:
                      - id
                      - walletId
                      - fiatCurrency
                      - asset
                      - status
                      - requester
                      - dateCreated
                      - provider
                      - data
                    title: Borderless Payout
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^pyt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Payout id.
                        example: pyt-4ihii-9lonb-tmhjo9bor4odmb5h
                      walletId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: The wallet ID used for the payout.
                        example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                      fiatCurrency:
                        type: string
                        description: ISO-4217 fiat currency code for the payout.
                      asset:
                        oneOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - Erc20
                              amount:
                                type: string
                                pattern: ^\d+$
                                description: >-
                                  The amount of the asset to be paid out in
                                  minimum denomination.
                              contract:
                                type: string
                                description: The ERC-20 contract address.
                              network:
                                $ref: '#/components/schemas/Network'
                              metadata:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The display name of the token.
                                  symbol:
                                    type: string
                                    description: The ticker symbol of the token.
                                  decimals:
                                    type: integer
                                    description: Number of decimals used by the token.
                                  verified:
                                    type: boolean
                                    description: >-
                                      Whether the token is verified by DFNS as
                                      legitimate.
                                required:
                                  - decimals
                            required:
                              - kind
                              - amount
                              - contract
                              - network
                            title: ERC-20 Asset
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum: *ref_123
                              amount:
                                type: string
                                pattern: ^\d+$
                                description: >-
                                  The amount of the asset to be paid out in
                                  minimum denomination.
                              mint:
                                type: string
                                description: The token mint address.
                              network:
                                $ref: '#/components/schemas/Network'
                              metadata:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The display name of the token.
                                  symbol:
                                    type: string
                                    description: The ticker symbol of the token.
                                  decimals:
                                    type: integer
                                    description: Number of decimals used by the token.
                                  verified:
                                    type: boolean
                                    description: >-
                                      Whether the token is verified by DFNS as
                                      legitimate.
                                required:
                                  - decimals
                            required:
                              - kind
                              - amount
                              - mint
                              - network
                            title: SPL/SPL-2022 Asset
                        description: >-
                          The asset being paid out, including token descriptor
                          and metadata.
                      externalId:
                        type: string
                        description: Optional external identifier for idempotency.
                      status:
                        type: string
                        enum:
                          - Processing
                          - Completed
                          - Failed
                          - Rejected
                          - Expired
                          - Canceled
                        description: The current status of the payout.
                      requester:
                        allOf:
                          - $ref: '#/components/schemas/Requester'
                          - description: The user/token that initiated the payout.
                      dateCreated:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payout
                          was created.
                        example: 2023-04-14T20:41:28.715Z
                      dateFinalized:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payout
                          was finalized.
                        example: 2023-04-14T20:41:28.715Z
                      provider:
                        type: string
                        enum:
                          - CircleMint
                      data:
                        type: object
                        properties:
                          executionStatus:
                            type: string
                            enum:
                              - Initializing
                              - AwaitingDeposit
                              - DepositConfirmed
                              - AwaitingPayout
                              - Completed
                              - Rejected
                              - Failed
                              - Expired
                              - Canceled
                            description: The Circle Mint execution status.
                          statusReason:
                            type: string
                            description: >-
                              Reason for the current status, primarily for
                              failure cases.
                          bankId:
                            type: string
                            description: >-
                              The Circle Mint bank account id the fiat is paid
                              out to; absent for a balance destination.
                          rail:
                            type: string
                            enum:
                              - wire
                              - sepa
                              - sepa_instant
                            description: The payout rail; absent for a balance destination.
                          paymentIntentId:
                            type: string
                            description: >-
                              Circle payment intent id (the unique per-operation
                              deposit intent).
                          depositAddress:
                            type: string
                            description: >-
                              The unique per-operation address the wallet remits
                              USDC/EURC to.
                          transferId:
                            type: string
                            description: >-
                              The Dfns transfer id used to send funds to the
                              deposit address.
                          transactionHash:
                            type: string
                            description: >-
                              The blockchain transaction hash of the deposit
                              transfer.
                          circlePayoutId:
                            type: string
                            description: >-
                              The id assigned by Circle when the fiat payout is
                              created.
                          trackingRef:
                            type: string
                            description: Circle tracking reference for the fiat payout.
                          dateDepositConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              on-chain deposit was confirmed.
                            example: 2023-04-14T20:41:28.715Z
                          datePayoutConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when Circle
                              confirmed the fiat payout.
                            example: 2023-04-14T20:41:28.715Z
                        required:
                          - executionStatus
                        description: Circle Mint provider-specific payout data.
                    required:
                      - id
                      - walletId
                      - fiatCurrency
                      - asset
                      - status
                      - requester
                      - dateCreated
                      - provider
                      - data
                    title: Circle Mint Payout
    get:
      summary: List Payouts
      tags:
        - Payouts
      security:
        - authenticationToken: []
      description: List payouts with optional filtering and pagination.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payouts:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Filter payouts by wallet ID.
          required: false
          description: Filter payouts by wallet ID.
          name: walletId
          in: query
        - schema:
            type: array
            items:
              type: string
              enum:
                - Processing
                - Completed
                - Failed
                - Rejected
                - Expired
                - Canceled
              description: Dfns managed payout status.
            description: Filter payouts by status (comma-separated).
          required: false
          description: Filter payouts by status (comma-separated).
          name: status
          in: query
        - schema:
            type: array
            items:
              type: string
              enum:
                - Borderless
                - CircleMint
              description: Payout provider.
            description: Filter payouts by provider (comma-separated).
          required: false
          description: Filter payouts by provider (comma-separated).
          name: provider
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pyt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: Payout id.
                              example: pyt-4ihii-9lonb-tmhjo9bor4odmb5h
                            walletId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: The wallet ID used for the payout.
                              example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                            fiatCurrency:
                              type: string
                              description: ISO-4217 fiat currency code for the payout.
                            asset:
                              oneOf:
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Erc20
                                    amount:
                                      type: string
                                      pattern: ^\d+$
                                      description: >-
                                        The amount of the asset to be paid out
                                        in minimum denomination.
                                    contract:
                                      type: string
                                      description: The ERC-20 contract address.
                                    network:
                                      $ref: '#/components/schemas/Network'
                                    metadata:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                          description: The display name of the token.
                                        symbol:
                                          type: string
                                          description: The ticker symbol of the token.
                                        decimals:
                                          type: integer
                                          description: Number of decimals used by the token.
                                        verified:
                                          type: boolean
                                          description: >-
                                            Whether the token is verified by DFNS as
                                            legitimate.
                                      required:
                                        - decimals
                                  required:
                                    - kind
                                    - amount
                                    - contract
                                    - network
                                  title: ERC-20 Asset
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum: *ref_123
                                    amount:
                                      type: string
                                      pattern: ^\d+$
                                      description: >-
                                        The amount of the asset to be paid out
                                        in minimum denomination.
                                    mint:
                                      type: string
                                      description: The token mint address.
                                    network:
                                      $ref: '#/components/schemas/Network'
                                    metadata:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                          description: The display name of the token.
                                        symbol:
                                          type: string
                                          description: The ticker symbol of the token.
                                        decimals:
                                          type: integer
                                          description: Number of decimals used by the token.
                                        verified:
                                          type: boolean
                                          description: >-
                                            Whether the token is verified by DFNS as
                                            legitimate.
                                      required:
                                        - decimals
                                  required:
                                    - kind
                                    - amount
                                    - mint
                                    - network
                                  title: SPL/SPL-2022 Asset
                              description: >-
                                The asset being paid out, including token
                                descriptor and metadata.
                            externalId:
                              type: string
                              description: Optional external identifier for idempotency.
                            status:
                              type: string
                              enum:
                                - Processing
                                - Completed
                                - Failed
                                - Rejected
                                - Expired
                                - Canceled
                              description: The current status of the payout.
                            requester:
                              allOf:
                                - $ref: '#/components/schemas/Requester'
                                - description: The user/token that initiated the payout.
                            dateCreated:
                              type: string
                              format: date-time
                              description: >-
                                [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                date (must be UTC). ISO 8601 timestamp when the
                                payout was created.
                              example: 2023-04-14T20:41:28.715Z
                            dateFinalized:
                              type: string
                              format: date-time
                              description: >-
                                [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                date (must be UTC). ISO 8601 timestamp when the
                                payout was finalized.
                              example: 2023-04-14T20:41:28.715Z
                            provider:
                              type: string
                              enum:
                                - Borderless
                            data:
                              type: object
                              properties:
                                borderlessAccountId:
                                  type: string
                                  description: >-
                                    The Borderless account ID associated with
                                    the payout.
                                paymentInstructionsId:
                                  type: string
                                  description: >-
                                    The Borderless payment instructions ID
                                    linked to the destination bank account.
                                paymentPurpose:
                                  type: string
                                  enum:
                                    - salary payment
                                    - personal remittance
                                    - rent payment
                                    - property purchase
                                    - owned account abroad
                                    - advertising expenses
                                    - advisory fees
                                    - business insurance
                                    - construction
                                    - delivery fees
                                    - education
                                    - exports
                                    - donation
                                    - hotel
                                    - loan payment
                                    - maintenance expenses
                                    - medical expense
                                    - office expenses
                                    - royalty fees
                                    - service charge
                                    - shares investment
                                    - tax payment
                                    - transportation fees
                                    - travel
                                    - utility bills
                                    - other
                                  description: The purpose of the withdrawal payment.
                                dateConfirmed:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the settlement was confirmed via Action
                                    Confirm.
                                  example: 2023-04-14T20:41:28.715Z
                                dateCanceled:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the settlement was canceled via Action
                                    Cancel.
                                  example: 2023-04-14T20:41:28.715Z
                                executionStatus:
                                  type: string
                                  enum:
                                    - Initializing
                                    - AwaitingPayoutInstructions
                                    - AwaitingPayoutConfirmation
                                    - SubmittingPayoutTransfer
                                    - PendingPolicyApproval
                                    - DepositProcessing
                                    - DisbursementPending
                                    - Completed
                                    - Rejected
                                    - Failed
                                    - Expired
                                    - Canceled
                                  description: The Borderless execution status.
                                statusReason:
                                  type: string
                                  description: >-
                                    Reason for the current status, primarily for
                                    failure cases.
                                country:
                                  type: string
                                  description: >-
                                    ISO-3166 Alpha-2 country code for the payout
                                    destination.
                                borderlessPayoutId:
                                  type: string
                                  description: >-
                                    The ID assigned by Borderless when the
                                    payout is created.
                                depositAddress:
                                  type: string
                                  description: The on-chain address to remit funds to.
                                transferId:
                                  type: string
                                  description: >-
                                    The Dfns transfer ID used to settle the
                                    payout.
                                transactionHash:
                                  type: string
                                  description: >-
                                    The blockchain transaction hash once the
                                    transfer is confirmed.
                                dateDepositConfirmed:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the on-chain deposit was confirmed.
                                  example: 2023-04-14T20:41:28.715Z
                                datePayoutConfirmed:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    Borderless verified fiat has settled.
                                  example: 2023-04-14T20:41:28.715Z
                              required:
                                - borderlessAccountId
                                - paymentInstructionsId
                                - paymentPurpose
                                - executionStatus
                                - country
                              description: Borderless provider-specific payout data.
                          required:
                            - id
                            - walletId
                            - fiatCurrency
                            - asset
                            - status
                            - requester
                            - dateCreated
                            - provider
                            - data
                          title: Borderless Payout
                        - type: object
                          properties:
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pyt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: Payout id.
                              example: pyt-4ihii-9lonb-tmhjo9bor4odmb5h
                            walletId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: The wallet ID used for the payout.
                              example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                            fiatCurrency:
                              type: string
                              description: ISO-4217 fiat currency code for the payout.
                            asset:
                              oneOf:
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Erc20
                                    amount:
                                      type: string
                                      pattern: ^\d+$
                                      description: >-
                                        The amount of the asset to be paid out
                                        in minimum denomination.
                                    contract:
                                      type: string
                                      description: The ERC-20 contract address.
                                    network:
                                      $ref: '#/components/schemas/Network'
                                    metadata:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                          description: The display name of the token.
                                        symbol:
                                          type: string
                                          description: The ticker symbol of the token.
                                        decimals:
                                          type: integer
                                          description: Number of decimals used by the token.
                                        verified:
                                          type: boolean
                                          description: >-
                                            Whether the token is verified by DFNS as
                                            legitimate.
                                      required:
                                        - decimals
                                  required:
                                    - kind
                                    - amount
                                    - contract
                                    - network
                                  title: ERC-20 Asset
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum: *ref_123
                                    amount:
                                      type: string
                                      pattern: ^\d+$
                                      description: >-
                                        The amount of the asset to be paid out
                                        in minimum denomination.
                                    mint:
                                      type: string
                                      description: The token mint address.
                                    network:
                                      $ref: '#/components/schemas/Network'
                                    metadata:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                          description: The display name of the token.
                                        symbol:
                                          type: string
                                          description: The ticker symbol of the token.
                                        decimals:
                                          type: integer
                                          description: Number of decimals used by the token.
                                        verified:
                                          type: boolean
                                          description: >-
                                            Whether the token is verified by DFNS as
                                            legitimate.
                                      required:
                                        - decimals
                                  required:
                                    - kind
                                    - amount
                                    - mint
                                    - network
                                  title: SPL/SPL-2022 Asset
                              description: >-
                                The asset being paid out, including token
                                descriptor and metadata.
                            externalId:
                              type: string
                              description: Optional external identifier for idempotency.
                            status:
                              type: string
                              enum:
                                - Processing
                                - Completed
                                - Failed
                                - Rejected
                                - Expired
                                - Canceled
                              description: The current status of the payout.
                            requester:
                              allOf:
                                - $ref: '#/components/schemas/Requester'
                                - description: The user/token that initiated the payout.
                            dateCreated:
                              type: string
                              format: date-time
                              description: >-
                                [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                date (must be UTC). ISO 8601 timestamp when the
                                payout was created.
                              example: 2023-04-14T20:41:28.715Z
                            dateFinalized:
                              type: string
                              format: date-time
                              description: >-
                                [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                date (must be UTC). ISO 8601 timestamp when the
                                payout was finalized.
                              example: 2023-04-14T20:41:28.715Z
                            provider:
                              type: string
                              enum:
                                - CircleMint
                            data:
                              type: object
                              properties:
                                executionStatus:
                                  type: string
                                  enum:
                                    - Initializing
                                    - AwaitingDeposit
                                    - DepositConfirmed
                                    - AwaitingPayout
                                    - Completed
                                    - Rejected
                                    - Failed
                                    - Expired
                                    - Canceled
                                  description: The Circle Mint execution status.
                                statusReason:
                                  type: string
                                  description: >-
                                    Reason for the current status, primarily for
                                    failure cases.
                                bankId:
                                  type: string
                                  description: >-
                                    The Circle Mint bank account id the fiat is
                                    paid out to; absent for a balance
                                    destination.
                                rail:
                                  type: string
                                  enum:
                                    - wire
                                    - sepa
                                    - sepa_instant
                                  description: >-
                                    The payout rail; absent for a balance
                                    destination.
                                paymentIntentId:
                                  type: string
                                  description: >-
                                    Circle payment intent id (the unique
                                    per-operation deposit intent).
                                depositAddress:
                                  type: string
                                  description: >-
                                    The unique per-operation address the wallet
                                    remits USDC/EURC to.
                                transferId:
                                  type: string
                                  description: >-
                                    The Dfns transfer id used to send funds to
                                    the deposit address.
                                transactionHash:
                                  type: string
                                  description: >-
                                    The blockchain transaction hash of the
                                    deposit transfer.
                                circlePayoutId:
                                  type: string
                                  description: >-
                                    The id assigned by Circle when the fiat
                                    payout is created.
                                trackingRef:
                                  type: string
                                  description: >-
                                    Circle tracking reference for the fiat
                                    payout.
                                dateDepositConfirmed:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the on-chain deposit was confirmed.
                                  example: 2023-04-14T20:41:28.715Z
                                datePayoutConfirmed:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    Circle confirmed the fiat payout.
                                  example: 2023-04-14T20:41:28.715Z
                              required:
                                - executionStatus
                              description: Circle Mint provider-specific payout data.
                          required:
                            - id
                            - walletId
                            - fiatCurrency
                            - asset
                            - status
                            - requester
                            - dateCreated
                            - provider
                            - data
                          title: Circle Mint Payout
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /payouts/quote:
    post:
      summary: Request Payout Quote
      tags:
        - Payouts
      security:
        - authenticationToken: []
      description: >-
        Request a quote from a given provider for a payout. Returns estimated
        fiat amount and fees.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payouts:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: The wallet ID to use for determining the network.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    asset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            contract:
                              type: string
                              description: The ERC-20 contract address.
                          required:
                            - kind
                            - amount
                            - contract
                          title: ERC-20 Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum: *ref_123
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            mint:
                              type: string
                              description: The token mint address.
                          required:
                            - kind
                            - amount
                            - mint
                          title: SPL/SPL-2022 Asset
                      description: The asset to be paid out.
                    fiatCurrency:
                      type: string
                      pattern: ^[A-Z]{3}$
                      description: ISO-4217 fiat currency code for the payout quote.
                    provider:
                      type: string
                      enum:
                        - Borderless
                    country:
                      type: string
                      pattern: ^[A-Z]{2}$
                      description: >-
                        ISO-3166 Alpha-2 country code for the payout
                        destination.
                  required:
                    - walletId
                    - asset
                    - fiatCurrency
                    - provider
                    - country
                  title: Borderless Create Payout Quote
                - type: object
                  properties:
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: The wallet ID to use for determining the network.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    asset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            contract:
                              type: string
                              description: The ERC-20 contract address.
                          required:
                            - kind
                            - amount
                            - contract
                          title: ERC-20 Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum: *ref_123
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            mint:
                              type: string
                              description: The token mint address.
                          required:
                            - kind
                            - amount
                            - mint
                          title: SPL/SPL-2022 Asset
                      description: The asset to be paid out.
                    fiatCurrency:
                      type: string
                      pattern: ^[A-Z]{3}$
                      description: ISO-4217 fiat currency code for the payout quote.
                    provider:
                      type: string
                      enum:
                        - CircleMint
                  required:
                    - walletId
                    - asset
                    - fiatCurrency
                    - provider
                  title: Circle Mint Create Payout Quote
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  provider:
                    type: string
                    enum:
                      - Borderless
                      - CircleMint
                    description: Payout provider.
                  asset:
                    oneOf:
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - Erc20
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of the asset to be paid out in minimum
                              denomination.
                          contract:
                            type: string
                            description: The ERC-20 contract address.
                          network:
                            $ref: '#/components/schemas/Network'
                          metadata:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The display name of the token.
                              symbol:
                                type: string
                                description: The ticker symbol of the token.
                              decimals:
                                type: integer
                                description: Number of decimals used by the token.
                              verified:
                                type: boolean
                                description: >-
                                  Whether the token is verified by DFNS as
                                  legitimate.
                            required:
                              - decimals
                        required:
                          - kind
                          - amount
                          - contract
                          - network
                        title: ERC-20 Asset
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum: *ref_123
                          amount:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of the asset to be paid out in minimum
                              denomination.
                          mint:
                            type: string
                            description: The token mint address.
                          network:
                            $ref: '#/components/schemas/Network'
                          metadata:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The display name of the token.
                              symbol:
                                type: string
                                description: The ticker symbol of the token.
                              decimals:
                                type: integer
                                description: Number of decimals used by the token.
                              verified:
                                type: boolean
                                description: >-
                                  Whether the token is verified by DFNS as
                                  legitimate.
                            required:
                              - decimals
                        required:
                          - kind
                          - amount
                          - mint
                          - network
                        title: SPL/SPL-2022 Asset
                    description: >-
                      The asset being quoted, enriched with network and
                      metadata.
                  timestamp:
                    type: string
                    format: date-time
                    description: ISO 8601 timestamp when the quote was generated.
                  quotes:
                    type: array
                    items:
                      type: object
                      properties:
                        quoteId:
                          type: string
                          description: Quote ID from the provider, if applicable.
                        offer:
                          type: object
                          properties:
                            fiatCurrency:
                              type: string
                              pattern: ^[A-Z]{3}$
                              description: ISO-4217 fiat currency code.
                            amount:
                              type: number
                              description: >-
                                Amount of fiat currency to be received net of
                                fees.
                            fees:
                              type: number
                              description: Total fees associated with the transfer.
                          required:
                            - fiatCurrency
                            - amount
                            - fees
                          description: The offer from the provider.
                      required:
                        - offer
                    description: Array of quotes from the provider(s).
                required:
                  - provider
                  - asset
                  - timestamp
                  - quotes
  /payouts/{payoutId}:
    get:
      summary: Get Payout Status
      tags:
        - Payouts
      security:
        - authenticationToken: []
      description: |2-

            Retrieve the current status of a payout by its ID.
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payouts:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Payout id.
          required: true
          description: Payout id.
          name: payoutId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^pyt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Payout id.
                        example: pyt-4ihii-9lonb-tmhjo9bor4odmb5h
                      walletId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: The wallet ID used for the payout.
                        example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                      fiatCurrency:
                        type: string
                        description: ISO-4217 fiat currency code for the payout.
                      asset:
                        oneOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - Erc20
                              amount:
                                type: string
                                pattern: ^\d+$
                                description: >-
                                  The amount of the asset to be paid out in
                                  minimum denomination.
                              contract:
                                type: string
                                description: The ERC-20 contract address.
                              network:
                                $ref: '#/components/schemas/Network'
                              metadata:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The display name of the token.
                                  symbol:
                                    type: string
                                    description: The ticker symbol of the token.
                                  decimals:
                                    type: integer
                                    description: Number of decimals used by the token.
                                  verified:
                                    type: boolean
                                    description: >-
                                      Whether the token is verified by DFNS as
                                      legitimate.
                                required:
                                  - decimals
                            required:
                              - kind
                              - amount
                              - contract
                              - network
                            title: ERC-20 Asset
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum: *ref_123
                              amount:
                                type: string
                                pattern: ^\d+$
                                description: >-
                                  The amount of the asset to be paid out in
                                  minimum denomination.
                              mint:
                                type: string
                                description: The token mint address.
                              network:
                                $ref: '#/components/schemas/Network'
                              metadata:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The display name of the token.
                                  symbol:
                                    type: string
                                    description: The ticker symbol of the token.
                                  decimals:
                                    type: integer
                                    description: Number of decimals used by the token.
                                  verified:
                                    type: boolean
                                    description: >-
                                      Whether the token is verified by DFNS as
                                      legitimate.
                                required:
                                  - decimals
                            required:
                              - kind
                              - amount
                              - mint
                              - network
                            title: SPL/SPL-2022 Asset
                        description: >-
                          The asset being paid out, including token descriptor
                          and metadata.
                      externalId:
                        type: string
                        description: Optional external identifier for idempotency.
                      status:
                        type: string
                        enum:
                          - Processing
                          - Completed
                          - Failed
                          - Rejected
                          - Expired
                          - Canceled
                        description: The current status of the payout.
                      requester:
                        allOf:
                          - $ref: '#/components/schemas/Requester'
                          - description: The user/token that initiated the payout.
                      dateCreated:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payout
                          was created.
                        example: 2023-04-14T20:41:28.715Z
                      dateFinalized:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payout
                          was finalized.
                        example: 2023-04-14T20:41:28.715Z
                      provider:
                        type: string
                        enum:
                          - Borderless
                      data:
                        type: object
                        properties:
                          borderlessAccountId:
                            type: string
                            description: >-
                              The Borderless account ID associated with the
                              payout.
                          paymentInstructionsId:
                            type: string
                            description: >-
                              The Borderless payment instructions ID linked to
                              the destination bank account.
                          paymentPurpose:
                            type: string
                            enum:
                              - salary payment
                              - personal remittance
                              - rent payment
                              - property purchase
                              - owned account abroad
                              - advertising expenses
                              - advisory fees
                              - business insurance
                              - construction
                              - delivery fees
                              - education
                              - exports
                              - donation
                              - hotel
                              - loan payment
                              - maintenance expenses
                              - medical expense
                              - office expenses
                              - royalty fees
                              - service charge
                              - shares investment
                              - tax payment
                              - transportation fees
                              - travel
                              - utility bills
                              - other
                            description: The purpose of the withdrawal payment.
                          dateConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              settlement was confirmed via Action Confirm.
                            example: 2023-04-14T20:41:28.715Z
                          dateCanceled:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              settlement was canceled via Action Cancel.
                            example: 2023-04-14T20:41:28.715Z
                          executionStatus:
                            type: string
                            enum:
                              - Initializing
                              - AwaitingPayoutInstructions
                              - AwaitingPayoutConfirmation
                              - SubmittingPayoutTransfer
                              - PendingPolicyApproval
                              - DepositProcessing
                              - DisbursementPending
                              - Completed
                              - Rejected
                              - Failed
                              - Expired
                              - Canceled
                            description: The Borderless execution status.
                          statusReason:
                            type: string
                            description: >-
                              Reason for the current status, primarily for
                              failure cases.
                          country:
                            type: string
                            description: >-
                              ISO-3166 Alpha-2 country code for the payout
                              destination.
                          borderlessPayoutId:
                            type: string
                            description: >-
                              The ID assigned by Borderless when the payout is
                              created.
                          depositAddress:
                            type: string
                            description: The on-chain address to remit funds to.
                          transferId:
                            type: string
                            description: The Dfns transfer ID used to settle the payout.
                          transactionHash:
                            type: string
                            description: >-
                              The blockchain transaction hash once the transfer
                              is confirmed.
                          dateDepositConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              on-chain deposit was confirmed.
                            example: 2023-04-14T20:41:28.715Z
                          datePayoutConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when
                              Borderless verified fiat has settled.
                            example: 2023-04-14T20:41:28.715Z
                        required:
                          - borderlessAccountId
                          - paymentInstructionsId
                          - paymentPurpose
                          - executionStatus
                          - country
                        description: Borderless provider-specific payout data.
                    required:
                      - id
                      - walletId
                      - fiatCurrency
                      - asset
                      - status
                      - requester
                      - dateCreated
                      - provider
                      - data
                    title: Borderless Payout
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^pyt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: Payout id.
                        example: pyt-4ihii-9lonb-tmhjo9bor4odmb5h
                      walletId:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                        description: The wallet ID used for the payout.
                        example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                      fiatCurrency:
                        type: string
                        description: ISO-4217 fiat currency code for the payout.
                      asset:
                        oneOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - Erc20
                              amount:
                                type: string
                                pattern: ^\d+$
                                description: >-
                                  The amount of the asset to be paid out in
                                  minimum denomination.
                              contract:
                                type: string
                                description: The ERC-20 contract address.
                              network:
                                $ref: '#/components/schemas/Network'
                              metadata:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The display name of the token.
                                  symbol:
                                    type: string
                                    description: The ticker symbol of the token.
                                  decimals:
                                    type: integer
                                    description: Number of decimals used by the token.
                                  verified:
                                    type: boolean
                                    description: >-
                                      Whether the token is verified by DFNS as
                                      legitimate.
                                required:
                                  - decimals
                            required:
                              - kind
                              - amount
                              - contract
                              - network
                            title: ERC-20 Asset
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum: *ref_123
                              amount:
                                type: string
                                pattern: ^\d+$
                                description: >-
                                  The amount of the asset to be paid out in
                                  minimum denomination.
                              mint:
                                type: string
                                description: The token mint address.
                              network:
                                $ref: '#/components/schemas/Network'
                              metadata:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The display name of the token.
                                  symbol:
                                    type: string
                                    description: The ticker symbol of the token.
                                  decimals:
                                    type: integer
                                    description: Number of decimals used by the token.
                                  verified:
                                    type: boolean
                                    description: >-
                                      Whether the token is verified by DFNS as
                                      legitimate.
                                required:
                                  - decimals
                            required:
                              - kind
                              - amount
                              - mint
                              - network
                            title: SPL/SPL-2022 Asset
                        description: >-
                          The asset being paid out, including token descriptor
                          and metadata.
                      externalId:
                        type: string
                        description: Optional external identifier for idempotency.
                      status:
                        type: string
                        enum:
                          - Processing
                          - Completed
                          - Failed
                          - Rejected
                          - Expired
                          - Canceled
                        description: The current status of the payout.
                      requester:
                        allOf:
                          - $ref: '#/components/schemas/Requester'
                          - description: The user/token that initiated the payout.
                      dateCreated:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payout
                          was created.
                        example: 2023-04-14T20:41:28.715Z
                      dateFinalized:
                        type: string
                        format: date-time
                        description: >-
                          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                          date (must be UTC). ISO 8601 timestamp when the payout
                          was finalized.
                        example: 2023-04-14T20:41:28.715Z
                      provider:
                        type: string
                        enum:
                          - CircleMint
                      data:
                        type: object
                        properties:
                          executionStatus:
                            type: string
                            enum:
                              - Initializing
                              - AwaitingDeposit
                              - DepositConfirmed
                              - AwaitingPayout
                              - Completed
                              - Rejected
                              - Failed
                              - Expired
                              - Canceled
                            description: The Circle Mint execution status.
                          statusReason:
                            type: string
                            description: >-
                              Reason for the current status, primarily for
                              failure cases.
                          bankId:
                            type: string
                            description: >-
                              The Circle Mint bank account id the fiat is paid
                              out to; absent for a balance destination.
                          rail:
                            type: string
                            enum:
                              - wire
                              - sepa
                              - sepa_instant
                            description: The payout rail; absent for a balance destination.
                          paymentIntentId:
                            type: string
                            description: >-
                              Circle payment intent id (the unique per-operation
                              deposit intent).
                          depositAddress:
                            type: string
                            description: >-
                              The unique per-operation address the wallet remits
                              USDC/EURC to.
                          transferId:
                            type: string
                            description: >-
                              The Dfns transfer id used to send funds to the
                              deposit address.
                          transactionHash:
                            type: string
                            description: >-
                              The blockchain transaction hash of the deposit
                              transfer.
                          circlePayoutId:
                            type: string
                            description: >-
                              The id assigned by Circle when the fiat payout is
                              created.
                          trackingRef:
                            type: string
                            description: Circle tracking reference for the fiat payout.
                          dateDepositConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when the
                              on-chain deposit was confirmed.
                            example: 2023-04-14T20:41:28.715Z
                          datePayoutConfirmed:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). ISO 8601 timestamp when Circle
                              confirmed the fiat payout.
                            example: 2023-04-14T20:41:28.715Z
                        required:
                          - executionStatus
                        description: Circle Mint provider-specific payout data.
                    required:
                      - id
                      - walletId
                      - fiatCurrency
                      - asset
                      - status
                      - requester
                      - dateCreated
                      - provider
                      - data
                    title: Circle Mint Payout
  /payouts/{payoutId}/action:
    post:
      summary: Create Payout Action
      tags:
        - Payouts
      security:
        - authenticationToken: []
          userActionSignature: []
      description: |2-

            Perform an action on a payout, such as confirming or canceling.
          
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Payouts:Write`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Payout id.
          required: true
          description: Payout id.
          name: payoutId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    action:
                      type: string
                      enum:
                        - Confirm
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: The wallet ID to use for the transfer.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    transfer:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            contract:
                              type: string
                              description: The ERC-20 contract address.
                            to:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                              description: The counterparty address for the payout.
                          required:
                            - kind
                            - amount
                            - contract
                            - to
                          title: ERC-20 Transfer
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum: *ref_123
                            amount:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                The amount of the asset to be paid out in
                                minimum denomination.
                            mint:
                              type: string
                              description: The token mint address.
                            to:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                              description: The counterparty address for the payout.
                          required:
                            - kind
                            - amount
                            - mint
                            - to
                          title: SPL/SPL-2022 Transfer
                      description: The transfer details for the payout settlement.
                  required:
                    - action
                    - walletId
                    - transfer
                  title: Confirm Payout Action
                - type: object
                  properties:
                    action:
                      type: string
                      enum:
                        - Cancel
                  required:
                    - action
                  title: Cancel Payout Action
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /permissions/{permissionId}/archive:
    put:
      summary: Archive Permission
      tags:
        - Permissions
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Archives or unarchives a permission (role). Archived permissions are
        effectively soft-deleted.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Permissions:Archive`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: >-
              ID of the permission (also referred to as "role" in the
              dashboard).
          required: true
          description: ID of the permission (also referred to as "role" in the dashboard).
          name: permissionId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                isArchived:
                  type: boolean
                  description: Set to true to archive, false to unarchive.
              required:
                - isArchived
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
  /permissions/{permissionId}/assignments:
    post:
      summary: Assign Permission
      tags:
        - Permissions
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Assigns a permission (role) to an identity (user, PAT or service
        account), granting it access to the operations defined in the
        permission. Returns the assignment on success (200), or a pending change
        request if approval is required (202).
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Permissions:Assign`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: >-
              ID of the permission (also referred to as "role" in the
              dashboard).
          required: true
          description: ID of the permission (also referred to as "role" in the dashboard).
          name: permissionId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                identityId:
                  type: string
                  minLength: 1
                  description: >-
                    ID of the identity to assign the permission to. Can be a
                    user ID, a service account ID, or a personal access token
                    (PAT) ID.
              required:
                - identityId
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: ID of the permission assignment.
                    example: as-1vcmc-qrek0-6b4vii9pln60907e
                  permissionId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: >-
                      ID of the permission (also referred to as "role" in the
                      dashboard).
                    example: pm-37vj4-jkr4l-lc9945spfftkne57
                  identityId:
                    type: string
                    description: >-
                      ID of the identity the permission is assigned to. Can be a
                      user ID, a service account ID, or a personal access token
                      (PAT) ID.
                  isImmutable:
                    type: boolean
                    description: >-
                      Whether this assignment is system-managed and cannot be
                      modified.
                  dateCreated:
                    type: string
                    format: date-time
                    description: >-
                      [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date
                      (must be UTC). Date the assignment was created.
                    example: 2023-04-14T20:41:28.715Z
                  dateUpdated:
                    type: string
                    format: date-time
                    description: >-
                      [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date
                      (must be UTC). Date the assignment was last updated.
                    example: 2023-04-14T20:41:28.715Z
                required:
                  - id
                  - permissionId
                  - identityId
                  - isImmutable
                  - dateCreated
                  - dateUpdated
                additionalProperties: false
    get:
      summary: List Permission Assignments
      tags:
        - Permissions
      security:
        - authenticationToken: []
      description: Lists all permission (role) assignments for a given permission.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Permissions:Assignments:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: >-
              ID of the permission (also referred to as "role" in the
              dashboard).
          required: true
          description: ID of the permission (also referred to as "role" in the dashboard).
          name: permissionId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            id:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: ID of the permission assignment.
                              example: as-1vcmc-qrek0-6b4vii9pln60907e
                            permissionId:
                              type: string
                              minLength: 1
                              maxLength: 64
                              pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                              description: >-
                                ID of the permission (also referred to as "role"
                                in the dashboard).
                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                            identityId:
                              type: string
                              description: >-
                                ID of the identity the permission is assigned
                                to. Can be a user ID, a service account ID, or a
                                personal access token (PAT) ID.
                            isImmutable:
                              type: boolean
                              description: >-
                                Whether this assignment is system-managed and
                                cannot be modified.
                            dateCreated:
                              type: string
                              format: date-time
                              description: >-
                                [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                date (must be UTC). Date the assignment was
                                created.
                              example: 2023-04-14T20:41:28.715Z
                            dateUpdated:
                              type: string
                              format: date-time
                              description: >-
                                [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                date (must be UTC). Date the assignment was last
                                updated.
                              example: 2023-04-14T20:41:28.715Z
                          required:
                            - id
                            - permissionId
                            - identityId
                            - isImmutable
                            - dateCreated
                            - dateUpdated
                          additionalProperties: false
                        - type: object
                          properties:
                            pendingChangeRequest:
                              type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  description: ID of the change request.
                                  example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                                requester:
                                  $ref: '#/components/schemas/ChangeRequestRequester'
                                status:
                                  type: string
                                  enum:
                                    - Applied
                                    - Failed
                                    - Pending
                                    - Rejected
                                  description: Current status of the change request.
                                entityId:
                                  type: string
                                  description: ID of the entity being changed.
                                dateCreated:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). Date the change request
                                    was created.
                                  example: 2023-04-14T20:41:28.715Z
                                dateResolved:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). Date the change request
                                    was resolved.
                                  example: 2023-04-14T20:41:28.715Z
                                approvalId:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  example: ap-2a9in-tt2a1-983lho480p35ejd0
                                kind:
                                  type: string
                                  enum:
                                    - Assignment
                                operationKind:
                                  type: string
                                  enum: *ref_124
                                body:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                      pattern: >-
                                        ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                      description: ID of the permission assignment.
                                      example: as-1vcmc-qrek0-6b4vii9pln60907e
                                    permissionId:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                      pattern: >-
                                        ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                      description: >-
                                        ID of the permission (also referred to
                                        as "role" in the dashboard).
                                      example: pm-37vj4-jkr4l-lc9945spfftkne57
                                    identityId:
                                      type: string
                                      description: >-
                                        ID of the identity the permission is
                                        assigned to. Can be a user ID, a service
                                        account ID, or a personal access token
                                        (PAT) ID.
                                    isImmutable:
                                      type: boolean
                                      description: >-
                                        Whether this assignment is
                                        system-managed and cannot be modified.
                                  required:
                                    - id
                                    - permissionId
                                    - identityId
                                    - isImmutable
                                  additionalProperties: false
                              required:
                                - id
                                - requester
                                - status
                                - entityId
                                - dateCreated
                                - kind
                                - operationKind
                                - body
                              additionalProperties: false
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /permissions:
    post:
      summary: Create Permission
      tags:
        - Permissions
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates a new permission (also referred to as "role" in the dashboard)
        that grants access to the specified API operations.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Permissions:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: Human-readable name for the permission (role).
                operations:
                  type: array
                  items:
                    anyOf:
                      - type: string
                        enum:
                          - Registry:Addresses:Create
                          - Registry:Addresses:Delete
                          - Registry:Addresses:Read
                          - Registry:Addresses:Update
                          - Registry:ContractSchemas:Create
                          - Registry:ContractSchemas:Delete
                          - Registry:ContractSchemas:Read
                          - Auth:Logs:Read
                          - Auth:Users:Create
                          - Auth:Users:Read
                          - Auth:Users:Update
                          - Auth:Users:Activate
                          - Auth:Users:Deactivate
                          - Auth:Users:Delete
                          - Auth:ServiceAccounts:Create
                          - Auth:ServiceAccounts:Read
                          - Auth:ServiceAccounts:Update
                          - Auth:ServiceAccounts:Deactivate
                          - Auth:ServiceAccounts:Activate
                          - Auth:ServiceAccounts:Delete
                          - Auth:Pats:Create
                          - Auth:Register:Delegated
                          - Auth:Login:Delegated
                          - Auth:Recover:Delegated
                          - Agreements:Acceptance:Create
                          - Agreements:Acceptance:Read
                          - Events:Read
                          - Exchanges:Create
                          - Exchanges:Read
                          - Exchanges:Delete
                          - Exchanges:Deposits:Create
                          - Exchanges:Withdrawals:Create
                          - FeeSponsors:Create
                          - FeeSponsors:Read
                          - FeeSponsors:Update
                          - FeeSponsors:Delete
                          - FeeSponsors:Use
                          - Orgs:Read
                          - Orgs:Update
                          - Orgs:Settings:Read
                          - Orgs:Settings:Update
                          - Permissions:Archive
                          - Permissions:Create
                          - Permissions:Read
                          - Permissions:Update
                          - Permissions:Assign
                          - Permissions:Revoke
                          - Permissions:Assignments:Read
                          - Policies:Archive
                          - Policies:Create
                          - Policies:Read
                          - Policies:Update
                          - Policies:Approvals:Read
                          - Policies:Approvals:Approve
                          - Signers:ListSigners
                          - Stakes:Create
                          - Stakes:Read
                          - Stakes:Update
                          - Swaps:Create
                          - Swaps:Read
                          - Payouts:Create
                          - Payouts:Read
                          - Payouts:Write
                          - Payins:Create
                          - Payins:Read
                          - Allocations:Create
                          - Allocations:Update
                          - Allocations:Read
                          - Keys:Create
                          - Keys:Delete
                          - Keys:Read
                          - Keys:Update
                          - Keys:Reuse
                          - Keys:Delegate
                          - Keys:Import
                          - Keys:Export
                          - Keys:Derive
                          - Keys:ChildKeys:Create
                          - Keys:Signatures:Create
                          - Keys:Signatures:Read
                          - KeyStores:Read
                          - KeyStores:Fleets:Create
                          - KeyStores:Fleets:Clone
                          - KeyStores:Fleets:AddMacUser
                          - KeyStores:Fleets:KeyHarvest
                          - KeyStores:Fleets:AddProvisioner
                          - KeyStores:Fleets:Cancel
                          - KeyStores:ProofOfControl:Create
                          - KeyStores:OnchainSignatures:Create
                          - Networks:CantonValidators:Create
                          - Networks:CantonValidators:Read
                          - Networks:CantonValidators:Update
                          - Networks:CantonValidators:Delete
                          - Wallets:Create
                          - Wallets:Read
                          - Wallets:Update
                          - Wallets:Tags:Add
                          - Wallets:Tags:Delete
                          - Wallets:Transactions:Create
                          - Wallets:Transactions:Read
                          - Wallets:Transactions:Abort
                          - Wallets:Transfers:Create
                          - Wallets:Transfers:Read
                          - Wallets:Transfers:Abort
                          - Wallets:Offers:Read
                          - Wallets:Offers:Settle
                          - AddressWatches:Create
                          - AddressWatches:Read
                          - Vaults:Create
                          - Vaults:Read
                          - Vaults:Update
                          - Vaults:Tags:Add
                          - Vaults:Tags:Delete
                          - Vaults:Addresses:Create
                          - Vaults:Quarantines:Release
                          - Vaults:Locks:Create
                          - Vaults:Locks:Delete
                          - Vaults:Transfers:Create
                          - Webhooks:Create
                          - Webhooks:Read
                          - Webhooks:Update
                          - Webhooks:Delete
                          - Webhooks:Ping
                          - Webhooks:Events:Read
                          - Billing:Read
                          - Billing:Write
                          - Analytics:Read
                      - type: string
                        enum:
                          - Alias:Create
                          - Alias:Delete
                          - Alias:Read
                          - Alias:Update
                          - Wallets:GenerateSignature
                          - Wallets:BroadcastTransaction
                          - Auth:Action:Sign
                          - Auth:Apps:Read
                          - Auth:Apps:Create
                          - Auth:Apps:Update
                          - Auth:Creds:Create
                          - Auth:Creds:Read
                          - Auth:Creds:Update
                          - Auth:Creds:Code:Create
                          - Auth:Types:Application
                          - Auth:Types:Employee
                          - Auth:Types:EndUser
                          - Auth:Types:Pat
                          - Auth:Types:ServiceAccount
                          - Internal:Auth:Types:Staff
                          - Auth:Users:Delegate
                          - PermissionAssignments:Create
                          - PermissionAssignments:Read
                          - PermissionAssignments:Revoke
                  minItems: 1
                  description: >-
                    List of API operations this permission grants access to. See
                    [Permissions
                    List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions)
                    for available operations.
              required:
                - name
                - operations
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
    get:
      summary: List Permissions
      tags:
        - Permissions
      security:
        - authenticationToken: []
      description: Lists all permissions (roles) in the organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Permissions:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/Permission'
                        - type: object
                          properties:
                            pendingChangeRequest:
                              type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  description: ID of the change request.
                                  example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                                requester:
                                  $ref: '#/components/schemas/ChangeRequestRequester'
                                status:
                                  type: string
                                  enum:
                                    - Applied
                                    - Failed
                                    - Pending
                                    - Rejected
                                  description: Current status of the change request.
                                entityId:
                                  type: string
                                  description: ID of the entity being changed.
                                dateCreated:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). Date the change request
                                    was created.
                                  example: 2023-04-14T20:41:28.715Z
                                dateResolved:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). Date the change request
                                    was resolved.
                                  example: 2023-04-14T20:41:28.715Z
                                approvalId:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  example: ap-2a9in-tt2a1-983lho480p35ejd0
                                kind:
                                  type: string
                                  enum:
                                    - Permission
                                operationKind:
                                  type: string
                                  enum: *ref_125
                                body:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                      pattern: >-
                                        ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                      description: >-
                                        ID of the permission (also referred to
                                        as "role" in the dashboard).
                                      example: pm-37vj4-jkr4l-lc9945spfftkne57
                                    name:
                                      type: string
                                      description: >-
                                        Human-readable name of the permission
                                        (role).
                                    status:
                                      type: string
                                      enum:
                                        - Active
                                      description: Current status of the permission.
                                    operations:
                                      type: array
                                      items:
                                        type: string
                                      description: >-
                                        List of API operations this permission
                                        grants access to. See [Permissions
                                        List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions)
                                        for available operations.
                                    isImmutable:
                                      type: boolean
                                      description: >-
                                        Whether this permission is
                                        system-managed and cannot be modified.
                                    isArchived:
                                      type: boolean
                                      description: >-
                                        Whether this permission has been
                                        archived (soft-deleted).
                                  required:
                                    - id
                                    - name
                                    - status
                                    - operations
                                    - isImmutable
                                    - isArchived
                                  additionalProperties: false
                              required:
                                - id
                                - requester
                                - status
                                - entityId
                                - dateCreated
                                - kind
                                - operationKind
                                - body
                              additionalProperties: false
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /permissions/{permissionId}/assignments/{assignmentId}:
    delete:
      summary: Revoke Permission
      tags:
        - Permissions
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Revokes a permission (role) assignment, removing the identity's access
        to the operations granted by the permission.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Permissions:Revoke`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: >-
              ID of the permission (also referred to as "role" in the
              dashboard).
          required: true
          description: ID of the permission (also referred to as "role" in the dashboard).
          name: permissionId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: ID of the permission assignment.
          required: true
          description: ID of the permission assignment.
          name: assignmentId
          in: path
        - schema:
            type: boolean
            default: false
            description: If true, bypasses the approval process and revokes immediately.
          required: false
          description: If true, bypasses the approval process and revokes immediately.
          name: force
          in: query
      responses:
        '200':
          description: Success
  /permissions/{permissionId}:
    get:
      summary: Get Permission
      tags:
        - Permissions
      security:
        - authenticationToken: []
      description: >-
        Retrieves a permission (role) by ID, including any pending change
        request.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Permissions:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: >-
              ID of the permission (also referred to as "role" in the
              dashboard).
          required: true
          description: ID of the permission (also referred to as "role" in the dashboard).
          name: permissionId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Permission'
                  - type: object
                    properties:
                      pendingChangeRequest:
                        type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            description: ID of the change request.
                            example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                          requester:
                            $ref: '#/components/schemas/ChangeRequestRequester'
                          status:
                            type: string
                            enum:
                              - Applied
                              - Failed
                              - Pending
                              - Rejected
                            description: Current status of the change request.
                          entityId:
                            type: string
                            description: ID of the entity being changed.
                          dateCreated:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). Date the change request was
                              created.
                            example: 2023-04-14T20:41:28.715Z
                          dateResolved:
                            type: string
                            format: date-time
                            description: >-
                              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
                              date (must be UTC). Date the change request was
                              resolved.
                            example: 2023-04-14T20:41:28.715Z
                          approvalId:
                            type: string
                            minLength: 1
                            maxLength: 64
                            pattern: ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                            example: ap-2a9in-tt2a1-983lho480p35ejd0
                          kind:
                            type: string
                            enum:
                              - Permission
                          operationKind:
                            type: string
                            enum: *ref_125
                          body:
                            type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 64
                                pattern: ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                description: >-
                                  ID of the permission (also referred to as
                                  "role" in the dashboard).
                                example: pm-37vj4-jkr4l-lc9945spfftkne57
                              name:
                                type: string
                                description: Human-readable name of the permission (role).
                              status:
                                type: string
                                enum:
                                  - Active
                                description: Current status of the permission.
                              operations:
                                type: array
                                items:
                                  type: string
                                description: >-
                                  List of API operations this permission grants
                                  access to. See [Permissions
                                  List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions)
                                  for available operations.
                              isImmutable:
                                type: boolean
                                description: >-
                                  Whether this permission is system-managed and
                                  cannot be modified.
                              isArchived:
                                type: boolean
                                description: >-
                                  Whether this permission has been archived
                                  (soft-deleted).
                            required:
                              - id
                              - name
                              - status
                              - operations
                              - isImmutable
                              - isArchived
                            additionalProperties: false
                        required:
                          - id
                          - requester
                          - status
                          - entityId
                          - dateCreated
                          - kind
                          - operationKind
                          - body
                        additionalProperties: false
    put:
      summary: Update Permission
      tags:
        - Permissions
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Updates the name or operations of an existing permission (role).
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Permissions:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: >-
              ID of the permission (also referred to as "role" in the
              dashboard).
          required: true
          description: ID of the permission (also referred to as "role" in the dashboard).
          name: permissionId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: New name for the permission (role).
                operations:
                  type: array
                  items:
                    anyOf:
                      - type: string
                        enum:
                          - Registry:Addresses:Create
                          - Registry:Addresses:Delete
                          - Registry:Addresses:Read
                          - Registry:Addresses:Update
                          - Registry:ContractSchemas:Create
                          - Registry:ContractSchemas:Delete
                          - Registry:ContractSchemas:Read
                          - Auth:Logs:Read
                          - Auth:Users:Create
                          - Auth:Users:Read
                          - Auth:Users:Update
                          - Auth:Users:Activate
                          - Auth:Users:Deactivate
                          - Auth:Users:Delete
                          - Auth:ServiceAccounts:Create
                          - Auth:ServiceAccounts:Read
                          - Auth:ServiceAccounts:Update
                          - Auth:ServiceAccounts:Deactivate
                          - Auth:ServiceAccounts:Activate
                          - Auth:ServiceAccounts:Delete
                          - Auth:Pats:Create
                          - Auth:Register:Delegated
                          - Auth:Login:Delegated
                          - Auth:Recover:Delegated
                          - Agreements:Acceptance:Create
                          - Agreements:Acceptance:Read
                          - Events:Read
                          - Exchanges:Create
                          - Exchanges:Read
                          - Exchanges:Delete
                          - Exchanges:Deposits:Create
                          - Exchanges:Withdrawals:Create
                          - FeeSponsors:Create
                          - FeeSponsors:Read
                          - FeeSponsors:Update
                          - FeeSponsors:Delete
                          - FeeSponsors:Use
                          - Orgs:Read
                          - Orgs:Update
                          - Orgs:Settings:Read
                          - Orgs:Settings:Update
                          - Permissions:Archive
                          - Permissions:Create
                          - Permissions:Read
                          - Permissions:Update
                          - Permissions:Assign
                          - Permissions:Revoke
                          - Permissions:Assignments:Read
                          - Policies:Archive
                          - Policies:Create
                          - Policies:Read
                          - Policies:Update
                          - Policies:Approvals:Read
                          - Policies:Approvals:Approve
                          - Signers:ListSigners
                          - Stakes:Create
                          - Stakes:Read
                          - Stakes:Update
                          - Swaps:Create
                          - Swaps:Read
                          - Payouts:Create
                          - Payouts:Read
                          - Payouts:Write
                          - Payins:Create
                          - Payins:Read
                          - Allocations:Create
                          - Allocations:Update
                          - Allocations:Read
                          - Keys:Create
                          - Keys:Delete
                          - Keys:Read
                          - Keys:Update
                          - Keys:Reuse
                          - Keys:Delegate
                          - Keys:Import
                          - Keys:Export
                          - Keys:Derive
                          - Keys:ChildKeys:Create
                          - Keys:Signatures:Create
                          - Keys:Signatures:Read
                          - KeyStores:Read
                          - KeyStores:Fleets:Create
                          - KeyStores:Fleets:Clone
                          - KeyStores:Fleets:AddMacUser
                          - KeyStores:Fleets:KeyHarvest
                          - KeyStores:Fleets:AddProvisioner
                          - KeyStores:Fleets:Cancel
                          - KeyStores:ProofOfControl:Create
                          - KeyStores:OnchainSignatures:Create
                          - Networks:CantonValidators:Create
                          - Networks:CantonValidators:Read
                          - Networks:CantonValidators:Update
                          - Networks:CantonValidators:Delete
                          - Wallets:Create
                          - Wallets:Read
                          - Wallets:Update
                          - Wallets:Tags:Add
                          - Wallets:Tags:Delete
                          - Wallets:Transactions:Create
                          - Wallets:Transactions:Read
                          - Wallets:Transactions:Abort
                          - Wallets:Transfers:Create
                          - Wallets:Transfers:Read
                          - Wallets:Transfers:Abort
                          - Wallets:Offers:Read
                          - Wallets:Offers:Settle
                          - AddressWatches:Create
                          - AddressWatches:Read
                          - Vaults:Create
                          - Vaults:Read
                          - Vaults:Update
                          - Vaults:Tags:Add
                          - Vaults:Tags:Delete
                          - Vaults:Addresses:Create
                          - Vaults:Quarantines:Release
                          - Vaults:Locks:Create
                          - Vaults:Locks:Delete
                          - Vaults:Transfers:Create
                          - Webhooks:Create
                          - Webhooks:Read
                          - Webhooks:Update
                          - Webhooks:Delete
                          - Webhooks:Ping
                          - Webhooks:Events:Read
                          - Billing:Read
                          - Billing:Write
                          - Analytics:Read
                      - type: string
                        enum:
                          - Alias:Create
                          - Alias:Delete
                          - Alias:Read
                          - Alias:Update
                          - Wallets:GenerateSignature
                          - Wallets:BroadcastTransaction
                          - Auth:Action:Sign
                          - Auth:Apps:Read
                          - Auth:Apps:Create
                          - Auth:Apps:Update
                          - Auth:Creds:Create
                          - Auth:Creds:Read
                          - Auth:Creds:Update
                          - Auth:Creds:Code:Create
                          - Auth:Types:Application
                          - Auth:Types:Employee
                          - Auth:Types:EndUser
                          - Auth:Types:Pat
                          - Auth:Types:ServiceAccount
                          - Internal:Auth:Types:Staff
                          - Auth:Users:Delegate
                          - PermissionAssignments:Create
                          - PermissionAssignments:Read
                          - PermissionAssignments:Revoke
                  minItems: 1
                  description: >-
                    New list of API operations this permission grants access to.
                    See [Permissions
                    List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions)
                    for available operations.
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
  /v2/policies/{policyId}:
    delete:
      summary: Delete Policy
      tags:
        - Policies
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Delete an existing policy.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Policies:Archive`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: policyId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
    get:
      summary: Get Policy
      tags:
        - Policies
      security:
        - authenticationToken: []
      description: Retrieve information about a specific policy.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Policies:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: policyId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Policy'
                  - type: object
                    properties:
                      pendingChangeRequest:
                        type: object
                        properties:
                          id:
                            type: string
                          requester:
                            $ref: '#/components/schemas/ChangeRequestRequester'
                          kind:
                            type: string
                            enum:
                              - Policy
                          operationKind:
                            type: string
                            enum: *ref_126
                          status:
                            type: string
                            enum:
                              - Applied
                              - Failed
                              - Pending
                              - Rejected
                          entityId:
                            type: string
                          dateCreated:
                            type: string
                            format: date-time
                          dateResolved:
                            type: string
                            format: date-time
                          approvalId:
                            type: string
                          body:
                            $ref: '#/components/schemas/Policy'
                        required:
                          - id
                          - requester
                          - kind
                          - operationKind
                          - status
                          - entityId
                          - dateCreated
                          - body
                        additionalProperties: false
    put:
      summary: Update Policy
      tags:
        - Policies
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Update an existing policy.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Policies:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: policyId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Registry:Addresses:Modify
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                    filters:
                      type: object
                      properties: {}
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: ''
                  title: Registry:Addresses:Modify
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Permissions:Assign
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                    filters:
                      type: object
                      properties:
                        permissionId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                      required:
                        - permissionId
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >-
                    A "`Permissions:Assign`" activity represents any activity
                    which involves assigning a permission (or revoking it, aka
                    "deleting a permission assignment"). These activities are
                    Assignment change requests, created as a result of calling
                    either:


                    * the endpoint [Assign
                    Permission](https://docs.dfns.co/api-reference/permissions/assign-permission)

                    * the endpoint [Revoke
                    Permission](https://docs.dfns.co/api-reference/permissions/revoke-permission)
                  title: Permissions:Assign
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Permissions:Modify
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                    filters:
                      type: object
                      properties:
                        permissionId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                      required:
                        - permissionId
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >-
                    A "`Permissions:Modify`" activity represents any activity
                    which involves updating or archiving a permission. These
                    activities are Permission change requests, created as a
                    result of calling either:


                    * the endpoint [Update
                    Permission](https://docs.dfns.co/api-reference/permissions/update-permission)

                    * the endpoint [Delete
                    Permission](https://docs.dfns.co/api-reference/permissions/archive-permission)
                  title: Permissions:Modify
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Policies:Modify
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - RequestApproval
                        approvalGroups:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                              quorum:
                                type: integer
                                minimum: 1
                              approvers:
                                type: object
                                properties:
                                  userId:
                                    type: object
                                    properties:
                                      in:
                                        type: array
                                        items:
                                          type: string
                                          minLength: 1
                                        minItems: 1
                                        maxItems: 100
                                    required:
                                      - in
                                    additionalProperties: false
                                additionalProperties: false
                              initiatorCanApprove:
                                type: boolean
                                description: >-
                                  Whether the initiator of the activity can
                                  participate in the approval.
                              serviceAccountsCanApprove:
                                type: boolean
                                description: >-
                                  Whether service accounts can participate in
                                  the approval for this group.
                            required:
                              - quorum
                              - approvers
                            additionalProperties: false
                          minItems: 1
                        autoRejectTimeout:
                          type:
                            - integer
                            - 'null'
                          minimum: 1
                      required:
                        - kind
                        - approvalGroups
                      additionalProperties: false
                      description: >-

                        This action means that activity will first require an
                        Approval process to be completed before it can  be
                        executed (or be aborted if someone rejects it during the
                        approval process).


                        One or several groups of approvers need to be specified.
                        These groups define who is allowed to approve / reject
                        an activity.


                        The activity will only be executed if all approver
                        groups reach their "quorum" of approvals. Otherwise, if
                        any one user within any approver group rejects, then the
                        activity is aborted and the call is not executed.


                        The example below shows a `RequestApproval` action,
                        configured with one approval group requiring 2 approvals
                        amongst three specific users.


                        ```json

                        {
                          "action": {
                            "kind": "RequestApproval",
                            "autoRejectTimeout": 60, // minutes
                            "approvalGroups": [
                              {
                                "name": "Admins",
                                "quorum": 2, // only 2 approvers required in that group 
                                "approvers": {
                                  "userId": {
                                    "in": ["us-...1", "us-...2", "us-...3"],
                                  }
                                }
                              }
                            ],

                          }
                        }

                        ```


                        **Don't lock yourself up**


                        By default, users cannot approve an activity they
                        initiated themselves, even if they are in an approval
                        group. To allow this, you must set `initiatorCanApprove:
                        true`.


                        *Example 1:* For any wallet transfer, a policy is setup
                        to require approval from **1 specific admin user** (eg.
                        the CEO). `initiatorCanApprove` was not set to `true`.
                        If the CEO himself initiates a transfer, no-one can
                        approve his transfer and it's stuck.


                        *Example 2:* Company has only 3 users. A policy is setup
                        to require approval from **any 3 users** (`quorum: 3`)
                        for any modification of a policy. `initiatorCanApprove`
                        was not set to `true`. In this case, they are locked,
                        and the policy cannot be modified: whoever requests a
                        modification cannot approve, and the policy is therefore
                        always missing one approver. To unlock, they would need
                        to invite a new user and give him the rights to approve
                        as well.
                            
                      title: RequestApproval
                    filters:
                      type: object
                      properties:
                        policyId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                      required:
                        - policyId
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >
                    A "`Policies:Modify`" activity represents any activity which
                    involves updating or archiving a policy. These activities
                    are Policy change requests, created as a result of calling
                    either:


                    * the endpoint [Update
                    Policy](https://docs.dfns.co/api-reference/policies/update-policy)

                    * the endpoint [Delete
                    Policy](https://docs.dfns.co/api-reference/policies/delete-policy)
                  title: Policies:Modify
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Registry:ContractSchemas:Modify
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                    filters:
                      type: object
                      properties: {}
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >-
                    A "`Registry:ContractSchemas:Modify`" activity represents
                    any activity which modifies a Contract Schema registered for
                    execution in the Dfns Dashboard
                  title: Registry:ContractSchemas:Modify
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Wallets:Sign
                    rule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - AlwaysTrigger
                            configuration:
                              type: object
                              properties: {}
                              additionalProperties: false
                          required:
                            - kind
                          additionalProperties: false
                          description: >-
                            This rule will always be triggered, meaning that if
                            this rule is defined on a policy, the policy will
                            always trigger the policy action, regardless of the
                            activity details.
                          title: AlwaysTrigger
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TransactionRecipientWhitelist
                            configuration:
                              type: object
                              properties:
                                addresses:
                                  type: array
                                  items:
                                    type: string
                                    minLength: 1
                                  description: Whitelisted recipient addresses
                              required:
                                - addresses
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule will trigger if the destination address
                            *is NOT whitelisted*.
                          title: TransactionRecipientWhitelist
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TransactionAmountLimit
                            configuration:
                              type: object
                              properties:
                                limit:
                                  type: number
                                  description: Amount limit in `currency`
                                currency:
                                  type: string
                                  enum: *ref_127
                                  description: Fiat currency, currently only `USD`
                              required:
                                - limit
                                - currency
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule will trigger if the wallet activity
                            detected is transferring some value which amount is
                            greater than a given limit. Note: If the fiat amount
                            of the wallet activity cannot be evaluated for any
                            reason (eg. market prices are not available, or eg.
                            the amount cannot be inferred from a wallet
                            signature request, etc.), by default the rule will
                            trigger the policy (this is called "failing closed"
                            and is generally considered a security best
                            practice).
                          title: TransactionAmountLimit
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TransactionAmountVelocity
                            configuration:
                              type: object
                              properties:
                                limit:
                                  type: number
                                  description: Amount limit in `currency`
                                currency:
                                  type: string
                                  enum: *ref_128
                                  description: Currency for the amount limit above
                                timeframe:
                                  type: integer
                                  minimum: 1
                                  maximum: 43200
                                  description: >-
                                    Time period in minutes. Minimum 1, Maximum
                                    43,200.
                              required:
                                - limit
                                - currency
                                - timeframe
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule will trigger if the cumulative amount
                            transferred from a given wallet within a given
                            timeframe is greater than a specified limit.  The
                            aggregate amount evaluated is based only on the
                            wallet that triggered the policy.
                          title: TransactionAmountVelocity
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TransactionCountVelocity
                            configuration:
                              type: object
                              properties:
                                limit:
                                  type: number
                                  description: Count limit
                                timeframe:
                                  type: integer
                                  minimum: 1
                                  maximum: 43200
                                  description: >-
                                    Time period in minutes. Minimum 1, Maximum
                                    43,200.
                              required:
                                - limit
                                - timeframe
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule will trigger if the number of wallet
                            activities for a given wallet within a given
                            timeframe, is greater than a specified limit. The
                            aggregate number of transactions evaluated is based
                            only on the wallet that triggered the policy.
                          title: TransactionCountVelocity
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - ChainalysisTransactionPrescreening
                            configuration:
                              type: object
                              properties:
                                alerts:
                                  type: object
                                  properties:
                                    alertLevel:
                                      type: string
                                      enum:
                                        - LOW
                                        - MEDIUM
                                        - HIGH
                                        - SEVERE
                                    categoryIds:
                                      type: array
                                      items:
                                        type: integer
                                        exclusiveMinimum: 0
                                  required:
                                    - alertLevel
                                    - categoryIds
                                exposures:
                                  type: object
                                  properties:
                                    direct:
                                      type: object
                                      properties:
                                        categoryIds:
                                          type: array
                                          items:
                                            type: integer
                                            exclusiveMinimum: 0
                                      required:
                                        - categoryIds
                                  required:
                                    - direct
                                addresses:
                                  type: object
                                  properties:
                                    categoryIds:
                                      type: array
                                      items:
                                        type: integer
                                        exclusiveMinimum: 0
                                  required:
                                    - categoryIds
                                userIdTemplate:
                                  type: string
                                  minLength: 1
                                  maxLength: 50
                                  pattern: >-
                                    ^([a-zA-Z0-9_:-]|{wallet\.id}|{wallet\.externalId})+$
                                  default: dfns
                                  description: >-
                                    **Deprecated** — set `userIdTemplate` on the
                                    Chainalysis integration setting instead;
                                    when set there, the integration-level
                                    template takes precedence over this one.


                                    Value sent to Chainalysis as the "user ID".
                                    Used by Chainalysis for grouping transaction
                                    screenings.
                                      
                                    This template can include variables,
                                    included in brackets. The following
                                    variables are currently supported: 
                                    `{wallet.id}` and `{wallet.externalId}`.

                                    As an example, if you set `userIdTemplate:
                                    "dfns:{wallet.id}_{wallet.externalId}"`,
                                    when your wallet receives a transaction that
                                    gets screened by a Chainalysis policy, the
                                    "user ID" sent to Chainalysis will be
                                    `dfns:wa-xxx_yyy` (`wa-xxx` being the wallet
                                    ID, and `yyy` being the wallet external ID).
                                fallbackBehaviours:
                                  type: object
                                  properties:
                                    skipUnscreenableTransaction:
                                      type: boolean
                                    skipUnsupportedNetwork:
                                      type: boolean
                                    skipUnsupportedAsset:
                                      type: boolean
                                    skipChainalysisFailure:
                                      type: boolean
                                  required:
                                    - skipUnscreenableTransaction
                                    - skipUnsupportedNetwork
                                    - skipUnsupportedAsset
                                    - skipChainalysisFailure
                              required:
                                - alerts
                                - exposures
                                - addresses
                                - fallbackBehaviours
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >+

                            <Info>

                            This rule can only be used once the Chainalysis
                            integration is activated from the Dfns dashboard
                            settings. (see more on
                            [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                            integration page).

                            </Info>


                            It's a rule based on
                            [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                            KYT integration (Know-Your-Transaction). Upon
                            transfer attempt, we will first register the
                            transfer with Chainalysis (as a ["withdrawal
                            attempt"](https://docs.chainalysis.com/api/kyt/#registration-register-a-withdrawal-attempt)),
                            and fetch the screening results (alerts, exposures,
                            addresses detected). Based on the results, and the
                            configuration of this rule, the policy will be
                            triggered.


                            It's called "Pre"-screening, because the scanned
                            transaction is not on chain yet, it's still a
                            transaction attempt (before the transaction actually
                            make it on chain).


                            ```json

                            {
                              "rule": {
                                "kind": "ChainalysisTransactionPrescreening",
                                "configuration": {
                                  "alerts": {
                                    "alertLevel": "LOW",
                                    "categoryIds": []
                                  },
                                  "exposures": {
                                    "direct": {
                                      "categoryIds": []
                                    }
                                  },
                                  "addresses": {
                                    "categoryIds": []
                                  },
                                  "fallbackBehaviours": {
                                    "skipUnscreenableTransaction": false,
                                    "skipUnsupportedNetwork": false,
                                    "skipUnsupportedAsset": false,
                                    "skipChainalysisFailure": false
                                  }
                                }
                              }
                            }

                            ```


                            **Configuration**


                            | Property | Type | Description |

                            | --- | --- | --- |

                            | `alerts`<br><br>`.alertLevel`* | `string` |
                            Minimum alert level above which the rule should
                            trigger, if any [alert is returned in Chainalysis
                            results](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-alerts).
                            Can be `LOW`, `MEDIUM`, `HIGH`, or `SEVERE` |

                            | `alerts`<br><br>`.categoryIds`* | list of integers
                            | List of Chainalysis category IDs (see
                            [here](https://docs.chainalysis.com/api/kyt/#categories)).
                            If you leave this list empty, alerts of any category
                            will trigger the rule. Otherwise, if you only want
                            the rule to trigger on specific categories, you can
                            specify some in the list. |

                            |
                            `exposures`<br><br>`.direct`<br><br>`.categoryIds`*
                            | list of integers | List of Chainalysis category
                            IDs (see
                            [here](https://docs.chainalysis.com/api/kyt/#categories)).
                            If you leave this list empty, a [direct
                            exposure](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-direct-exposure)
                            of any category detected by chainalysis will trigger
                            the rule. Otherwise, if you only want the rule to
                            trigger on specific categories, you can specify some
                            in the list. |

                            | `addresses`<br><br>`.categoryIds`* | list of
                            integers | List of Chainalysis category IDs (see
                            [here](https://docs.chainalysis.com/api/kyt/#categories)).
                            If you leave this list empty, an
                            [address](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-address-identifications)
                            of any category identified by chainalysis will
                            trigger the rule. Otherwise, if you only want the
                            rule to trigger on specific categories, you can
                            specify some in the list. |

                            |
                            `fallbackBehaviours`<br><br>`.skipUnscreenableTransaction`*
                            | boolean | Behaviour if the wallet activity is not
                            screenable (eg. if it's a signature request of a
                            hash). If true, a transaction which is
                            "unscreenable" will just be skipped, and policy will
                            not trigger |

                            | `fallbackBehaviours.skipUnsupportedNetwork`* |
                            boolean | Behaviour if the wallet activity is on a
                            network not supported by chainalysis, or not yet
                            supported in the dfns-chainalysis integration. If
                            true, an unsupported network will just be skipped,
                            and policy will not trigger |

                            | `fallbackBehaviours.skipUnsupportedAsset`* |
                            boolean | Behaviour if the wallet activity is with a
                            asset not supported by chainalysis, or not yet
                            supported in the dfns-chainalysis integration. If
                            true, an unsupported asset will just be skipped, and
                            policy will not trigger |

                            | `fallbackBehaviours.skipChainalysisFailure`* |
                            boolean | Behaviour if any issue with Chainalysis
                            calls (timeout, results took too long, rate limiting
                            errors, any error). If true, will skip if any error
                            happens |

                          title: ChainalysisTransactionPrescreening
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - GlobalLedgerTransactionPrescreening
                            configuration:
                              type: object
                              properties:
                                riskScoreThreshold:
                                  type: integer
                                  minimum: 0
                                  maximum: 100
                                  description: >-
                                    Risk score threshold (0-100). Policy
                                    triggers if address/transaction risk score
                                    >= threshold
                                fallbackBehaviours:
                                  type: object
                                  properties:
                                    skipUnscreenableTransaction:
                                      type: boolean
                                      description: >-
                                        skip all wallet requests that cannot be
                                        screened (eg. raw signatures)
                                    skipUnsupportedNetwork:
                                      type: boolean
                                      description: >-
                                        skip transfer requests to a network not
                                        supported yet in our GlobalLedger
                                        integration
                                    skipUnsupportedAsset:
                                      type: boolean
                                      description: >-
                                        skip transfer requests of an asset not
                                        supported by our GlobalLedger
                                        integration
                                    skipGlobalLedgerFailure:
                                      type: boolean
                                      description: >-
                                        skips any errors from GlobalLedger API
                                        request
                                  required:
                                    - skipUnscreenableTransaction
                                    - skipUnsupportedNetwork
                                    - skipUnsupportedAsset
                                    - skipGlobalLedgerFailure
                              required:
                                - riskScoreThreshold
                                - fallbackBehaviours
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule uses GlobalLedger KYT for pre-screening
                            outgoing transfers by checking the destination
                            address risk score.


                            Upon transfer attempt, we will query GlobalLedger's
                            address risk API, and check if the risk score
                            (0-100) is at or above the configured threshold, or
                            if any alerts show up. If so, the policy will be
                            triggered.


                            It's called "Pre"-screening, because the scanned
                            transaction is not on chain yet, it's still a
                            transaction attempt.
                          title: GlobalLedgerTransactionPrescreening
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TravelRuleTransactionPrescreening
                            configuration:
                              type: object
                              properties:
                                vendor:
                                  type: string
                                  enum:
                                    - Notabene
                                autoTriggerTimeoutSeconds:
                                  type: integer
                                  minimum: 0
                                autoClearAfterDeliveredTimeoutSeconds:
                                  type: integer
                                  minimum: 0
                              required:
                                - vendor
                                - autoTriggerTimeoutSeconds
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule can only be used once the Notabene
                            integration is activated from the Dfns dashboard
                            settings (see more on
                            [Notabene](https://docs.dfns.co/integrations/travel-rule/notabene)
                            integration page).
                                
                                It's a rule based on [Notabene Travel Rule](https://docs.dfns.co/integrations/travel-rule/notabene) integration. It ***ONLY*** applies to Dfns [Transfer Asset](https://docs.dfns.co/api-reference/wallets/transfer-asset) Api Calls. It is NOT supported for Transfers initiated via the dashboard. Upon transfer attempt with an optional [TravelRule](https://docs.dfns.co/api-reference/wallets/transfer-asset#body-travel-rule) payload, we will call Notabene's APIs on your behalf to both confirm the validity of the travel rule message and submit it for processing. Dfns then waits for a response from the counterparty (for custodial transfers) or Notabene (for non-custodial transfers).

                            It's called "Pre"-screening, because the transaction
                            is not on chain yet, it's still a transaction
                            attempt (before the transaction actually make it on
                            chain).
                          title: TravelRuleTransactionPrescreening
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - NoAction
                          required:
                            - kind
                          additionalProperties: false
                          description: |2-

                                This action kind means that nothing will happen after policy rule evaluation. It's meant to be used with policy rules "`ChainalysisTransactionPrescreening`" or "`ChainalysisTransactionScreening`". This action is for when you just want the KYT analysis rule to be run, and then if triggered, those result returned in a `policy.triggered` [Webhook Event](https://docs.dfns.co/api-reference/webhook-events).

                            ```json
                            {
                              "action": {
                                "kind": "NoAction"
                              }
                            }
                            ```
                                
                          title: NoAction
                    filters:
                      type: object
                      properties:
                        walletId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                        walletTags:
                          type: object
                          properties:
                            hasAny:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                            hasAll:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          additionalProperties: false
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >
                    A "`Wallets:Sign`" activity represents any activity which
                    involves signing with a wallet. Currently, in our API, these
                    can be:


                    * a Transfer Request (created using the endpoint [Transfer
                    Asset from
                    Wallet](https://docs.dfns.co/api-reference/wallets/transfer-asset))

                    * a Transaction Request (created using the endpoint
                    [Broadcast Transaction from
                    Wallet](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction))

                    * a Signature Request (created using the endpoint [Generate
                    Signature from
                    Wallet](https://docs.dfns.co/api-reference/keys/generate-signature))
                  title: Wallets:Sign
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Wallets:IncomingTransaction
                    rule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - ChainalysisTransactionScreening
                            configuration:
                              type: object
                              properties:
                                alerts:
                                  type: object
                                  properties:
                                    alertLevel:
                                      type: string
                                      enum:
                                        - LOW
                                        - MEDIUM
                                        - HIGH
                                        - SEVERE
                                    categoryIds:
                                      type: array
                                      items:
                                        type: integer
                                        exclusiveMinimum: 0
                                  required:
                                    - alertLevel
                                    - categoryIds
                                exposures:
                                  type: object
                                  properties:
                                    direct:
                                      type: object
                                      properties:
                                        categoryIds:
                                          type: array
                                          items:
                                            type: integer
                                            exclusiveMinimum: 0
                                      required:
                                        - categoryIds
                                  required:
                                    - direct
                                userIdTemplate:
                                  type: string
                                  minLength: 1
                                  maxLength: 50
                                  pattern: >-
                                    ^([a-zA-Z0-9_:-]|{wallet\.id}|{wallet\.externalId})+$
                                  default: dfns
                                  description: >-
                                    **Deprecated** — set `userIdTemplate` on the
                                    Chainalysis integration setting instead;
                                    when set there, the integration-level
                                    template takes precedence over this one.


                                    Value sent to Chainalysis as the "user ID".
                                    Used by Chainalysis for grouping transaction
                                    screenings.
                                      
                                    This template can include variables,
                                    included in brackets. The following
                                    variables are currently supported: 
                                    `{wallet.id}` and `{wallet.externalId}`.

                                    As an example, if you set `userIdTemplate:
                                    "dfns:{wallet.id}_{wallet.externalId}"`,
                                    when your wallet receives a transaction that
                                    gets screened by a Chainalysis policy, the
                                    "user ID" sent to Chainalysis will be
                                    `dfns:wa-xxx_yyy` (`wa-xxx` being the wallet
                                    ID, and `yyy` being the wallet external ID).
                                fallbackBehaviours:
                                  type: object
                                  properties:
                                    skipUnscreenableTransaction:
                                      type: boolean
                                    skipUnsupportedNetwork:
                                      type: boolean
                                    skipUnsupportedAsset:
                                      type: boolean
                                    skipChainalysisFailure:
                                      type: boolean
                                  required:
                                    - skipUnscreenableTransaction
                                    - skipUnsupportedNetwork
                                    - skipUnsupportedAsset
                                    - skipChainalysisFailure
                              required:
                                - alerts
                                - exposures
                                - fallbackBehaviours
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >

                            <Info>

                            This rule can only be used once the Chainalysis
                            integration is activated from the Dfns dashboard
                            settings. (see more on
                            [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                            integration page).

                            </Info>


                            This rule can be used on a policy of `activityKind`
                            = `Wallets:IncomingTransaction`, and with the action
                            kind `NoAction`. It's a rule based on Chainalysis
                            KYT integration (Know-Your-Transaction). Upon an
                            incoming transaction detectedby our indexers, we
                            will [register the transfer with
                            Chainalysis](https://docs.chainalysis.com/api/kyt/#registration-register-a-transfer),
                            and fetch the results of the analysis (alerts &
                            exposures detected). Based on the results, and the
                            configuration of this rule, the policy will be
                            triggered.


                            The shape of the rule is almost like the
                            `ChainalysisTransactionPrescreening` rule, expect
                            the the `address` property is not supported.


                            ```json

                            {
                              "rule": {
                                "kind": "ChainalysisTransactionPrescreening",
                                "configuration": {
                                  "alerts": {
                                    "alertLevel": "LOW",
                                    "categoryIds": []
                                  },
                                  "exposures": {
                                    "direct": {
                                      "categoryIds": []
                                    }
                                  },
                                  "fallbackBehaviours": {
                                    "skipUnscreenableTransaction": false,
                                    "skipUnsupportedNetwork": false,
                                    "skipUnsupportedAsset": false,
                                    "skipChainalysisFailure": false
                                  }
                                }
                              }
                            }

                            ```


                            **Configuration**


                            Please refer to the configuration for the
                            `ChainalysisTransactionPrescreening` rule.
                          title: ChainalysisTransactionScreening
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - NoAction
                          required:
                            - kind
                          additionalProperties: false
                          description: |2-

                                This action kind means that nothing will happen after policy rule evaluation. It's meant to be used with policy rules "`ChainalysisTransactionPrescreening`" or "`ChainalysisTransactionScreening`". This action is for when you just want the KYT analysis rule to be run, and then if triggered, those result returned in a `policy.triggered` [Webhook Event](https://docs.dfns.co/api-reference/webhook-events).

                            ```json
                            {
                              "action": {
                                "kind": "NoAction"
                              }
                            }
                            ```
                                
                          title: NoAction
                    filters:
                      type: object
                      properties:
                        walletId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                        walletTags:
                          type: object
                          properties:
                            hasAny:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                            hasAll:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          additionalProperties: false
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >-
                    A "`Wallets:IncomingTransaction`" activity represents when
                    our indexers detected an incoming transaction into a wallet.
                    This activity kind has to be used with the rule kind
                    "`ChainalysisTransactionScreening`" (see more on
                    [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                    integration page), and the action kind "`NoAction`", meaning
                    that no actual action will be taken as a result of the
                    Chainalysis screening, other than notifying you through a
                    webhook event if the policy is triggered. The reason for
                    that, is that the incoming transaction is already on-chain,
                    so the funds are already in the wallet, we cannot block that
                    transfer on chain.
                  title: Wallets:IncomingTransaction
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
  /v2/policy-approvals/{approvalId}/decisions:
    post:
      summary: Create Approval Decision
      tags:
        - Policies
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Approve or Reject an Approval request.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Policies:Approvals:Approve`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: approvalId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                value:
                  type: string
                  enum:
                    - Approved
                    - Denied
                reason:
                  type: string
                  maxLength: 1000
              required:
                - value
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyApproval'
  /v2/policies:
    post:
      summary: Create Policy
      tags:
        - Policies
      security:
        - authenticationToken: []
          userActionSignature: []
      description: |-
        Setup a new Policy for your organization.
          
          Every policy requires a rule to be specified. Upon policy evaluation, the configuration specified in the rule will be used to determine whether the policy should trigger or not for a given activity.
          
          By exposing controls on permissions and policies, Dfns enables the specification of an admin quorum to approve sensitive actions which could change system governance.   Note Dfns does not expose a separate "admin quorum" concept like some of our competitors - we simply enable this use case as another configuration of the policy engine itself.   This was chosen to promote flexibility as not every customer will have the same requirements around creating and managing admin quorums.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Policies:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Registry:Addresses:Modify
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                    filters:
                      type: object
                      properties: {}
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: ''
                  title: Registry:Addresses:Modify
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Permissions:Assign
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                    filters:
                      type: object
                      properties:
                        permissionId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                      required:
                        - permissionId
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >-
                    A "`Permissions:Assign`" activity represents any activity
                    which involves assigning a permission (or revoking it, aka
                    "deleting a permission assignment"). These activities are
                    Assignment change requests, created as a result of calling
                    either:


                    * the endpoint [Assign
                    Permission](https://docs.dfns.co/api-reference/permissions/assign-permission)

                    * the endpoint [Revoke
                    Permission](https://docs.dfns.co/api-reference/permissions/revoke-permission)
                  title: Permissions:Assign
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Permissions:Modify
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                    filters:
                      type: object
                      properties:
                        permissionId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                      required:
                        - permissionId
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >-
                    A "`Permissions:Modify`" activity represents any activity
                    which involves updating or archiving a permission. These
                    activities are Permission change requests, created as a
                    result of calling either:


                    * the endpoint [Update
                    Permission](https://docs.dfns.co/api-reference/permissions/update-permission)

                    * the endpoint [Delete
                    Permission](https://docs.dfns.co/api-reference/permissions/archive-permission)
                  title: Permissions:Modify
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Policies:Modify
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - RequestApproval
                        approvalGroups:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                              quorum:
                                type: integer
                                minimum: 1
                              approvers:
                                type: object
                                properties:
                                  userId:
                                    type: object
                                    properties:
                                      in:
                                        type: array
                                        items:
                                          type: string
                                          minLength: 1
                                        minItems: 1
                                        maxItems: 100
                                    required:
                                      - in
                                    additionalProperties: false
                                additionalProperties: false
                              initiatorCanApprove:
                                type: boolean
                                description: >-
                                  Whether the initiator of the activity can
                                  participate in the approval.
                              serviceAccountsCanApprove:
                                type: boolean
                                description: >-
                                  Whether service accounts can participate in
                                  the approval for this group.
                            required:
                              - quorum
                              - approvers
                            additionalProperties: false
                          minItems: 1
                        autoRejectTimeout:
                          type:
                            - integer
                            - 'null'
                          minimum: 1
                      required:
                        - kind
                        - approvalGroups
                      additionalProperties: false
                      description: >-

                        This action means that activity will first require an
                        Approval process to be completed before it can  be
                        executed (or be aborted if someone rejects it during the
                        approval process).


                        One or several groups of approvers need to be specified.
                        These groups define who is allowed to approve / reject
                        an activity.


                        The activity will only be executed if all approver
                        groups reach their "quorum" of approvals. Otherwise, if
                        any one user within any approver group rejects, then the
                        activity is aborted and the call is not executed.


                        The example below shows a `RequestApproval` action,
                        configured with one approval group requiring 2 approvals
                        amongst three specific users.


                        ```json

                        {
                          "action": {
                            "kind": "RequestApproval",
                            "autoRejectTimeout": 60, // minutes
                            "approvalGroups": [
                              {
                                "name": "Admins",
                                "quorum": 2, // only 2 approvers required in that group 
                                "approvers": {
                                  "userId": {
                                    "in": ["us-...1", "us-...2", "us-...3"],
                                  }
                                }
                              }
                            ],

                          }
                        }

                        ```


                        **Don't lock yourself up**


                        By default, users cannot approve an activity they
                        initiated themselves, even if they are in an approval
                        group. To allow this, you must set `initiatorCanApprove:
                        true`.


                        *Example 1:* For any wallet transfer, a policy is setup
                        to require approval from **1 specific admin user** (eg.
                        the CEO). `initiatorCanApprove` was not set to `true`.
                        If the CEO himself initiates a transfer, no-one can
                        approve his transfer and it's stuck.


                        *Example 2:* Company has only 3 users. A policy is setup
                        to require approval from **any 3 users** (`quorum: 3`)
                        for any modification of a policy. `initiatorCanApprove`
                        was not set to `true`. In this case, they are locked,
                        and the policy cannot be modified: whoever requests a
                        modification cannot approve, and the policy is therefore
                        always missing one approver. To unlock, they would need
                        to invite a new user and give him the rights to approve
                        as well.
                            
                      title: RequestApproval
                    filters:
                      type: object
                      properties:
                        policyId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                      required:
                        - policyId
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >
                    A "`Policies:Modify`" activity represents any activity which
                    involves updating or archiving a policy. These activities
                    are Policy change requests, created as a result of calling
                    either:


                    * the endpoint [Update
                    Policy](https://docs.dfns.co/api-reference/policies/update-policy)

                    * the endpoint [Delete
                    Policy](https://docs.dfns.co/api-reference/policies/delete-policy)
                  title: Policies:Modify
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Registry:ContractSchemas:Modify
                    rule:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - AlwaysTrigger
                        configuration:
                          type: object
                          properties: {}
                          additionalProperties: false
                      required:
                        - kind
                      additionalProperties: false
                      description: >-
                        This rule will always be triggered, meaning that if this
                        rule is defined on a policy, the policy will always
                        trigger the policy action, regardless of the activity
                        details.
                      title: AlwaysTrigger
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                    filters:
                      type: object
                      properties: {}
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >-
                    A "`Registry:ContractSchemas:Modify`" activity represents
                    any activity which modifies a Contract Schema registered for
                    execution in the Dfns Dashboard
                  title: Registry:ContractSchemas:Modify
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Wallets:Sign
                    rule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - AlwaysTrigger
                            configuration:
                              type: object
                              properties: {}
                              additionalProperties: false
                          required:
                            - kind
                          additionalProperties: false
                          description: >-
                            This rule will always be triggered, meaning that if
                            this rule is defined on a policy, the policy will
                            always trigger the policy action, regardless of the
                            activity details.
                          title: AlwaysTrigger
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TransactionRecipientWhitelist
                            configuration:
                              type: object
                              properties:
                                addresses:
                                  type: array
                                  items:
                                    type: string
                                    minLength: 1
                                  description: Whitelisted recipient addresses
                              required:
                                - addresses
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule will trigger if the destination address
                            *is NOT whitelisted*.
                          title: TransactionRecipientWhitelist
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TransactionAmountLimit
                            configuration:
                              type: object
                              properties:
                                limit:
                                  type: number
                                  description: Amount limit in `currency`
                                currency:
                                  type: string
                                  enum: *ref_127
                                  description: Fiat currency, currently only `USD`
                              required:
                                - limit
                                - currency
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule will trigger if the wallet activity
                            detected is transferring some value which amount is
                            greater than a given limit. Note: If the fiat amount
                            of the wallet activity cannot be evaluated for any
                            reason (eg. market prices are not available, or eg.
                            the amount cannot be inferred from a wallet
                            signature request, etc.), by default the rule will
                            trigger the policy (this is called "failing closed"
                            and is generally considered a security best
                            practice).
                          title: TransactionAmountLimit
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TransactionAmountVelocity
                            configuration:
                              type: object
                              properties:
                                limit:
                                  type: number
                                  description: Amount limit in `currency`
                                currency:
                                  type: string
                                  enum: *ref_128
                                  description: Currency for the amount limit above
                                timeframe:
                                  type: integer
                                  minimum: 1
                                  maximum: 43200
                                  description: >-
                                    Time period in minutes. Minimum 1, Maximum
                                    43,200.
                              required:
                                - limit
                                - currency
                                - timeframe
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule will trigger if the cumulative amount
                            transferred from a given wallet within a given
                            timeframe is greater than a specified limit.  The
                            aggregate amount evaluated is based only on the
                            wallet that triggered the policy.
                          title: TransactionAmountVelocity
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TransactionCountVelocity
                            configuration:
                              type: object
                              properties:
                                limit:
                                  type: number
                                  description: Count limit
                                timeframe:
                                  type: integer
                                  minimum: 1
                                  maximum: 43200
                                  description: >-
                                    Time period in minutes. Minimum 1, Maximum
                                    43,200.
                              required:
                                - limit
                                - timeframe
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule will trigger if the number of wallet
                            activities for a given wallet within a given
                            timeframe, is greater than a specified limit. The
                            aggregate number of transactions evaluated is based
                            only on the wallet that triggered the policy.
                          title: TransactionCountVelocity
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - ChainalysisTransactionPrescreening
                            configuration:
                              type: object
                              properties:
                                alerts:
                                  type: object
                                  properties:
                                    alertLevel:
                                      type: string
                                      enum:
                                        - LOW
                                        - MEDIUM
                                        - HIGH
                                        - SEVERE
                                    categoryIds:
                                      type: array
                                      items:
                                        type: integer
                                        exclusiveMinimum: 0
                                  required:
                                    - alertLevel
                                    - categoryIds
                                exposures:
                                  type: object
                                  properties:
                                    direct:
                                      type: object
                                      properties:
                                        categoryIds:
                                          type: array
                                          items:
                                            type: integer
                                            exclusiveMinimum: 0
                                      required:
                                        - categoryIds
                                  required:
                                    - direct
                                addresses:
                                  type: object
                                  properties:
                                    categoryIds:
                                      type: array
                                      items:
                                        type: integer
                                        exclusiveMinimum: 0
                                  required:
                                    - categoryIds
                                userIdTemplate:
                                  type: string
                                  minLength: 1
                                  maxLength: 50
                                  pattern: >-
                                    ^([a-zA-Z0-9_:-]|{wallet\.id}|{wallet\.externalId})+$
                                  default: dfns
                                  description: >-
                                    **Deprecated** — set `userIdTemplate` on the
                                    Chainalysis integration setting instead;
                                    when set there, the integration-level
                                    template takes precedence over this one.


                                    Value sent to Chainalysis as the "user ID".
                                    Used by Chainalysis for grouping transaction
                                    screenings.
                                      
                                    This template can include variables,
                                    included in brackets. The following
                                    variables are currently supported: 
                                    `{wallet.id}` and `{wallet.externalId}`.

                                    As an example, if you set `userIdTemplate:
                                    "dfns:{wallet.id}_{wallet.externalId}"`,
                                    when your wallet receives a transaction that
                                    gets screened by a Chainalysis policy, the
                                    "user ID" sent to Chainalysis will be
                                    `dfns:wa-xxx_yyy` (`wa-xxx` being the wallet
                                    ID, and `yyy` being the wallet external ID).
                                fallbackBehaviours:
                                  type: object
                                  properties:
                                    skipUnscreenableTransaction:
                                      type: boolean
                                    skipUnsupportedNetwork:
                                      type: boolean
                                    skipUnsupportedAsset:
                                      type: boolean
                                    skipChainalysisFailure:
                                      type: boolean
                                  required:
                                    - skipUnscreenableTransaction
                                    - skipUnsupportedNetwork
                                    - skipUnsupportedAsset
                                    - skipChainalysisFailure
                              required:
                                - alerts
                                - exposures
                                - addresses
                                - fallbackBehaviours
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >+

                            <Info>

                            This rule can only be used once the Chainalysis
                            integration is activated from the Dfns dashboard
                            settings. (see more on
                            [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                            integration page).

                            </Info>


                            It's a rule based on
                            [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                            KYT integration (Know-Your-Transaction). Upon
                            transfer attempt, we will first register the
                            transfer with Chainalysis (as a ["withdrawal
                            attempt"](https://docs.chainalysis.com/api/kyt/#registration-register-a-withdrawal-attempt)),
                            and fetch the screening results (alerts, exposures,
                            addresses detected). Based on the results, and the
                            configuration of this rule, the policy will be
                            triggered.


                            It's called "Pre"-screening, because the scanned
                            transaction is not on chain yet, it's still a
                            transaction attempt (before the transaction actually
                            make it on chain).


                            ```json

                            {
                              "rule": {
                                "kind": "ChainalysisTransactionPrescreening",
                                "configuration": {
                                  "alerts": {
                                    "alertLevel": "LOW",
                                    "categoryIds": []
                                  },
                                  "exposures": {
                                    "direct": {
                                      "categoryIds": []
                                    }
                                  },
                                  "addresses": {
                                    "categoryIds": []
                                  },
                                  "fallbackBehaviours": {
                                    "skipUnscreenableTransaction": false,
                                    "skipUnsupportedNetwork": false,
                                    "skipUnsupportedAsset": false,
                                    "skipChainalysisFailure": false
                                  }
                                }
                              }
                            }

                            ```


                            **Configuration**


                            | Property | Type | Description |

                            | --- | --- | --- |

                            | `alerts`<br><br>`.alertLevel`* | `string` |
                            Minimum alert level above which the rule should
                            trigger, if any [alert is returned in Chainalysis
                            results](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-alerts).
                            Can be `LOW`, `MEDIUM`, `HIGH`, or `SEVERE` |

                            | `alerts`<br><br>`.categoryIds`* | list of integers
                            | List of Chainalysis category IDs (see
                            [here](https://docs.chainalysis.com/api/kyt/#categories)).
                            If you leave this list empty, alerts of any category
                            will trigger the rule. Otherwise, if you only want
                            the rule to trigger on specific categories, you can
                            specify some in the list. |

                            |
                            `exposures`<br><br>`.direct`<br><br>`.categoryIds`*
                            | list of integers | List of Chainalysis category
                            IDs (see
                            [here](https://docs.chainalysis.com/api/kyt/#categories)).
                            If you leave this list empty, a [direct
                            exposure](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-direct-exposure)
                            of any category detected by chainalysis will trigger
                            the rule. Otherwise, if you only want the rule to
                            trigger on specific categories, you can specify some
                            in the list. |

                            | `addresses`<br><br>`.categoryIds`* | list of
                            integers | List of Chainalysis category IDs (see
                            [here](https://docs.chainalysis.com/api/kyt/#categories)).
                            If you leave this list empty, an
                            [address](https://docs.chainalysis.com/api/kyt/#withdrawal-attempts-get-address-identifications)
                            of any category identified by chainalysis will
                            trigger the rule. Otherwise, if you only want the
                            rule to trigger on specific categories, you can
                            specify some in the list. |

                            |
                            `fallbackBehaviours`<br><br>`.skipUnscreenableTransaction`*
                            | boolean | Behaviour if the wallet activity is not
                            screenable (eg. if it's a signature request of a
                            hash). If true, a transaction which is
                            "unscreenable" will just be skipped, and policy will
                            not trigger |

                            | `fallbackBehaviours.skipUnsupportedNetwork`* |
                            boolean | Behaviour if the wallet activity is on a
                            network not supported by chainalysis, or not yet
                            supported in the dfns-chainalysis integration. If
                            true, an unsupported network will just be skipped,
                            and policy will not trigger |

                            | `fallbackBehaviours.skipUnsupportedAsset`* |
                            boolean | Behaviour if the wallet activity is with a
                            asset not supported by chainalysis, or not yet
                            supported in the dfns-chainalysis integration. If
                            true, an unsupported asset will just be skipped, and
                            policy will not trigger |

                            | `fallbackBehaviours.skipChainalysisFailure`* |
                            boolean | Behaviour if any issue with Chainalysis
                            calls (timeout, results took too long, rate limiting
                            errors, any error). If true, will skip if any error
                            happens |

                          title: ChainalysisTransactionPrescreening
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - GlobalLedgerTransactionPrescreening
                            configuration:
                              type: object
                              properties:
                                riskScoreThreshold:
                                  type: integer
                                  minimum: 0
                                  maximum: 100
                                  description: >-
                                    Risk score threshold (0-100). Policy
                                    triggers if address/transaction risk score
                                    >= threshold
                                fallbackBehaviours:
                                  type: object
                                  properties:
                                    skipUnscreenableTransaction:
                                      type: boolean
                                      description: >-
                                        skip all wallet requests that cannot be
                                        screened (eg. raw signatures)
                                    skipUnsupportedNetwork:
                                      type: boolean
                                      description: >-
                                        skip transfer requests to a network not
                                        supported yet in our GlobalLedger
                                        integration
                                    skipUnsupportedAsset:
                                      type: boolean
                                      description: >-
                                        skip transfer requests of an asset not
                                        supported by our GlobalLedger
                                        integration
                                    skipGlobalLedgerFailure:
                                      type: boolean
                                      description: >-
                                        skips any errors from GlobalLedger API
                                        request
                                  required:
                                    - skipUnscreenableTransaction
                                    - skipUnsupportedNetwork
                                    - skipUnsupportedAsset
                                    - skipGlobalLedgerFailure
                              required:
                                - riskScoreThreshold
                                - fallbackBehaviours
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule uses GlobalLedger KYT for pre-screening
                            outgoing transfers by checking the destination
                            address risk score.


                            Upon transfer attempt, we will query GlobalLedger's
                            address risk API, and check if the risk score
                            (0-100) is at or above the configured threshold, or
                            if any alerts show up. If so, the policy will be
                            triggered.


                            It's called "Pre"-screening, because the scanned
                            transaction is not on chain yet, it's still a
                            transaction attempt.
                          title: GlobalLedgerTransactionPrescreening
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - TravelRuleTransactionPrescreening
                            configuration:
                              type: object
                              properties:
                                vendor:
                                  type: string
                                  enum:
                                    - Notabene
                                autoTriggerTimeoutSeconds:
                                  type: integer
                                  minimum: 0
                                autoClearAfterDeliveredTimeoutSeconds:
                                  type: integer
                                  minimum: 0
                              required:
                                - vendor
                                - autoTriggerTimeoutSeconds
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >-
                            This rule can only be used once the Notabene
                            integration is activated from the Dfns dashboard
                            settings (see more on
                            [Notabene](https://docs.dfns.co/integrations/travel-rule/notabene)
                            integration page).
                                
                                It's a rule based on [Notabene Travel Rule](https://docs.dfns.co/integrations/travel-rule/notabene) integration. It ***ONLY*** applies to Dfns [Transfer Asset](https://docs.dfns.co/api-reference/wallets/transfer-asset) Api Calls. It is NOT supported for Transfers initiated via the dashboard. Upon transfer attempt with an optional [TravelRule](https://docs.dfns.co/api-reference/wallets/transfer-asset#body-travel-rule) payload, we will call Notabene's APIs on your behalf to both confirm the validity of the travel rule message and submit it for processing. Dfns then waits for a response from the counterparty (for custodial transfers) or Notabene (for non-custodial transfers).

                            It's called "Pre"-screening, because the transaction
                            is not on chain yet, it's still a transaction
                            attempt (before the transaction actually make it on
                            chain).
                          title: TravelRuleTransactionPrescreening
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - RequestApproval
                            approvalGroups:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  quorum:
                                    type: integer
                                    minimum: 1
                                  approvers:
                                    type: object
                                    properties:
                                      userId:
                                        type: object
                                        properties:
                                          in:
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                            minItems: 1
                                            maxItems: 100
                                        required:
                                          - in
                                        additionalProperties: false
                                    additionalProperties: false
                                  initiatorCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether the initiator of the activity can
                                      participate in the approval.
                                  serviceAccountsCanApprove:
                                    type: boolean
                                    description: >-
                                      Whether service accounts can participate
                                      in the approval for this group.
                                required:
                                  - quorum
                                  - approvers
                                additionalProperties: false
                              minItems: 1
                            autoRejectTimeout:
                              type:
                                - integer
                                - 'null'
                              minimum: 1
                          required:
                            - kind
                            - approvalGroups
                          additionalProperties: false
                          description: >-

                            This action means that activity will first require
                            an Approval process to be completed before it can 
                            be executed (or be aborted if someone rejects it
                            during the approval process).


                            One or several groups of approvers need to be
                            specified. These groups define who is allowed to
                            approve / reject an activity.


                            The activity will only be executed if all approver
                            groups reach their "quorum" of approvals. Otherwise,
                            if any one user within any approver group rejects,
                            then the activity is aborted and the call is not
                            executed.


                            The example below shows a `RequestApproval` action,
                            configured with one approval group requiring 2
                            approvals amongst three specific users.


                            ```json

                            {
                              "action": {
                                "kind": "RequestApproval",
                                "autoRejectTimeout": 60, // minutes
                                "approvalGroups": [
                                  {
                                    "name": "Admins",
                                    "quorum": 2, // only 2 approvers required in that group 
                                    "approvers": {
                                      "userId": {
                                        "in": ["us-...1", "us-...2", "us-...3"],
                                      }
                                    }
                                  }
                                ],

                              }
                            }

                            ```


                            **Don't lock yourself up**


                            By default, users cannot approve an activity they
                            initiated themselves, even if they are in an
                            approval group. To allow this, you must set
                            `initiatorCanApprove: true`.


                            *Example 1:* For any wallet transfer, a policy is
                            setup to require approval from **1 specific admin
                            user** (eg. the CEO). `initiatorCanApprove` was not
                            set to `true`. If the CEO himself initiates a
                            transfer, no-one can approve his transfer and it's
                            stuck.


                            *Example 2:* Company has only 3 users. A policy is
                            setup to require approval from **any 3 users**
                            (`quorum: 3`) for any modification of a policy.
                            `initiatorCanApprove` was not set to `true`. In this
                            case, they are locked, and the policy cannot be
                            modified: whoever requests a modification cannot
                            approve, and the policy is therefore always missing
                            one approver. To unlock, they would need to invite a
                            new user and give him the rights to approve as well.
                                
                          title: RequestApproval
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Block
                          required:
                            - kind
                          additionalProperties: false
                          description: >
                            This action means that the activity will be blocked
                            if the policy is triggered.


                            ```json

                            {
                              "action": {
                                "kind": "Block"
                              }
                            }

                            ```
                          title: Block
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - NoAction
                          required:
                            - kind
                          additionalProperties: false
                          description: |2-

                                This action kind means that nothing will happen after policy rule evaluation. It's meant to be used with policy rules "`ChainalysisTransactionPrescreening`" or "`ChainalysisTransactionScreening`". This action is for when you just want the KYT analysis rule to be run, and then if triggered, those result returned in a `policy.triggered` [Webhook Event](https://docs.dfns.co/api-reference/webhook-events).

                            ```json
                            {
                              "action": {
                                "kind": "NoAction"
                              }
                            }
                            ```
                                
                          title: NoAction
                    filters:
                      type: object
                      properties:
                        walletId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                        walletTags:
                          type: object
                          properties:
                            hasAny:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                            hasAll:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          additionalProperties: false
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >
                    A "`Wallets:Sign`" activity represents any activity which
                    involves signing with a wallet. Currently, in our API, these
                    can be:


                    * a Transfer Request (created using the endpoint [Transfer
                    Asset from
                    Wallet](https://docs.dfns.co/api-reference/wallets/transfer-asset))

                    * a Transaction Request (created using the endpoint
                    [Broadcast Transaction from
                    Wallet](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction))

                    * a Signature Request (created using the endpoint [Generate
                    Signature from
                    Wallet](https://docs.dfns.co/api-reference/keys/generate-signature))
                  title: Wallets:Sign
                - type: object
                  properties:
                    name:
                      type: string
                    activityKind:
                      type: string
                      enum:
                        - Wallets:IncomingTransaction
                    rule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - ChainalysisTransactionScreening
                            configuration:
                              type: object
                              properties:
                                alerts:
                                  type: object
                                  properties:
                                    alertLevel:
                                      type: string
                                      enum:
                                        - LOW
                                        - MEDIUM
                                        - HIGH
                                        - SEVERE
                                    categoryIds:
                                      type: array
                                      items:
                                        type: integer
                                        exclusiveMinimum: 0
                                  required:
                                    - alertLevel
                                    - categoryIds
                                exposures:
                                  type: object
                                  properties:
                                    direct:
                                      type: object
                                      properties:
                                        categoryIds:
                                          type: array
                                          items:
                                            type: integer
                                            exclusiveMinimum: 0
                                      required:
                                        - categoryIds
                                  required:
                                    - direct
                                userIdTemplate:
                                  type: string
                                  minLength: 1
                                  maxLength: 50
                                  pattern: >-
                                    ^([a-zA-Z0-9_:-]|{wallet\.id}|{wallet\.externalId})+$
                                  default: dfns
                                  description: >-
                                    **Deprecated** — set `userIdTemplate` on the
                                    Chainalysis integration setting instead;
                                    when set there, the integration-level
                                    template takes precedence over this one.


                                    Value sent to Chainalysis as the "user ID".
                                    Used by Chainalysis for grouping transaction
                                    screenings.
                                      
                                    This template can include variables,
                                    included in brackets. The following
                                    variables are currently supported: 
                                    `{wallet.id}` and `{wallet.externalId}`.

                                    As an example, if you set `userIdTemplate:
                                    "dfns:{wallet.id}_{wallet.externalId}"`,
                                    when your wallet receives a transaction that
                                    gets screened by a Chainalysis policy, the
                                    "user ID" sent to Chainalysis will be
                                    `dfns:wa-xxx_yyy` (`wa-xxx` being the wallet
                                    ID, and `yyy` being the wallet external ID).
                                fallbackBehaviours:
                                  type: object
                                  properties:
                                    skipUnscreenableTransaction:
                                      type: boolean
                                    skipUnsupportedNetwork:
                                      type: boolean
                                    skipUnsupportedAsset:
                                      type: boolean
                                    skipChainalysisFailure:
                                      type: boolean
                                  required:
                                    - skipUnscreenableTransaction
                                    - skipUnsupportedNetwork
                                    - skipUnsupportedAsset
                                    - skipChainalysisFailure
                              required:
                                - alerts
                                - exposures
                                - fallbackBehaviours
                              additionalProperties: false
                          required:
                            - kind
                            - configuration
                          additionalProperties: false
                          description: >

                            <Info>

                            This rule can only be used once the Chainalysis
                            integration is activated from the Dfns dashboard
                            settings. (see more on
                            [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                            integration page).

                            </Info>


                            This rule can be used on a policy of `activityKind`
                            = `Wallets:IncomingTransaction`, and with the action
                            kind `NoAction`. It's a rule based on Chainalysis
                            KYT integration (Know-Your-Transaction). Upon an
                            incoming transaction detectedby our indexers, we
                            will [register the transfer with
                            Chainalysis](https://docs.chainalysis.com/api/kyt/#registration-register-a-transfer),
                            and fetch the results of the analysis (alerts &
                            exposures detected). Based on the results, and the
                            configuration of this rule, the policy will be
                            triggered.


                            The shape of the rule is almost like the
                            `ChainalysisTransactionPrescreening` rule, expect
                            the the `address` property is not supported.


                            ```json

                            {
                              "rule": {
                                "kind": "ChainalysisTransactionPrescreening",
                                "configuration": {
                                  "alerts": {
                                    "alertLevel": "LOW",
                                    "categoryIds": []
                                  },
                                  "exposures": {
                                    "direct": {
                                      "categoryIds": []
                                    }
                                  },
                                  "fallbackBehaviours": {
                                    "skipUnscreenableTransaction": false,
                                    "skipUnsupportedNetwork": false,
                                    "skipUnsupportedAsset": false,
                                    "skipChainalysisFailure": false
                                  }
                                }
                              }
                            }

                            ```


                            **Configuration**


                            Please refer to the configuration for the
                            `ChainalysisTransactionPrescreening` rule.
                          title: ChainalysisTransactionScreening
                    action:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - NoAction
                          required:
                            - kind
                          additionalProperties: false
                          description: |2-

                                This action kind means that nothing will happen after policy rule evaluation. It's meant to be used with policy rules "`ChainalysisTransactionPrescreening`" or "`ChainalysisTransactionScreening`". This action is for when you just want the KYT analysis rule to be run, and then if triggered, those result returned in a `policy.triggered` [Webhook Event](https://docs.dfns.co/api-reference/webhook-events).

                            ```json
                            {
                              "action": {
                                "kind": "NoAction"
                              }
                            }
                            ```
                                
                          title: NoAction
                    filters:
                      type: object
                      properties:
                        walletId:
                          type: object
                          properties:
                            in:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          required:
                            - in
                          additionalProperties: false
                        walletTags:
                          type: object
                          properties:
                            hasAny:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                            hasAll:
                              type: array
                              items:
                                type: string
                                minLength: 1
                              minItems: 1
                              maxItems: 100
                          additionalProperties: false
                      additionalProperties: false
                  required:
                    - name
                    - activityKind
                    - rule
                    - action
                  additionalProperties: false
                  description: >-
                    A "`Wallets:IncomingTransaction`" activity represents when
                    our indexers detected an incoming transaction into a wallet.
                    This activity kind has to be used with the rule kind
                    "`ChainalysisTransactionScreening`" (see more on
                    [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                    integration page), and the action kind "`NoAction`", meaning
                    that no actual action will be taken as a result of the
                    Chainalysis screening, other than notifying you through a
                    webhook event if the policy is triggered. The reason for
                    that, is that the incoming transaction is already on-chain,
                    so the funds are already in the wallet, we cannot block that
                    transfer on chain.
                  title: Wallets:IncomingTransaction
            examples:
              Chainalysis Transaction Prescreening:
                value:
                  name: chainalysis prescreening policy
                  activityKind: Wallets:Sign
                  rule:
                    kind: ChainalysisTransactionPrescreening
                    configuration:
                      alerts:
                        alertLevel: LOW
                        categoryIds: []
                      exposures:
                        direct:
                          categoryIds: []
                      addresses:
                        alertLevel: LOW
                        categoryIds: []
                      fallbackBehaviours:
                        skipUnscreenableTransaction: false
                        skipUnsupportedNetwork: false
                        skipUnsupportedAsset: false
                        skipChainalysisFailure: false
                  action:
                    kind: Block
                  filters:
                    walletId:
                      in:
                        - wa-4sql3-a6ct4-8j2q8ih86d853rgg
                        - wa-j9btt-5s9o8-i3r8373ddg0usn3
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
    get:
      summary: List Policies
      tags:
        - Policies
      security:
        - authenticationToken: []
      description: Retrieve the list of policies on your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Policies:Read`: Always required.
      parameters:
        - schema:
            type: string
            pattern: ^\d+$
          required: false
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: paginationToken
          in: query
        - schema:
            type: string
            enum:
              - Active
              - Archived
          required: false
          name: status
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/Policy'
                        - type: object
                          properties:
                            pendingChangeRequest:
                              type: object
                              properties:
                                id:
                                  type: string
                                requester:
                                  $ref: '#/components/schemas/ChangeRequestRequester'
                                kind:
                                  type: string
                                  enum:
                                    - Policy
                                operationKind:
                                  type: string
                                  enum: *ref_126
                                status:
                                  type: string
                                  enum:
                                    - Applied
                                    - Failed
                                    - Pending
                                    - Rejected
                                entityId:
                                  type: string
                                dateCreated:
                                  type: string
                                  format: date-time
                                dateResolved:
                                  type: string
                                  format: date-time
                                approvalId:
                                  type: string
                                body:
                                  $ref: '#/components/schemas/Policy'
                              required:
                                - id
                                - requester
                                - kind
                                - operationKind
                                - status
                                - entityId
                                - dateCreated
                                - body
                              additionalProperties: false
                  nextPageToken:
                    type: string
                required:
                  - items
  /v2/policy-approvals/{approvalId}:
    get:
      summary: Get Approval
      tags:
        - Policies
      security:
        - authenticationToken: []
      description: Retrieve information about a specific approval request.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Policies:Approvals:Read`: Always required.
      parameters:
        - schema:
            type: string
          required: true
          name: approvalId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyApproval'
  /v2/policy-approvals:
    get:
      summary: List Approvals
      tags:
        - Policies
      security:
        - authenticationToken: []
      description: Retrieve the list of pending approval requests.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Policies:Approvals:Read`: Always required.
      parameters:
        - schema:
            type: string
            pattern: ^\d+$
          required: false
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: paginationToken
          in: query
        - schema:
            type: string
            enum:
              - Pending
              - Approved
              - Denied
              - Expired
          required: false
          name: status
          in: query
        - schema:
            type: string
          required: false
          name: initiatorId
          in: query
        - schema:
            type: string
          required: false
          name: approverId
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PolicyApproval'
                  nextPageToken:
                    type: string
                required:
                  - items
  /key-stores/{storeId}/fleet-operations/cancel:
    post:
      summary: Cancel Fleet Operation
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:Cancel`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                groupId:
                  type: string
                  minLength: 1
                reason:
                  type: string
                  minLength: 1
                  maxLength: 2000
              required:
                - groupId
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  groupId:
                    type: string
                  storeId:
                    type: string
                  orgId:
                    type: string
                  status:
                    type: string
                    enum:
                      - Initialized
                      - InReview
                      - Rejected
                      - Approved
                      - Canceled
                  createdBy:
                    type: string
                  submittedBy:
                    type:
                      - string
                      - 'null'
                  dateSubmitted:
                    type:
                      - string
                      - 'null'
                  reviewedBy:
                    type:
                      - string
                      - 'null'
                  dateReviewed:
                    type:
                      - string
                      - 'null'
                  canceledBy:
                    type:
                      - string
                      - 'null'
                  dateCanceled:
                    type:
                      - string
                      - 'null'
                  reason:
                    type:
                      - string
                      - 'null'
                  dateCreated:
                    type: string
                  operations:
                    type: array
                    items:
                      type: object
                      properties:
                        operationId:
                          type: string
                        kind:
                          type: string
                          enum:
                            - Genesis
                            - Clone
                            - AddMacUser
                            - KeyHarvest
                            - AddProvisioner
                        status:
                          type: string
                          enum:
                            - Initialized
                            - InReview
                            - Rejected
                            - Approved
                            - Canceled
                        dateCreated:
                          type: string
                      required:
                        - operationId
                        - kind
                        - status
                        - dateCreated
                required:
                  - groupId
                  - storeId
                  - orgId
                  - status
                  - createdBy
                  - submittedBy
                  - dateSubmitted
                  - reviewedBy
                  - dateReviewed
                  - canceledBy
                  - dateCanceled
                  - reason
                  - dateCreated
                  - operations
  /key-stores/{storeId}/add-mac-user/input:
    post:
      summary: Create Add Mac User Input
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates the input archive for an add-mac-user fleet operation, which
        registers a new Mac operator machine with an HSM in the key store's
        trust set.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:AddMacUser`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - AddMacUser
                macTargetSerial:
                  type: string
                  minLength: 1
                hsmTargetSerial:
                  type: string
                  minLength: 1
              required:
                - kind
                - macTargetSerial
                - hsmTargetSerial
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/zip:
              schema:
                type: string
                description: >-
                  Zip archive containing `input/input.json`, the add-mac-user
                  fleet-input document.
  /key-stores/{storeId}/add-provisioner/input:
    post:
      summary: Create Add Provisioner Input
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates the input archive for an add-provisioner fleet operation, which
        registers a new provisioner YubiKey into the key store's governance set.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:AddProvisioner`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - AddProvisioner
                yubikeySerial:
                  type: string
                  minLength: 1
                hsmTargetSerial:
                  type: string
                  minLength: 1
              required:
                - kind
                - yubikeySerial
                - hsmTargetSerial
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/zip:
              schema:
                type: string
                description: >-
                  Zip archive containing `input/input.json`, the add-provisioner
                  fleet-input document.
  /key-stores/{storeId}/clone/input:
    post:
      summary: Create Clone Input
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates the input archive for a clone fleet operation, which replicates
        a key store from a source HSM to a target HSM.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:Clone`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Clone
                hsmSourceSerial:
                  type: string
                  minLength: 1
                hsmTargetSerial:
                  type: string
                  minLength: 1
                macTargetSerial:
                  type: string
                  minLength: 1
              required:
                - kind
                - hsmSourceSerial
                - hsmTargetSerial
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/zip:
              schema:
                type: string
                description: >-
                  Zip archive containing `input/input.json`, the clone
                  fleet-input document.
  /key-stores/{storeId}/genesis/input:
    post:
      summary: Create Genesis Input
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates the input archive for a genesis fleet operation, which
        provisions a new offline signer fleet and generates the key store's
        initial signing keys.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - Genesis
                numProvisioners:
                  type: integer
                  minimum: 2
                  maximum: 5
                numSecp256k1:
                  type: integer
                  minimum: 0
                  maximum: 2000
                numEd25519:
                  type: integer
                  minimum: 0
                  maximum: 2000
                hsmGenesisSerial:
                  type: string
                  minLength: 1
                macGenesisSerial:
                  type: string
                  minLength: 1
                hsmGenesisFirmwareVersion:
                  type: string
                  enum:
                    - '2.2'
                    - '2.4'
                debugOptions:
                  type: object
                  additionalProperties: {}
                  description: >-
                    Development environments only (rejected with a 400 in
                    production). Deep-merged over the generated genesis
                    `options` block: objects merge recursively, any other value
                    (including new fields and type changes) replaces the
                    existing value.
              required:
                - kind
                - numProvisioners
                - numSecp256k1
                - numEd25519
                - hsmGenesisSerial
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/zip:
              schema:
                type: string
                description: >-
                  Zip archive containing `input/input.json`, the genesis
                  fleet-input document.
  /key-stores/{storeId}/key-harvest/input:
    post:
      summary: Create Key Harvest Input
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:KeyHarvest`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - KeyHarvest
                hsmTargetSerial:
                  type: string
                  minLength: 1
                macTargetSerial:
                  type: string
                  minLength: 1
                macTargetUsername:
                  type: string
                  minLength: 1
                numSecp256k1:
                  type: integer
                  minimum: 0
                  maximum: 2000
                numEd25519:
                  type: integer
                  minimum: 0
                  maximum: 2000
              required:
                - kind
                - hsmTargetSerial
                - macTargetSerial
                - macTargetUsername
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/zip:
              schema:
                type: string
                description: >-
                  Zip archive containing `input/input.json`, the key-harvest
                  fleet-input document.
  /key-stores/{storeId}/onchain-sign/input:
    post:
      summary: Create Onchain Sign Input
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates the input archive for an onchain-sign operation covering the key
        store's pending signature requests.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:OnchainSignatures:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/zip:
              schema:
                type: string
                description: >-
                  Zip archive containing `input/input.json` and
                  `input-annex/keys.jsonl` for the onchain-sign roundtrip.
  /key-stores/{storeId}/proof-of-control/input:
    post:
      summary: Create Proof Of Control Input
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates the input archive for a proof-of-control operation covering the
        keys of the specified wallets.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:ProofOfControl:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                walletIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                  minItems: 1
                  maxItems: 100
              required:
                - walletIds
      responses:
        '200':
          description: Success
          content:
            application/zip:
              schema:
                type: string
                description: >-
                  Zip archive containing `input/input.json` (proof of control
                  spec) and `input-annex/wrapped-keystore.jsonl` (one key per
                  line).
  /key-stores:
    get:
      summary: List Key Stores
      tags:
        - Signers
      security:
        - authenticationToken: []
      description: Lists the key stores of your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Read`: Always required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        kind:
                          type: string
                          enum:
                            - Hsm
                            - Mpc
                            - OfflineSigner
                        name:
                          type: string
                        primary:
                          type: boolean
                      required:
                        - id
                        - kind
                        - primary
                required:
                  - items
  /signers:
    get:
      summary: List Signers
      tags:
        - Signers
      security:
        - authenticationToken: []
      description: >-
        Lists the signer clusters of your key store, including each signer's ID
        and encryption public key.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Signers:ListSigners`: Always required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  clusters:
                    type: array
                    items:
                      type: object
                      properties:
                        clusterId:
                          type: string
                        signers:
                          type: array
                          items:
                            type: object
                            properties:
                              signerId:
                                type: string
                              encryptionKey:
                                type: string
                            required:
                              - signerId
                              - encryptionKey
                      required:
                        - clusterId
                        - signers
                required:
                  - clusters
  /key-stores/{storeId}/add-mac-user/output:
    post:
      summary: Submit Add Mac User Output
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Submits the output archive produced by the offline signer fleet for an
        add-mac-user operation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:AddMacUser`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    fileChecksum:
                      type: string
                      pattern: ^[a-f0-9]{64}$
                    outputJson:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - fleet-output
                        version:
                          type: number
                          enum:
                            - 1
                        status:
                          type: string
                          enum:
                            - success
                        org_id:
                          type: string
                          minLength: 1
                        fleet_id:
                          type: string
                          minLength: 1
                        fleet_label:
                          type: string
                          minLength: 1
                        keystore_id:
                          type: string
                          minLength: 1
                        group_id:
                          type: string
                          minLength: 1
                        online_domain:
                          type: string
                          minLength: 1
                        governance:
                          type: object
                          additionalProperties: {}
                        outputs:
                          type: object
                          additionalProperties:
                            type: object
                            properties:
                              success:
                                oneOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - genesis-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      provisioners:
                                        type: object
                                        additionalProperties:
                                          type: string
                                      hsm_sealed: {}
                                      key_harvest:
                                        type: object
                                        properties:
                                          ed25519-start:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 0
                                          error:
                                            type:
                                              - string
                                              - 'null'
                                          secp256k1-start:
                                            type: integer
                                            minimum: 0
                                          secp256k1:
                                            type: integer
                                            minimum: 0
                                        required:
                                          - ed25519-start
                                          - ed25519
                                          - error
                                          - secp256k1-start
                                          - secp256k1
                                    required:
                                      - type
                                      - hsm_serial
                                      - hsm_identity_key
                                      - mac_serial
                                      - mac_se_wrap_key_pub_key
                                      - provisioners
                                      - key_harvest
                                    title: Genesis Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - clone-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Clone Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-mac-user
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_username:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Add Mac User Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-provisioner
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      provisioner_label:
                                        type: string
                                        minLength: 1
                                      provisioner_public_key_hex:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      yubikey_serial:
                                        type: string
                                        minLength: 1
                                    required:
                                      - type
                                      - provisioner_label
                                      - provisioner_public_key_hex
                                      - yubikey_serial
                                    title: Add Provisioner Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - key-harvest
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_username:
                                        type: string
                                        minLength: 1
                                      key_harvest:
                                        type: object
                                        properties:
                                          secp256k1:
                                            type: integer
                                            minimum: 1
                                          secp256k1_end:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 1
                                          ed25519_end:
                                            type: integer
                                            minimum: 0
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - mac_target_serial
                                      - mac_target_username
                                      - key_harvest
                                    title: Key Harvest Registration
                            required:
                              - success
                      required:
                        - type
                        - version
                        - status
                        - org_id
                        - fleet_id
                        - fleet_label
                        - keystore_id
                        - group_id
                        - online_domain
                        - outputs
                  required:
                    - fileChecksum
                    - outputJson
                file:
                  type: string
                  format: binary
              required:
                - data
                - file
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
  /key-stores/{storeId}/add-provisioner/output:
    post:
      summary: Submit Add Provisioner Output
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Submits the output archive produced by the offline signer fleet for an
        add-provisioner operation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:AddProvisioner`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    fileChecksum:
                      type: string
                      pattern: ^[a-f0-9]{64}$
                    outputJson:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - fleet-output
                        version:
                          type: number
                          enum:
                            - 1
                        status:
                          type: string
                          enum:
                            - success
                        org_id:
                          type: string
                          minLength: 1
                        fleet_id:
                          type: string
                          minLength: 1
                        fleet_label:
                          type: string
                          minLength: 1
                        keystore_id:
                          type: string
                          minLength: 1
                        group_id:
                          type: string
                          minLength: 1
                        online_domain:
                          type: string
                          minLength: 1
                        governance:
                          type: object
                          additionalProperties: {}
                        outputs:
                          type: object
                          additionalProperties:
                            type: object
                            properties:
                              success:
                                oneOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - genesis-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      provisioners:
                                        type: object
                                        additionalProperties:
                                          type: string
                                      hsm_sealed: {}
                                      key_harvest:
                                        type: object
                                        properties:
                                          ed25519-start:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 0
                                          error:
                                            type:
                                              - string
                                              - 'null'
                                          secp256k1-start:
                                            type: integer
                                            minimum: 0
                                          secp256k1:
                                            type: integer
                                            minimum: 0
                                        required:
                                          - ed25519-start
                                          - ed25519
                                          - error
                                          - secp256k1-start
                                          - secp256k1
                                    required:
                                      - type
                                      - hsm_serial
                                      - hsm_identity_key
                                      - mac_serial
                                      - mac_se_wrap_key_pub_key
                                      - provisioners
                                      - key_harvest
                                    title: Genesis Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - clone-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Clone Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-mac-user
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_username:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Add Mac User Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-provisioner
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      provisioner_label:
                                        type: string
                                        minLength: 1
                                      provisioner_public_key_hex:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      yubikey_serial:
                                        type: string
                                        minLength: 1
                                    required:
                                      - type
                                      - provisioner_label
                                      - provisioner_public_key_hex
                                      - yubikey_serial
                                    title: Add Provisioner Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - key-harvest
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_username:
                                        type: string
                                        minLength: 1
                                      key_harvest:
                                        type: object
                                        properties:
                                          secp256k1:
                                            type: integer
                                            minimum: 1
                                          secp256k1_end:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 1
                                          ed25519_end:
                                            type: integer
                                            minimum: 0
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - mac_target_serial
                                      - mac_target_username
                                      - key_harvest
                                    title: Key Harvest Registration
                            required:
                              - success
                      required:
                        - type
                        - version
                        - status
                        - org_id
                        - fleet_id
                        - fleet_label
                        - keystore_id
                        - group_id
                        - online_domain
                        - outputs
                  required:
                    - fileChecksum
                    - outputJson
                file:
                  type: string
                  format: binary
              required:
                - data
                - file
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
  /key-stores/{storeId}/clone/output:
    post:
      summary: Submit Clone Output
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Submits the output archive produced by the offline signer fleet for a
        clone operation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:Clone`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    fileChecksum:
                      type: string
                      pattern: ^[a-f0-9]{64}$
                    outputJson:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - fleet-output
                        version:
                          type: number
                          enum:
                            - 1
                        status:
                          type: string
                          enum:
                            - success
                        org_id:
                          type: string
                          minLength: 1
                        fleet_id:
                          type: string
                          minLength: 1
                        fleet_label:
                          type: string
                          minLength: 1
                        keystore_id:
                          type: string
                          minLength: 1
                        group_id:
                          type: string
                          minLength: 1
                        online_domain:
                          type: string
                          minLength: 1
                        governance:
                          type: object
                          additionalProperties: {}
                        outputs:
                          type: object
                          additionalProperties:
                            type: object
                            properties:
                              success:
                                oneOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - genesis-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      provisioners:
                                        type: object
                                        additionalProperties:
                                          type: string
                                      hsm_sealed: {}
                                      key_harvest:
                                        type: object
                                        properties:
                                          ed25519-start:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 0
                                          error:
                                            type:
                                              - string
                                              - 'null'
                                          secp256k1-start:
                                            type: integer
                                            minimum: 0
                                          secp256k1:
                                            type: integer
                                            minimum: 0
                                        required:
                                          - ed25519-start
                                          - ed25519
                                          - error
                                          - secp256k1-start
                                          - secp256k1
                                    required:
                                      - type
                                      - hsm_serial
                                      - hsm_identity_key
                                      - mac_serial
                                      - mac_se_wrap_key_pub_key
                                      - provisioners
                                      - key_harvest
                                    title: Genesis Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - clone-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Clone Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-mac-user
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_username:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Add Mac User Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-provisioner
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      provisioner_label:
                                        type: string
                                        minLength: 1
                                      provisioner_public_key_hex:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      yubikey_serial:
                                        type: string
                                        minLength: 1
                                    required:
                                      - type
                                      - provisioner_label
                                      - provisioner_public_key_hex
                                      - yubikey_serial
                                    title: Add Provisioner Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - key-harvest
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_username:
                                        type: string
                                        minLength: 1
                                      key_harvest:
                                        type: object
                                        properties:
                                          secp256k1:
                                            type: integer
                                            minimum: 1
                                          secp256k1_end:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 1
                                          ed25519_end:
                                            type: integer
                                            minimum: 0
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - mac_target_serial
                                      - mac_target_username
                                      - key_harvest
                                    title: Key Harvest Registration
                            required:
                              - success
                      required:
                        - type
                        - version
                        - status
                        - org_id
                        - fleet_id
                        - fleet_label
                        - keystore_id
                        - group_id
                        - online_domain
                        - outputs
                  required:
                    - fileChecksum
                    - outputJson
                file:
                  type: string
                  format: binary
              required:
                - data
                - file
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
  /key-stores/{storeId}/genesis/output:
    post:
      summary: Submit Genesis Output
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Submits the output archive produced by the offline signer fleet for a
        genesis operation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    fileChecksum:
                      type: string
                      pattern: ^[a-f0-9]{64}$
                    outputJson:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - fleet-output
                        version:
                          type: number
                          enum:
                            - 1
                        status:
                          type: string
                          enum:
                            - success
                        org_id:
                          type: string
                          minLength: 1
                        fleet_id:
                          type: string
                          minLength: 1
                        fleet_label:
                          type: string
                          minLength: 1
                        keystore_id:
                          type: string
                          minLength: 1
                        group_id:
                          type: string
                          minLength: 1
                        online_domain:
                          type: string
                          minLength: 1
                        governance:
                          type: object
                          additionalProperties: {}
                        outputs:
                          type: object
                          additionalProperties:
                            type: object
                            properties:
                              success:
                                oneOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - genesis-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      provisioners:
                                        type: object
                                        additionalProperties:
                                          type: string
                                      hsm_sealed: {}
                                      key_harvest:
                                        type: object
                                        properties:
                                          ed25519-start:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 0
                                          error:
                                            type:
                                              - string
                                              - 'null'
                                          secp256k1-start:
                                            type: integer
                                            minimum: 0
                                          secp256k1:
                                            type: integer
                                            minimum: 0
                                        required:
                                          - ed25519-start
                                          - ed25519
                                          - error
                                          - secp256k1-start
                                          - secp256k1
                                    required:
                                      - type
                                      - hsm_serial
                                      - hsm_identity_key
                                      - mac_serial
                                      - mac_se_wrap_key_pub_key
                                      - provisioners
                                      - key_harvest
                                    title: Genesis Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - clone-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Clone Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-mac-user
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_username:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Add Mac User Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-provisioner
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      provisioner_label:
                                        type: string
                                        minLength: 1
                                      provisioner_public_key_hex:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      yubikey_serial:
                                        type: string
                                        minLength: 1
                                    required:
                                      - type
                                      - provisioner_label
                                      - provisioner_public_key_hex
                                      - yubikey_serial
                                    title: Add Provisioner Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - key-harvest
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_username:
                                        type: string
                                        minLength: 1
                                      key_harvest:
                                        type: object
                                        properties:
                                          secp256k1:
                                            type: integer
                                            minimum: 1
                                          secp256k1_end:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 1
                                          ed25519_end:
                                            type: integer
                                            minimum: 0
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - mac_target_serial
                                      - mac_target_username
                                      - key_harvest
                                    title: Key Harvest Registration
                            required:
                              - success
                      required:
                        - type
                        - version
                        - status
                        - org_id
                        - fleet_id
                        - fleet_label
                        - keystore_id
                        - group_id
                        - online_domain
                        - outputs
                  required:
                    - fileChecksum
                    - outputJson
                file:
                  type: string
                  format: binary
              required:
                - data
                - file
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
  /key-stores/{storeId}/key-harvest/output:
    post:
      summary: Submit Key Harvest Output
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:Fleets:KeyHarvest`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    fileChecksum:
                      type: string
                      pattern: ^[a-f0-9]{64}$
                    outputJson:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - fleet-output
                        version:
                          type: number
                          enum:
                            - 1
                        status:
                          type: string
                          enum:
                            - success
                        org_id:
                          type: string
                          minLength: 1
                        fleet_id:
                          type: string
                          minLength: 1
                        fleet_label:
                          type: string
                          minLength: 1
                        keystore_id:
                          type: string
                          minLength: 1
                        group_id:
                          type: string
                          minLength: 1
                        online_domain:
                          type: string
                          minLength: 1
                        governance:
                          type: object
                          additionalProperties: {}
                        outputs:
                          type: object
                          additionalProperties:
                            type: object
                            properties:
                              success:
                                oneOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - genesis-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      provisioners:
                                        type: object
                                        additionalProperties:
                                          type: string
                                      hsm_sealed: {}
                                      key_harvest:
                                        type: object
                                        properties:
                                          ed25519-start:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 0
                                          error:
                                            type:
                                              - string
                                              - 'null'
                                          secp256k1-start:
                                            type: integer
                                            minimum: 0
                                          secp256k1:
                                            type: integer
                                            minimum: 0
                                        required:
                                          - ed25519-start
                                          - ed25519
                                          - error
                                          - secp256k1-start
                                          - secp256k1
                                    required:
                                      - type
                                      - hsm_serial
                                      - hsm_identity_key
                                      - mac_serial
                                      - mac_se_wrap_key_pub_key
                                      - provisioners
                                      - key_harvest
                                    title: Genesis Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - clone-registration
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Clone Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-mac-user
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      hsm_identity_key:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_username:
                                        type: string
                                        minLength: 1
                                      mac_se_wrap_key_pub_key:
                                        type: string
                                        minLength: 1
                                      hsm_sealed: {}
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - hsm_identity_key
                                      - mac_target_serial
                                      - mac_se_wrap_key_pub_key
                                    title: Add Mac User Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - add-provisioner
                                      ceremony_mode:
                                        type: string
                                        minLength: 1
                                      provisioner_label:
                                        type: string
                                        minLength: 1
                                      provisioner_public_key_hex:
                                        type: string
                                        pattern: ^[a-f0-9]+$
                                      yubikey_serial:
                                        type: string
                                        minLength: 1
                                    required:
                                      - type
                                      - provisioner_label
                                      - provisioner_public_key_hex
                                      - yubikey_serial
                                    title: Add Provisioner Registration
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - key-harvest
                                      hsm_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_serial:
                                        type: string
                                        minLength: 1
                                      mac_target_username:
                                        type: string
                                        minLength: 1
                                      key_harvest:
                                        type: object
                                        properties:
                                          secp256k1:
                                            type: integer
                                            minimum: 1
                                          secp256k1_end:
                                            type: integer
                                            minimum: 0
                                          ed25519:
                                            type: integer
                                            minimum: 1
                                          ed25519_end:
                                            type: integer
                                            minimum: 0
                                    required:
                                      - type
                                      - hsm_target_serial
                                      - mac_target_serial
                                      - mac_target_username
                                      - key_harvest
                                    title: Key Harvest Registration
                            required:
                              - success
                      required:
                        - type
                        - version
                        - status
                        - org_id
                        - fleet_id
                        - fleet_label
                        - keystore_id
                        - group_id
                        - online_domain
                        - outputs
                  required:
                    - fileChecksum
                    - outputJson
                file:
                  type: string
                  format: binary
              required:
                - data
                - file
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
  /key-stores/{storeId}/onchain-sign/output:
    post:
      summary: Submit Onchain Sign Output
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Submits the output archive produced by the offline signer fleet for an
        onchain-sign operation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:OnchainSignatures:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    fileChecksum:
                      type: string
                      pattern: ^[a-f0-9]{64}$
                    outputJson:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - keystore-output
                        version:
                          type: number
                          enum:
                            - 1
                        org_id:
                          type: string
                          minLength: 1
                        fleet_id:
                          type: string
                          minLength: 1
                        keystore_id:
                          type: string
                          minLength: 1
                        group_id:
                          type: string
                          minLength: 1
                        status:
                          type: string
                          enum: &ref_129
                            - success
                            - partial
                            - fail
                        outputs:
                          type: object
                          additionalProperties:
                            oneOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - proof-of-control-v1
                                  result:
                                    anyOf:
                                      - type: object
                                        properties:
                                          success:
                                            type: object
                                            properties:
                                              signer_public_key:
                                                type: string
                                                pattern: ^[a-f0-9]+$
                                              prefix:
                                                type: string
                                                pattern: ^[a-f0-9]+$
                                              message:
                                                type: string
                                                minLength: 1
                                              exact_bytes_signed:
                                                type: string
                                                pattern: ^[a-f0-9]{64}$
                                              signature:
                                                type: string
                                                pattern: ^[a-f0-9]+$
                                            required:
                                              - signer_public_key
                                              - prefix
                                              - message
                                              - exact_bytes_signed
                                              - signature
                                        required:
                                          - success
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          fail:
                                            type: object
                                            properties:
                                              message:
                                                type: string
                                                minLength: 1
                                              code:
                                                type: string
                                                minLength: 1
                                            required:
                                              - message
                                              - code
                                        required:
                                          - fail
                                        additionalProperties: false
                                required:
                                  - type
                                  - result
                                title: Proof of Control Output
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - onchain-sign-v1
                                  result:
                                    anyOf:
                                      - type: object
                                        properties:
                                          success:
                                            type: object
                                            additionalProperties:
                                              type: object
                                              properties:
                                                signer_public_key:
                                                  type: string
                                                  pattern: ^[a-f0-9]+$
                                                exact_bytes_signed:
                                                  type: string
                                                  pattern: ^[a-f0-9]+$
                                                signature:
                                                  type: string
                                                  pattern: ^[a-f0-9]+$
                                              required:
                                                - signer_public_key
                                                - exact_bytes_signed
                                                - signature
                                        required:
                                          - success
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          fail:
                                            type: object
                                            properties:
                                              message:
                                                type: string
                                                minLength: 1
                                              code:
                                                type: string
                                                minLength: 1
                                            required:
                                              - message
                                              - code
                                        required:
                                          - fail
                                        additionalProperties: false
                                required:
                                  - type
                                  - result
                                title: Onchain Sign Output
                      required:
                        - type
                        - version
                        - org_id
                        - fleet_id
                        - keystore_id
                        - group_id
                        - status
                        - outputs
                  required:
                    - fileChecksum
                    - outputJson
                file:
                  type: string
                  format: binary
              required:
                - data
                - file
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                      - partial
                required:
                  - status
  /key-stores/{storeId}/proof-of-control/output:
    post:
      summary: Submit Proof Of Control Output
      tags:
        - Signers
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Submits the output archive produced by the offline signer fleet for a
        proof-of-control operation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `KeyStores:ProofOfControl:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: storeId
          in: path
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    fileChecksum:
                      type: string
                      pattern: ^[a-f0-9]{64}$
                    outputJson:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - keystore-output
                        version:
                          type: number
                          enum:
                            - 1
                        org_id:
                          type: string
                          minLength: 1
                        fleet_id:
                          type: string
                          minLength: 1
                        keystore_id:
                          type: string
                          minLength: 1
                        group_id:
                          type: string
                          minLength: 1
                        status:
                          type: string
                          enum: *ref_129
                        outputs:
                          type: object
                          additionalProperties:
                            oneOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - proof-of-control-v1
                                  result:
                                    anyOf:
                                      - type: object
                                        properties:
                                          success:
                                            type: object
                                            properties:
                                              signer_public_key:
                                                type: string
                                                pattern: ^[a-f0-9]+$
                                              prefix:
                                                type: string
                                                pattern: ^[a-f0-9]+$
                                              message:
                                                type: string
                                                minLength: 1
                                              exact_bytes_signed:
                                                type: string
                                                pattern: ^[a-f0-9]{64}$
                                              signature:
                                                type: string
                                                pattern: ^[a-f0-9]+$
                                            required:
                                              - signer_public_key
                                              - prefix
                                              - message
                                              - exact_bytes_signed
                                              - signature
                                        required:
                                          - success
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          fail:
                                            type: object
                                            properties:
                                              message:
                                                type: string
                                                minLength: 1
                                              code:
                                                type: string
                                                minLength: 1
                                            required:
                                              - message
                                              - code
                                        required:
                                          - fail
                                        additionalProperties: false
                                required:
                                  - type
                                  - result
                                title: Proof of Control Output
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - onchain-sign-v1
                                  result:
                                    anyOf:
                                      - type: object
                                        properties:
                                          success:
                                            type: object
                                            additionalProperties:
                                              type: object
                                              properties:
                                                signer_public_key:
                                                  type: string
                                                  pattern: ^[a-f0-9]+$
                                                exact_bytes_signed:
                                                  type: string
                                                  pattern: ^[a-f0-9]+$
                                                signature:
                                                  type: string
                                                  pattern: ^[a-f0-9]+$
                                              required:
                                                - signer_public_key
                                                - exact_bytes_signed
                                                - signature
                                        required:
                                          - success
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          fail:
                                            type: object
                                            properties:
                                              message:
                                                type: string
                                                minLength: 1
                                              code:
                                                type: string
                                                minLength: 1
                                            required:
                                              - message
                                              - code
                                        required:
                                          - fail
                                        additionalProperties: false
                                required:
                                  - type
                                  - result
                                title: Onchain Sign Output
                      required:
                        - type
                        - version
                        - org_id
                        - fleet_id
                        - keystore_id
                        - group_id
                        - status
                        - outputs
                  required:
                    - fileChecksum
                    - outputJson
                file:
                  type: string
                  format: binary
              required:
                - data
                - file
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                      - partial
                required:
                  - status
  /staking/stakes:
    post:
      summary: Create Stake
      tags:
        - Staking
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Create a new stake.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Stakes:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - oneOf:
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Ethereum
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        provider:
                          type: string
                          enum:
                            - Figment
                          description: Staking Provider
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                      required:
                        - protocol
                        - walletId
                        - provider
                        - amount
                      title: Ethereum
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Iota
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        validator:
                          type: string
                          pattern: ^0x[0-9a-fA-F]{64}$
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: Transaction amount denominated in min units
                        lockedIotas:
                          type: array
                          items:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{64}$
                          minItems: 1
                      required:
                        - protocol
                        - walletId
                        - validator
                        - amount
                      title: Iota
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Xdc
                        walletId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Id of the Dfns wallet making the deposit.
                          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                        candidate:
                          type: string
                          description: Coinbase address of the XDC masternode to register
                        amount:
                          type: string
                          pattern: ^\d+$
                          description: >-
                            Transaction amount denominated in wei (min
                            10,000,000 XDC)
                      required:
                        - protocol
                        - walletId
                        - candidate
                        - amount
                      title: Xdc
                - type: object
                  properties:
                    externalId:
                      type: string
            examples:
              Ethereum:
                value:
                  externalId: ext-123
                  walletId: wa-4g991-s29to-9hrq4nbuto6ih33b
                  protocol: Ethereum
                  provider: Figment
                  amount: '32000000000000000000'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Stake'
                  - type: object
                    properties:
                      actions:
                        type: array
                        items:
                          $ref: '#/components/schemas/StakeAction'
                    required:
                      - actions
    get:
      summary: List Stakes
      tags:
        - Staking
      security:
        - authenticationToken: []
      description: Retrieve the list of stakes.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Stakes:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Stake'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /staking/stakes/{stakeId}/actions:
    post:
      summary: Create Stake Action
      tags:
        - Staking
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Create a new action for an existing stake.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Stakes:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: stakeId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - anyOf:
                    - oneOf:
                        - type: object
                          properties:
                            protocol:
                              type: string
                              enum:
                                - Iota
                            kind:
                              type: string
                              enum:
                                - Withdraw
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - protocol
                            - kind
                            - amount
                          title: IOTA Withdrawal
                        - type: object
                          properties:
                            protocol:
                              type: string
                              enum:
                                - Iota
                            kind:
                              type: string
                              enum:
                                - Deposit
                            amount:
                              type: string
                              pattern: ^\d+$
                            lockedIotas:
                              type: array
                              items:
                                type: string
                                pattern: ^0x[0-9a-fA-F]{64}$
                          required:
                            - protocol
                            - kind
                            - amount
                          title: IOTA Deposit
                    - type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - Ethereum
                        kind:
                          type: string
                          enum:
                            - Withdraw
                      required:
                        - protocol
                        - kind
                      title: Ethereum Withdrawal
                    - oneOf:
                        - type: object
                          properties:
                            protocol:
                              type: string
                              enum:
                                - Xdc
                            kind:
                              type: string
                              enum:
                                - Withdraw
                          required:
                            - protocol
                            - kind
                          title: XDC Withdrawal
                        - type: object
                          properties:
                            protocol:
                              type: string
                              enum:
                                - Xdc
                            kind:
                              type: string
                              enum:
                                - Unbond
                          required:
                            - protocol
                            - kind
                          title: XDC Unbond
                - type: object
                  properties:
                    externalId:
                      type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Stake'
                  - type: object
                    properties:
                      actions:
                        type: array
                        items:
                          $ref: '#/components/schemas/StakeAction'
                    required:
                      - actions
    get:
      summary: List Stake Actions
      tags:
        - Staking
      security:
        - authenticationToken: []
      description: Retrieve the list of actions for a specific stake.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Stakes:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: stakeId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/StakeAction'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /staking/stakes/{stakeId}:
    get:
      summary: Get Stakes
      tags:
        - Staking
      security:
        - authenticationToken: []
      description: Retrieve the details of a specific stake.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Stakes:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: stakeId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Stake'
                  - type: object
                    properties:
                      actions:
                        type: array
                        items:
                          $ref: '#/components/schemas/StakeAction'
                    required:
                      - actions
  /staking/stakes/{stakeId}/rewards:
    get:
      summary: Get Stake Rewards
      tags:
        - Staking
      security:
        - authenticationToken: []
      description: Retrieves the rewards linked to a specific stake.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Stakes:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^stk-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: stakeId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  symbol:
                    type: string
                  balance:
                    type: string
                required:
                  - symbol
                  - balance
  /swaps:
    post:
      summary: Create Swap
      tags:
        - Swaps
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Create a new swap based on an existing quote. This is the second step of
        the [Swap flow](https://docs.dfns.co/api-reference/swaps#flow-overview).
      x-mint:
        content: >-
          #### Authentication


          ✅ Organization User (`CustomerEmployee`)    

          ❌ Delegated User (`EndUser`)    

          ✅ Service Account


          #### Required Permissions


          `Swaps:Create`: Always required   

          `Wallets:Transactions:Create`: Always required. Swap transactions are
          broadcast from your wallet.   

          `FeeSponsors:Use`: Required if `feeSponsorId` is specified and the
          sponsoree wallet belongs to an `EndUser` user kind.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - UniswapClassic
                    quoteId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^swapQuote-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Quote to use for this swap.
                      example: swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq
                    reference:
                      type: string
                      description: An optional reference for this Swap.
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet spending the sourceAsset. Used for
                        attesting that the swap is being created with the same
                        parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                        Used for attesting that the swap is being created with
                        the same parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this swap. When set, the swap transactions are broadcast
                        as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                  required:
                    - provider
                    - quoteId
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  title: UniswapClassic Swap Request
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - UniswapX
                    quoteId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^swapQuote-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Quote to use for this swap.
                      example: swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq
                    reference:
                      type: string
                      description: An optional reference for this Swap.
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet spending the sourceAsset. Used for
                        attesting that the swap is being created with the same
                        parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                        Used for attesting that the swap is being created with
                        the same parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this swap. When set, the swap transactions are broadcast
                        as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                  required:
                    - provider
                    - quoteId
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  title: UniswapX Swap Request
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - CircleCctp
                    quoteId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^swapQuote-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Quote to use for this swap.
                      example: swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq
                    reference:
                      type: string
                      description: An optional reference for this Swap.
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet spending the sourceAsset. Used for
                        attesting that the swap is being created with the same
                        parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                        Used for attesting that the swap is being created with
                        the same parameters as the quote.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction. Used for attesting that the swap is being
                        created with the same parameters as the quote.
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will pay the network fees for
                        this swap. When set, the swap transactions are broadcast
                        as sponsored user operations.
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    feeToleranceBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The maximum fee you will accept for this CCTP transfer,
                        in [basis
                        points](https://en.wikipedia.org/wiki/Basis_point) (BPS)
                        of the amount. CCTP is burn-and-mint with no price
                        slippage; this caps the bridge/forwarding fee — which
                        varies with chain congestion and Fast vs Standard speed
                        — so the burn does not revert if the fee rises. One
                        basis point equals 0.01%.
                  required:
                    - provider
                    - quoteId
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - feeToleranceBps
                  title: CircleCctp Swap Request
            examples:
              confirmingAnExistingQuote:
                value:
                  quoteId: swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t
                  reference: optional reference for record keeping
                  provider: UniswapClassic
                  walletId: wa-123456-12345678
                  targetWalletId: wa-123456-87654321
                  slippageBps: 50
                  sourceAsset:
                    kind: Native
                    amount: '1000000000000000000'
                  targetAsset:
                    kind: Erc20
                    contract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                    amount: '5600000'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Swap'
    get:
      summary: List Swaps
      tags:
        - Swaps
      security:
        - authenticationToken: []
      description: List all swaps with pagination
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Swaps:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Swap'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /swaps/quotes:
    post:
      summary: Request Swap Quote
      tags:
        - Swaps
      security:
        - authenticationToken: []
      description: >-
        Request a quote from a given provider for swapping assets. This is the
        first step of the [Swap
        flow](https://docs.dfns.co/api-reference/swaps#flow-overview).
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - UniswapClassic
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Id of the Dfns wallet spending the sourceAsset.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction, following the same stucture as the
                        [transfer
                        API](https://docs.dfns.co/api-reference/wallets/transfer-asset).
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                          required:
                            - kind
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                          required:
                            - kind
                            - contract
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                          required:
                            - kind
                            - mint
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction, follows the same structure as sourceAsset,
                        but doesn't include the amount.
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                  required:
                    - provider
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  title: UniswapClassic Swap Quote Request
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - UniswapX
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Id of the Dfns wallet spending the sourceAsset.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction, following the same stucture as the
                        [transfer
                        API](https://docs.dfns.co/api-reference/wallets/transfer-asset).
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                          required:
                            - kind
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                          required:
                            - kind
                            - contract
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                          required:
                            - kind
                            - mint
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction, follows the same structure as sourceAsset,
                        but doesn't include the amount.
                    slippageBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The slippage tolerance for this trade in [basis
                        point](https://en.wikipedia.org/wiki/Basis_point) (BPS).
                        Slippage tolerance defines the maximum price difference
                        you're willing to accept during a trade from the
                        estimated quote, ensuring you still receive at least a
                        minimum number of tokens if the price shifts. One basis
                        point equals one-hundredth of a percentage point, or
                        0.01%.
                  required:
                    - provider
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - slippageBps
                  title: UniswapX Swap Quote Request
                - type: object
                  properties:
                    provider:
                      type: string
                      enum:
                        - CircleCctp
                    walletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: Id of the Dfns wallet spending the sourceAsset.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    targetWalletId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the Dfns wallet receiving the target asset.
                        Currently this value must be the same as the `walletId`.
                      example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                    sourceAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - amount
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - contract
                            - amount
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                            amount:
                              type: string
                              pattern: ^\d+$
                          required:
                            - kind
                            - mint
                            - amount
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The source asset that will be spent on the Swap
                        transaction, following the same stucture as the
                        [transfer
                        API](https://docs.dfns.co/api-reference/wallets/transfer-asset).
                    targetAsset:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Native
                          required:
                            - kind
                          title: Native Asset
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc20
                            contract:
                              type: string
                              pattern: ^0x[0-9a-fA-F]{40}$
                          required:
                            - kind
                            - contract
                          title: EVM Fungible Token (ERC-20)
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Spl
                            mint:
                              type: string
                              pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                          required:
                            - kind
                            - mint
                          title: Solana Fungible Token (SPL)
                      description: >-
                        The target asset that will be received with the Swap
                        transaction, follows the same structure as sourceAsset,
                        but doesn't include the amount.
                    feeToleranceBps:
                      type: integer
                      minimum: 0
                      maximum: 10000
                      description: >-
                        The maximum fee you will accept for this CCTP transfer,
                        in [basis
                        points](https://en.wikipedia.org/wiki/Basis_point) (BPS)
                        of the amount. CCTP is burn-and-mint with no price
                        slippage; this caps the bridge/forwarding fee — which
                        varies with chain congestion and Fast vs Standard speed
                        — so the burn does not revert if the fee rises. One
                        basis point equals 0.01%.
                    speed:
                      type: string
                      enum:
                        - Fast
                        - Standard
                      description: >-
                        Selects Fast (~8–20s, small fast-burn fee) or Standard
                        (~13–19min, no fast-burn fee).
                    useDurableNonce:
                      type: boolean
                      description: >-
                        Solana-source only. Bind the burn to a durable nonce so
                        it survives signing delays.
                  required:
                    - provider
                    - walletId
                    - sourceAsset
                    - targetAsset
                    - feeToleranceBps
                  title: CircleCctp Swap Quote Request
            examples:
              UniswapClassic:
                value:
                  walletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
                  targetWalletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
                  provider: UniswapClassic
                  sourceAsset:
                    kind: Native
                    amount: '1000000000000000000'
                  targetAsset:
                    kind: Erc20
                    contract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                  slippageBps: 50
              UniswapX:
                value:
                  walletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
                  targetWalletId: wa-3l3cj-l8mq7-8q78f9nopq7f1qjv
                  provider: UniswapX
                  sourceAsset:
                    kind: Erc20
                    contract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                    amount: '1000000000000000000'
                  targetAsset:
                    kind: Native
                    amount: '1000000000000000000'
                  slippageBps: 50
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwapQuote'
  /swaps/{swapId}:
    get:
      summary: Get Swap
      tags:
        - Swaps
      security:
        - authenticationToken: []
      description: Get details of a specific swap by its ID
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Swaps:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Id of the swap for which we want to get details.
          required: true
          description: Id of the swap for which we want to get details.
          name: swapId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Swap'
  /swaps/quotes/{quoteId}:
    get:
      summary: Get Swap Quote
      tags:
        - Swaps
      security:
        - authenticationToken: []
      description: Get details of a specific swap quote by its ID
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          No permission required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The ID of the Swap Quote.
          required: true
          description: The ID of the Swap Quote.
          name: quoteId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwapQuote'
  /vaults:
    post:
      summary: Create Vault
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Creates a new Vault.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 200
                tags:
                  type: array
                  items:
                    type: string
                    pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
                    description: Vault Tag.
                  maxItems: 10
                  default: []
                externalId:
                  type: string
                  maxLength: 100
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vault'
    get:
      summary: List Vaults
      tags:
        - Vaults
      security:
        - authenticationToken: []
      description: Retrieves the list of Vaults in your organization.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Vault'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /vaults/{vaultId}/addresses:
    post:
      summary: Create Vault Address
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Creates a vault address (managed wallet) on an EVM or Bitcoin network.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Addresses:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  anyOf:
                    - type: string
                      enum: *ref_121
                    - type: string
                      enum: &ref_130
                        - Bitcoin
                        - BitcoinSignet
                        - BitcoinTestnet4
              required:
                - network
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultAddress'
  /vaults/{vaultId}/locks:
    post:
      summary: Create Vault Lock
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Locks funds from the vault's available balance for off-chain settlement
        or escrow.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Locks:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum: *ref_121
                  description: The EVM network the locked asset is on.
                tid:
                  type: string
                  description: >-
                    The token identifier of the asset to lock (e.g. `native:eth`
                    or `erc20:0x...`).
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount to lock, in minimum denomination.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    A unique id from your system. Unique per vault: it cannot be
                    reused, even after the lock is deleted.
                reason:
                  type: string
                  description: An optional reason or note for the lock.
              required:
                - network
                - tid
                - amount
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultLock'
    get:
      summary: List Vault Locks
      tags:
        - Vaults
      security:
        - authenticationToken: []
      description: Lists a vault's locks, active and released.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
          required: false
          name: network
          in: query
        - schema:
            type: string
          required: false
          name: tid
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/VaultLock'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /vaults/{vaultId}/transfers:
    post:
      summary: Create Vault Transfer
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates a transfer out of a vault, reserving the amount and estimated
        fee from the vault's available balance.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Transfers:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  anyOf:
                    - type: string
                      enum: *ref_121
                    - type: string
                      enum: *ref_130
                  description: The network the transfer is on.
                tid:
                  type: string
                  description: >-
                    The token identifier of the asset to transfer (e.g.
                    `native:eth` or `native:btc`).
                to:
                  type: string
                  description: The destination address.
                amount:
                  type: string
                  pattern: ^\d+$
                  description: The amount to transfer, in minimum denomination.
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: A unique id from your system.
              required:
                - network
                - tid
                - to
                - amount
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequest'
  /vaults/{vaultId}/locks/{lockId}:
    delete:
      summary: Delete Vault Lock
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Releases a lock, returning the locked funds to the vault's available
        balance. Owner only.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Locks:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-lck-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault lock id.
          required: true
          description: Vault lock id.
          name: lockId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultLock'
    get:
      summary: Get Vault Lock
      tags:
        - Vaults
      security:
        - authenticationToken: []
      description: Retrieves a vault lock by its ID.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-lck-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: The lock to retrieve.
          required: true
          description: The lock to retrieve.
          name: lockId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultLock'
  /vaults/{vaultId}:
    get:
      summary: Get Vault
      tags:
        - Vaults
      security:
        - authenticationToken: []
      description: Retrieves a Vault by its ID.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: The vault to retrieve.
          required: true
          description: The vault to retrieve.
          name: vaultId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vault'
    put:
      summary: Update Vault
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Updates an existing Vault.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 200
                externalId:
                  type: string
                  maxLength: 100
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vault'
  /vaults/{vaultId}/assets:
    get:
      summary: List Vault Assets
      tags:
        - Vaults
      security:
        - authenticationToken: []
      description: >-
        Lists a vault's assets with balances (available/quarantined/locked) and
        USD valuation.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
        - schema:
            type:
              - boolean
              - 'null'
            default: false
          required: false
          name: showUnverified
          in: query
        - schema:
            type: string
          required: false
          name: network
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/VaultAsset'
                  netWorth:
                    $ref: '#/components/schemas/VaultNetWorth'
                required:
                  - items
                  - netWorth
                additionalProperties: false
  /vaults/{vaultId}/balances:
    get:
      summary: List Vault Balances
      tags:
        - Vaults
      security:
        - authenticationToken: []
      description: Lists a vault's balance entries.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            enum:
              - Available
              - Outgoing
              - Fee
              - Incoming
              - Locked
              - Quarantined
            description: Vault balance kind.
          required: false
          description: Vault balance kind.
          name: kind
          in: query
        - schema:
            type: string
          required: false
          name: network
          in: query
        - schema:
            type: string
          required: false
          name: tid
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/VaultBalanceEntry'
                  nextPageToken:
                    type: string
                required:
                  - items
                additionalProperties: false
  /vaults/{vaultId}/quarantines/{quarantineId}/release:
    post:
      summary: Release Quarantine
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Releases quarantined funds into the available balance.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Quarantines:Release`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-qua-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault quarantine id.
          required: true
          description: Vault quarantine id.
          name: quarantineId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - OK
                required:
                  - status
                additionalProperties: false
  /vaults/{vaultId}/tags:
    put:
      summary: Tag Vault
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Add tags to a vault.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Tags:Add`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tags:
                  type: array
                  items:
                    type: string
                    pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
                    description: Vault Tag.
                  minItems: 1
                  maxItems: 10
              required:
                - tags
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties: {}
    delete:
      summary: Untag Vault
      tags:
        - Vaults
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Removes the specified tags from a vault.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Vaults:Tags:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Vault id.
          required: true
          description: Vault id.
          name: vaultId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tags:
                  type: array
                  items:
                    type: string
                    pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
                    description: Vault Tag.
                  minItems: 1
              required:
                - tags
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /wallets/{walletId}/transactions/{transactionId}/abort:
    put:
      summary: Abort Transaction
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Aborts a transaction that is currently in 'Executing' status and has not
        yet been signed. Sets the transaction status to 'Failed' and removes it
        from the retry queue.

          This is useful when a transaction is stuck in the execution pipeline (e.g., during construct or sign phase) and you want to abort it without waiting for it to fail on its own.

          Unlike cancel, which creates a replacement on-chain transaction, abort simply marks the transaction as failed without any blockchain interaction.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transactions:Abort`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Transaction id.
          required: true
          description: Transaction id.
          name: transactionId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest'
  /wallets/{walletId}/transfers/{transferId}/abort:
    put:
      summary: Abort Transfer
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Aborts a transfer that is currently in 'Executing' status and has not
        yet been signed. Sets the transfer status to 'Failed' and removes it
        from the retry queue.

          This is useful when a transfer is stuck in the execution pipeline (e.g., during construct or sign phase) and you want to abort it without waiting for it to fail on its own.

          Unlike cancel, which creates a replacement on-chain transaction, abort simply marks the transfer as failed without any blockchain interaction.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transfers:Abort`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Transfer id.
          required: true
          description: Transfer id.
          name: transferId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequest'
  /wallets/{walletId}/activate:
    post:
      summary: Activate Wallet
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >
        Activates a wallet by deploying the account contract on-chain, making it
        ready for transactions.

            This operation is required for wallets on networks where you need to explicitly activate your account on-chain
            before it can be used for transactions.

            - **Starknet**: Deploys the account contract using the wallet's public key to initialize the account on the blockchain. No additional parameters required.
            - **Concordium**: Deploys the account using credential deployment information and cryptographic randomness returned by the IDApp.
            - **Canton**: Registers the wallet on a validator. You must specify the `validatorId` to activate the wallet. Before activation, the wallet cannot be used and its address will not have a prefix.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Create`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
                - type: object
                  properties: {}
                  additionalProperties: false
                  description: 'Starknet: No parameters required.'
                - type: object
                  properties:
                    expiry:
                      type: number
                      description: Expiry timestamp of the Credential Deployment
                    unsignedCdiStr:
                      type: string
                      description: Unsigned Credential Deployment to sign
                  required:
                    - expiry
                    - unsignedCdiStr
                  description: >-
                    The full credential deployment request object returned by
                    the Concordium IdApp.
                        Please see the example in dfns-sdk-ts on how to retrieve the CredentialDeploymentTx and activate a Concordium wallet.
                        (https://github.com/dfns/dfns-sdk-ts/tree/m/examples/libs/concordium)
                        
                - type: object
                  properties:
                    validatorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^cv-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the validator on which the wallet is created for
                        Canton networks
                      example: cv-7jeof-m584r-p35ucm37ko3cqgts
                  required:
                    - validatorId
                  additionalProperties: false
            examples:
              Starknet Activation:
                value: {}
              Concordium Activation:
                value:
                  expiry: 1698768000
                  unsignedCdiStr: >-
                    {"proofs":{"challenge":"...","commitments":"..."},"ipIdentity":0,"credentialPublicKeys":{"threshold":1,"keys":{"0":{"schemeId":"Ed25519","verifyKey":"..."}}},"policy":{"validTo":"202412","createdAt":"202410","revealedAttributes":{}},"credId":"...","revocationThreshold":1,"arData":{"0":{"encIdCredPubShare":"..."}}}
              Canton Activation:
                value:
                  validatorId: cv-12o3k-t44tq-9ecb13hivsksiafg
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest'
  /wallets/{walletId}/transactions:
    post:
      summary: Sign and Broadcast Transaction
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Sign & Broadcast transaction enables communication with any arbitrary
        smart contract of the target blockchain. You can construct a transaction
        that performs a complex task and this endpoint will sign the
        transaction, add the signature and broadcast it to chain. It can be used
        to call smart contract functions like mint tokens and even deploy new
        smart contracts.


        | Status      |
        Definition                                                                                                                                     
        |

        |-------------|-------------------------------------------------------------------------------------------------------------------------------------------------|

        | Pending     | The request is pending approval due to a policy applied
        to the
        wallet.                                                                         
        |

        | Executing   | The request is approved and is in the process of being
        executed. note this status is only set for a short time between pending
        and broadcasted. |

        | Broadcasted | The transaction has been successfully written to the
        mempool.                                                                                  
        |

        | Confirmed   | The transaction has been confirmed on-chain by our
        indexing
        pipeline.                                                                          
        |

        | Failed      | Indicates either a system failure to complete the
        request or the transaction failed on
        chain.                                                   |

        | Rejected    | The request has been rejected by a policy approval
        action.                                                                                     
        |


          <Info>
          for reading from a "view" function on EVM chains, please use [Read Contract](https://docs.dfns.co/api-reference/networks/call-function) endpoint.
          </Info>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transactions:Create`: Always required   
          `FeeSponsors:Use`: Required if `feeSponsorId` is specified.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Transaction
                    transaction:
                      anyOf:
                        - type: string
                          pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                        - type: object
                          properties: {}
                      description: >-
                        The unsigned hex encoded transaction or JSON
                        transactions for compatible networks.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - transaction
                  additionalProperties: false
                  description: >
                    Signs an unsigned transaction and broadcasts it to chain.

                    For EVM transactions, you may use JSON objects:


                    | Field                |
                    Description                                                                                                                                                                                                                        
                    | Type - Optional              |

                    |----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|

                    | type                 | Ethereum transaction type. 0 for
                    legacy transaction; 2 for EIP-1559 transaction; 4 for
                    EIP-7702 transaction. Default is 2 if
                    undefined.                                                                                            
                    | Integer (optional)           |

                    | to                   | The destination address or target
                    contract. Leave undefined when the transaction is a contract
                    deployment.                                                                                                                         
                    | String (optional)            |

                    | value                | The amount of native tokens to
                    transfer in minimum
                    denomination.                                                                                                                                                                   
                    | String (optional)            |

                    | data                 | ABI encoded function call data in
                    hex format. Can also be the encoded smart contract data when
                    the transaction is a contract
                    deployment.                                                                                           
                    | String (optional)            |

                    | nonce                | The transaction number to guarantee
                    idempotency. If omitted, it will be provided automatically.
                    Note the same nonce can be submitted multiple times with a
                    higher maxFeePerGas to "overwrite" existing transactions in
                    the mempool. | Integer or String (optional) |

                    | gasLimit             | The maximum amount of gas that can
                    be spent for executing the transaction. If omitted, it will
                    be calculated
                    automatically.                                                                                                        
                    | String (optional)            |

                    | gasPrice             | The amount of per unit gas. Only
                    valid for a type 0 legacy transaction. If omitted, it will
                    be calculated
                    automatically.                                                                                                           
                    | String (optional)            |

                    | maxFeePerGas         | The maximum amount of per unit gas
                    willing to be paid for the transaction. Valid for type 2 and
                    type 4 transactions. If omitted, it will be calculated
                    automatically.                                                              
                    | String (optional)            |

                    | maxPriorityFeePerGas | The maximum amount of per unit gas
                    to be included as a tip to the validator. Valid for type 2
                    and type 4 transactions. If omitted, it will be calculated
                    automatically.                                                            
                    | String (optional)            |

                    | authorizationList    | A list that indicates what code the
                    signer of each authorization desires to execute in the
                    context of their EOA. Only valid for type 4
                    transaction.                                                                                
                    | Authorization (optional)     |


                    For Starknet transactions, you may use invocation request
                    objects
                    (https://github.com/starkware-libs/starknet-specs/blob/v0.8.1/api/starknet_api_openrpc.json#L2621):


                    | Field                         |
                    Description                                                                                        
                    | Type - Optional                  |

                    |-------------------------------|-----------------------------------------------------------------------------------------------------|----------------------------------|

                    | calldata                      | **Array** of encoded
                    function call
                    parameters                                                      
                    | **Array of Strings** (required)  |

                    | nonce                         | Transaction nonce in hex
                    format                                                                    
                    | String (required)                |

                    | version                       | Transaction version in hex
                    format. Typically "0x3" for current
                    transactions                         | String
                    (required)                |

                    | resourceBounds                | Gas bounds for L1, L2, and
                    L1 data
                    gas                                                             
                    | Object (required)                |

                    | ↳ resourceBounds.l1Gas        | L1 gas configuration with
                    maxAmount and
                    maxPricePerUnit                                            
                    | Object (required)                |

                    | ↳ resourceBounds.l2Gas        | L2 gas configuration with
                    maxAmount and
                    maxPricePerUnit                                            
                    | Object (required)                |

                    | ↳ resourceBounds.l1DataGas    | L1 data gas configuration
                    with maxAmount and
                    maxPricePerUnit                                        |
                    Object (required)                |

                    | tip                           | Transaction tip in hex
                    format. Typically
                    "0x0"                                                      |
                    String (required)                |

                    | paymasterData                 | Paymaster data
                    array                                                                               
                    | Array of Strings (required)      |

                    | accountDeploymentData         | Account deployment data
                    array                                                                      
                    | Array of Strings (required)      |

                    | nonceDataAvailabilityMode     | Data availability mode for
                    nonce. Typically "L1" for
                    now                                            | String
                    (required)                |

                    | feeDataAvailabilityMode       | Data availability mode for
                    fee. Typically "L1" for
                    now                                              | String
                    (required)                |


                    For Concordium transactions, you may use JSON objects (from
                    https://github.com/Concordium/concordium-node-sdk-js/blob/sdk/12.0.0-alpha.3/packages/sdk/src/transactions/Transaction.ts#L102)


                    | Field                            |
                    Description                                                                                                                                                 
                    | Type - Optional

                    |----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|

                    | Header                           | Transaction header for
                    the intermediary state of account transactions, i.e. prior
                    to being
                    signing.                                                         
                    | Object (required)               |

                    | ↳ Header.executionEnergyAmount   | The destination address
                    or target contract. Leave undefined when the transaction is
                    a contract
                    deployment.                                                  
                    | String/Number/BigInt (required) |

                    | ↳ Header.numSignatures           | The number of
                    signatures the transaction can hold. If "undefined", this
                    will be defined at the time of
                    signing                                               |
                    Integer (optional)              |

                    | ↳ Header.sender                  | The account address
                    that is source of this
                    transaction                                                                                                      
                    | String (optional)               |

                    | ↳ Header.nonce                   | The account
                    nonce                                                                                                                                           
                    | String/Number/BigInt (optional) |

                    | ↳ Header.expiry                  | expiration of the
                    transaction                                                                                                                               
                    | Integer (optional)              |

                    | Payload                          | The transaction account
                    payload in JSON format
                    (https://github.com/Concordium/concordium-node-sdk-js/blob/main/packages/sdk/src/accountTransactions.ts#L646)
                    | Object (required)               |




                    ```json

                    {
                      "kind": "Transaction",
                      "transaction": {
                        "to": "0x00fb58432ef9d418bf6688bcf0a226d2fcaa18e2",
                        "data": "0x40d097c3000000000000000000000000d2f77f85a50cdd650ca562f3a180284e1d5b4934",
                        "maxFeePerGas": "1626000000000",
                        "maxPriorityFeePerGas": "1332000000000"
                      }
                    }

                    ```


                    ```json

                    {
                      "kind": "Transaction",
                      "transaction": {
                        "type": "INVOKE",
                        "calldata": [
                          "1",
                          "2009894490435840142178314390393166646092438090257831307886760648929397478285",
                          "232670485425082704932579856502088130646006032362877466777181098476241604910",
                          "3",
                          "296727860213112272332383824629975240127004024814636931420022890499591637514",
                          "1",
                          "0"
                        ],
                        "nonce": "0x51",
                        "version": "0x3",
                        "resourceBounds": {
                          "l1Gas": { "maxAmount": "0x0", "maxPricePerUnit": "0x239a01ff6e6c" },
                          "l2Gas": { "maxAmount": "0x1694a0", "maxPricePerUnit": "0x10c388d00" },
                          "l1DataGas": { "maxAmount": "0x120", "maxPricePerUnit": "0x98e8" }
                        },
                        "tip": "0x0",
                        "paymasterData": [],
                        "accountDeploymentData": [],
                        "nonceDataAvailabilityMode": "L1",
                        "feeDataAvailabilityMode": "L1",
                      }
                    }

                    ```


                    ```json

                    {
                      "kind": "Transaction",
                      "transaction": {
                        "header": {
                          "sender": undefined,
                          "nonce": undefined,
                          "expiry": undefined,
                          "executionEnergyAmount": 300
                        },
                        "payload": {
                          "type": "transferWithMemo",
                          "toAddress": "4HhAcToZs6rtxGcgsBRS3VcjeAECPTTSTFVUKS6rBSVEZAPL6d",
                          "memo": "000968656c6c6f20636364",
                          "amount": "1"
                        }
                      }
                    }

                    ```
                  title: Transaction
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Psbt
                    psbt:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                      description: The hex encoded PSBT.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - psbt
                  additionalProperties: false
                  description: Signs a partially signed Bitcoin / Litecoin transaction.
                  title: PSBT
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - SignDocDirect
                    signDoc:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - signDoc
                  additionalProperties: false
                  description: >-
                    Signs an unsigned transaction using [sign mode
                    direct](https://docs.cosmos.network/main/learn/advanced/transactions#sign_mode_direct-preferred).
                  title: SignDocDirect
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - UserOperations
                    userOperations:
                      type: array
                      items:
                        type: object
                        properties:
                          to:
                            type: string
                            pattern: ^0x[0-9a-fA-F]{40}$
                            description: The destination address or target contract.
                          value:
                            type: string
                            pattern: ^\d+$
                            description: >-
                              The amount of native tokens to transfer in minimum
                              denomination.
                          data:
                            type: string
                            pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                            description: ABI encoded function call data in hex format.
                        required:
                          - to
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        A fee sponsor id to sponsor the transaction fee by
                        another wallet. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - userOperations
                    - feeSponsorId
                  additionalProperties: false
                  description: >-
                    Signs one or more user operations and broadcasts to chain
                    using a sponsored transaction. Used for invoking arbitrary
                    smart contract calls, including batch operations, with a
                    [fee sponsor](https://docs.dfns.co/features/fee-sponsors).


                    Can only be used with a fee sponsor. Unsponsored user
                    operations are not supported.
                  title: EVM Sponsored transaction
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - FunctionCall
                    call:
                      type: object
                      properties: {}
                      description: Function call arguments
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                    - call
                  additionalProperties: false
                  description: Calls an on-chain function that mutates state.
                  title: Function Call
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - TransferPreapproval
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                  additionalProperties: false
                  description: Enable canton coin auto approval.
                  title: Canton Transfer Preapproval
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Evm
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    value:
                      anyOf:
                        - type: string
                          pattern: ^\d+$
                        - type: string
                          pattern: ^0x[0-9a-fA-F]*$
                    data:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                    nonce:
                      anyOf:
                        - type: integer
                          minimum: 0
                        - type: string
                          pattern: ^\d+$
                        - type: string
                          pattern: ^0x[0-9a-fA-F]*$
                      description: The current nonce of the signer EOA.
                    gasLimit:
                      anyOf:
                        - type: string
                          pattern: ^\d+$
                        - type: string
                          pattern: ^0x[0-9a-fA-F]*$
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                  additionalProperties: false
                  description: >-
                    Deprecated. Only support type 2 transactions. Use the new
                    JSON format with `Transaction` kind instead which has
                    support for legacy and type 4 transactions.
                  title: <Deprecated> EVM Transaction
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Eip1559
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    value:
                      anyOf:
                        - type: string
                          pattern: ^\d+$
                        - type: string
                          pattern: ^0x[0-9a-fA-F]*$
                    data:
                      type: string
                      pattern: ^(0x)?([0-9a-fA-F][0-9a-fA-F])*$
                    nonce:
                      anyOf:
                        - type: integer
                          minimum: 0
                        - type: string
                          pattern: ^\d+$
                        - type: string
                          pattern: ^0x[0-9a-fA-F]*$
                    gasLimit:
                      anyOf:
                        - type: string
                          pattern: ^\d+$
                        - type: string
                          pattern: ^0x[0-9a-fA-F]*$
                    maxFeePerGas:
                      anyOf:
                        - type: string
                          pattern: ^\d+$
                        - type: string
                          pattern: ^0x[0-9a-fA-F]*$
                    maxPriorityFeePerGas:
                      anyOf:
                        - type: string
                          pattern: ^\d+$
                        - type: string
                          pattern: ^0x[0-9a-fA-F]*$
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                  additionalProperties: false
                  description: >-
                    Deprecated. Only support type 2 transactions. Use the new
                    JSON format with `Transaction` kind instead which has
                    support for legacy and type 4 transactions.
                  title: <Deprecated> EVM EIP-1559
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - CreateSolanaNonceAccounts
                    nonceAuthority:
                      type: string
                      description: >-
                        Optional Solana address. The wallet that will own the
                        nonce accounts (be their on-chain authority). When
                        omitted, the URL wallet bootstraps for itself. When set,
                        the URL wallet pays the rent and signs the bootstrap,
                        but the resulting accounts' authority is this address —
                        used to bootstrap on behalf of an offline wallet that
                        can't sign within the 90-second blockhash window.
                    count:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 8
                      description: >-
                        Optional. Number of nonce accounts to create in one
                        bootstrap transaction (1–8; capped by Solana max-tx-size
                        budget). Defaults to 1.
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: Priority for the bootstrap fee. Defaults to Standard.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                  additionalProperties: false
                  description: >-
                    Creates Solana durable-nonce accounts owned by the calling
                    wallet (or by `nonceAuthority` for cross-bootstrap).
                    Pre-populates the wallet's nonce account pool so subsequent
                    transfers can use `useDurableNonce: true`.
                  title: Create Solana Nonce Accounts
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - AcceptInboundAsset
                    issuer:
                      type: string
                      description: >-
                        Stellar (G-address) or XRPL (r-address) issuer of the
                        asset.
                    assetCode:
                      type: string
                      description: Stellar asset code (1–12 ASCII alphanumeric chars).
                    currency:
                      type: string
                      description: XRPL IOU currency code.
                    assetId:
                      type: string
                      pattern: ^\d+$
                      description: Algorand Standard Asset (ASA) id.
                    tokenId:
                      type: string
                      description: Hedera token entity id, e.g. "0.0.456858".
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key (read more
                        [here](https://docs.dfns.co/api-reference/idempotency)).
                  required:
                    - kind
                  additionalProperties: false
                  description: >-
                    Accept a non-native asset into the wallet on chains that
                    gate inbound holding at the protocol level. Maps to Stellar
                    `ChangeTrust`, XRPL `TrustSet`, Algorand asset opt-in (a
                    0-amount asset transfer to self), Hedera `TokenAssociate`,
                    or Canton `TransferPreapproval`. The body fields differ per
                    network — see the field descriptions.
                  title: AcceptInboundAsset
            examples:
              Eip1559:
                value:
                  kind: Eip1559
                  to: '0xe5a2ebc128e262ab1e3bd02bffbe16911adfbffc'
                  value: '1'
                  maxFeePerGas: '1000000000'
                  maxPriorityFeePerGas: '1000000'
              EVM Transaction:
                value:
                  kind: Transaction
                  transaction:
                    to: '0xe5a2ebc128e262ab1e3bd02bffbe16911adfbffb'
                    value: '1'
              Function Call:
                value:
                  kind: FunctionCall
                  call:
                    contract: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
                    abi:
                      type: function
                      name: transfer
                      stateMutability: nonpayable
                      inputs:
                        - name: to
                          type: address
                        - name: value
                          type: uint256
                      outputs:
                        - name: ''
                          type: bool
                    calldata:
                      to: '0xd964d741998edc275f3800eed113378a391951d9'
                      value: '1000000'
              Starknet Transaction:
                value:
                  kind: Transaction
                  transaction:
                    calldata:
                      - '1'
                      - >-
                        2009894490435840142178314390393166646092438090257831307886760648929397478285
                      - >-
                        232670485425082704932579856502088130646006032362877466777181098476241604910
                      - '3'
                      - >-
                        296727860213112272332383824629975240127004024814636931420022890499591637514
                      - '1'
                      - '0'
                    nonce: '0x51'
                    version: '0x3'
                    resourceBounds:
                      l1Gas:
                        maxAmount: '0x0'
                        maxPricePerUnit: '0x239a01ff6e6c'
                      l2Gas:
                        maxAmount: '0x1694a0'
                        maxPricePerUnit: '0x10c388d00'
                      l1DataGas:
                        maxAmount: '0x120'
                        maxPricePerUnit: '0x98e8'
                    tip: '0x0'
                    paymasterData: []
                    accountDeploymentData: []
                    nonceDataAvailabilityMode: L1
                    feeDataAvailabilityMode: L1
              Concordium Transaction:
                value:
                  kind: Transaction
                  transaction:
                    header:
                      executionEnergyAmount: 300
                    payload:
                      type: transferWithMemo
                      toAddress: 4HhAcToZs6rtxGcgsBRS3VcjeAECPTTSTFVUKS6rBSVEZAPL6d
                      memo: 000968656c6c6f20636364
                      amount: '1'
              Psbt:
                value:
                  kind: Psbt
                  psbt: >-
                    0x70736274ff0100710200000001ca17431a33a13d3ef8bfb041c8546071f9d3a609abe3c91efbed83265e1426730100000000ffffffff02e803000000000000160014a40a65b46ff36c53f1afb8e35e25a4c0bcfc9979d6d1150000000000160014237ad8ba2ffd992f6ebc7ab388e77f00fc87d1c9000000000001011f54d6150000000000160014237ad8ba2ffd992f6ebc7ab388e77f00fc87d1c9000000
              Transaction:
                value:
                  kind: Transaction
                  transaction: >-
                    0xe703847735941a82520894f0965f5eb35ace69f01b77031f2cff22daca622887470de4df82000080
              SignDoc:
                value:
                  kind: SignDocDirect
                  signDoc: >-
                    0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
              User Operations:
                value:
                  kind: UserOperations
                  userOperations:
                    - to: '0x1c7d4b196cb0c7b01d743fbc6116a902379c7238'
                      data: >-
                        a9059cbb000000000000000000000000d964d741998edc275f3800eed113378a391951d90000000000000000000000000000000000000000000000000000000000000001
                    - to: '0x1c7d4b196cb0c7b01d743fbc6116a902379c7238'
                      data: >-
                        a9059cbb000000000000000000000000e5a2ebc128e262ab1e3bd02bffbe16911adfbffb0000000000000000000000000000000000000000000000000000000000000001
                  feeSponsorId: fs-5ercu-e9r9u-8fpqi8bvu2eah0e2
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest'
    get:
      summary: List Transactions
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: Retrieves a list of transactions requests for the specified wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transactions:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TransactionRequest'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                  walletId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: Wallet id.
                    example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                required:
                  - items
                  - walletId
  /wallets/{walletId}/transactions/{transactionId}/cancel:
    post:
      summary: Cancel Transaction
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Cancels an EVM transaction by creating a replacement transaction with
        the same nonce. The new transaction sends 0 value to the same address,
        effectively nullifying the original transaction.
          
          This endpoint works for:
          - EVM-compatible networks (Ethereum, Polygon, BSC, etc.)
          - Transactions that are in 'Broadcasted' status (pending inclusion in a block)
          - Transactions that are in 'Failed' status, but failed off-chain (before being broadcasted to the network)
          
          The cancellation works by:
          1. Extracting the nonce from the original transaction's signed data
          2. Creating a new transaction to the same wallet address with 0 amount
          3. Using the same nonce to either:
             - Replace the original transaction in the mempool (if it was broadcasted)
             - Consume the nonce that was reserved but not used (if the transaction failed off-chain)
          
          Note: For transactions that were broadcasted on-chain, success is not guaranteed as it depends on network conditions and whether the original transaction has already been mined.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transactions:Create`: Always required.   
          `Wallets:Transactions:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Transaction id.
          required: true
          description: Transaction id.
          name: transactionId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest'
  /wallets/{walletId}/transfers/{transferId}/cancel:
    post:
      summary: Cancel Transfer
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Cancels an EVM transfer by creating a replacement transaction with the
        same nonce. The new transaction sends 0 value to the same address,
        effectively nullifying the original transfer.
          
          This endpoint works for:
          - EVM-compatible networks (Ethereum, Polygon, BSC, etc.)
          - Transfers that are in 'Broadcasted' status (pending inclusion in a block)
          - Transfers that are in 'Failed' status, but failed off-chain (before being broadcasted to the network)
          
          The cancellation works by:
          1. Extracting the nonce from the original transfer's signed data
          2. Creating a new transaction to the same wallet address with 0 amount
          3. Using the same nonce to either:
             - Replace the original transaction in the mempool (if it was broadcasted)
             - Consume the nonce that was reserved but not used (if the transfer failed off-chain)
          
          Note: For transfers that were broadcasted on-chain, success is not guaranteed as it depends on network conditions and whether the original transaction has already been mined.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transactions:Create`: Always required.   
          `Wallets:Transfers:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Transfer id.
          required: true
          description: Transfer id.
          name: transferId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest'
  /wallets/{walletId}/canton/ledger-api:
    post:
      summary: Proxy a request to the Canton Ledger API
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: >-
        Proxies a request to the Canton Ledger API associated with this wallet,
        using the validator's OAuth2 credentials. Restricted to a curated
        allow-list of read-style resources. Used to satisfy the Canton
        WalletConnect `canton_ledgerApi` method.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                requestMethod:
                  type: string
                  enum:
                    - GET
                    - POST
                  description: The HTTP method used against the Canton Ledger API.
                resource:
                  type: string
                  minLength: 1
                  description: >-
                    The Canton Ledger API resource path, beginning with `/v2/`
                    (e.g. `/v2/state/active-contracts`).
                body:
                  description: >-
                    Optional JSON body, forwarded verbatim for POST resources.
                    Must be omitted for GET resources.
              required:
                - requestMethod
                - resource
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
  /wallets/{walletId}/transactions/{transactionId}/speed-up:
    post:
      summary: Speed Up Transaction
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Speeds up a transaction by creating a replacement transaction with the
        same parameters but higher gas fees.
          
          This endpoint only works for:
          - EVM-compatible networks (Ethereum, Polygon, BSC, etc.)
          - Transactions that are in 'Broadcasted' status (already submitted to blockchain, but not confirmed yet)
          
          The speed-up works by:
          1. Extracting the parameters from the original broadcasted transaction
          2. Creating a new transaction with the same nonce, recipient, value, and data
          3. Using higher gas fees (maximum between 10% bump or Fast network fees)
          4. Replacing the original transaction in the mempool
          
          Note: Success is not guaranteed as it depends on network conditions and whether the original transaction has already been mined.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transactions:Create`: Always required.   
          `Wallets:Transactions:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Transaction id.
          required: true
          description: Transaction id.
          name: transactionId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest'
  /wallets/{walletId}/transfers/{transferId}/speed-up:
    post:
      summary: Speed Up Transfer
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Speeds up a transfer by creating a replacement transaction with the same
        parameters but higher gas fees.
          
          This endpoint only works for:
          - EVM-compatible networks (Ethereum, Polygon, BSC, etc.)
          - Transfers that are in 'Broadcasted' status (already submitted to blockchain, but not confirmed yet)
          
          The speed-up works by:
          1. Extracting the parameters from the original broadcasted transfer
          2. Creating a new transaction with the same nonce, recipient, value, and data
          3. Using higher gas fees (maximum between 10% bump or Fast network fees)
          4. Replacing the original transaction in the mempool
          
          Note: Success is not guaranteed as it depends on network conditions and whether the original transaction has already been mined.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transactions:Create`: Always required.   
          `Wallets:Transfers:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Transfer id.
          required: true
          description: Transfer id.
          name: transferId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest'
  /wallets:
    post:
      summary: Create Wallet
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Creates a new Wallet associated with the given chain (such as Bitcoin or
        Ethereum ). Returns a new wallet entity.
      x-mint:
        content: >-
          #### Authentication


          ✅ Organization User (`CustomerEmployee`)    

          ✅ Delegated User (`EndUser`)    

          ✅ Service Account


          #### Required Permissions


          `Wallets:Create`: Always required   

          `Keys:Create`: Required if wallet creation also creates a new [Key
          entity](https://docs.dfns.co/api-reference/keys). This is the default
          behavior.   

          `Keys:Reuse`: Required if `signingKey.id` is specified. Wallet will
          reuse an existing key instead of creating a new one.   

          `Keys:Delegate`: Required if `delegateTo` is specified.   

          `Wallets:Tags:Add`: Required if `tags` are specified.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  description: Network used for the wallet.
                  enum: *ref_54
                name:
                  type: string
                  maxLength: 100
                  description: Wallet nickname.
                signingKey:
                  type: object
                  properties:
                    id:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Use this parameter to create a wallet from an existing
                        key. This enables one key to be used across multiple
                        networks and have the same address if networks share the
                        same address format, ex. `Ethereum` and `Polygon`. If
                        specified, requires the `Keys:Reuse` permission. If the
                        key is delegated to an end user, then the new wallet
                        will be automatically delegated to the same end user.
                      example: key-01snl-t56gb-j8tsok0vn802p80i
                    scheme:
                      allOf:
                        - $ref: '#/components/schemas/KeyScheme'
                        - description: >-
                            Use this to specify the new key scheme for networks
                            that support multiple key formats. ex. use `Schnorr`
                            to create a `Bitcoin Taproot` wallet.
                    curve:
                      allOf:
                        - $ref: '#/components/schemas/KeyCurve'
                        - description: >-
                            Use this to specify the new key curve for networks
                            that support multiple key formats.
                    storeId:
                      type: string
                      description: >-
                        Use this to specify the key store the key material is
                        saved to.
                    deriveFrom:
                      type: object
                      properties:
                        keyId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: The master key to derive from.
                          example: key-01snl-t56gb-j8tsok0vn802p80i
                        path:
                          type: string
                          pattern: ^m(\/(0|[1-9]\d{0,9}))+$
                          description: >-
                            Use this to specify the derivation path of the
                            signing key. One will be auto generated if left
                            blank.
                      required:
                        - keyId
                      description: Use this for hierarchical deterministic key derivation.
                  description: Options for the wallet's underlying key
                delegateTo:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                  description: >-
                    ID of the end user to delegate this wallet to. The wallet
                    will only be usable by the end user. More info
                    [here](https://docs.dfns.co/advanced/delegated-wallets).
                  example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
                delayDelegation:
                  type: boolean
                  default: false
                  description: >-
                    Specify if you want to create the wallet from a service
                    account and later [delegate
                    it](/api-reference/keys/delegate-key) to an end user.
                externalId:
                  type: string
                  maxLength: 100
                  description: >-
                    User-defined value that can be used to correlate the entity
                    with an external system
                tags:
                  type: array
                  items:
                    type: string
                    pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
                    description: Wallet Tag.
                  maxItems: 10
                  description: >-
                    List of tags to be created for this wallet. If specified,
                    requires the `Wallets:Tags:Add` permission, like the [Tag
                    Wallet](https://docs.dfns.co/api-reference/wallets/tag-wallet)
                    endpoint.
              required:
                - network
              additionalProperties: false
            examples:
              Bitcoin Taproot:
                value:
                  network: BitcoinSignet
                  signingKey:
                    scheme: Schnorr
              Multi chain:
                value:
                  network: BaseSepolia
                  signingKey:
                    id: key-b56ng-qm1c8-pqaki69j8jmmafo
              Ethereum:
                value:
                  network: Ethereum
                  name: trading hot wallet
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Wallet'
                  - additionalProperties: false
    get:
      summary: List Wallets
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: >-
        Retrieves the list of Wallets in your organization. You can filter the
        results by owner (either by owner id or owner username). Pagination is
        supported via limit and paginationToken parameters.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            minLength: 1
            description: Filter by owner id or username.
          required: false
          description: Filter by owner id or username.
          name: owner
          in: query
        - schema:
            type: string
            minLength: 1
            description: '@deprecated use owner instead'
          required: false
          description: '@deprecated use owner instead'
          name: ownerId
          in: query
        - schema:
            type: string
            minLength: 1
            description: '@deprecated use owner instead'
          required: false
          description: '@deprecated use owner instead'
          name: ownerUsername
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Wallet'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /wallets/{walletId}/transactions/{transactionId}:
    get:
      summary: Get Transaction
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: Retrieve information about a specific transaction.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transactions:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Transaction id.
          required: true
          description: Transaction id.
          name: transactionId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest'
  /wallets/{walletId}/transfers/{transferId}:
    get:
      summary: Get Transfer
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: Retrieves a Wallet Transfer Request by its ID.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transfers:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Transfer id.
          required: true
          description: Transfer id.
          name: transferId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequest'
  /wallets/{walletId}:
    get:
      summary: Get Wallet
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: Retrieves a Wallet information by its ID.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The wallet to retrieve.
          required: true
          description: The wallet to retrieve.
          name: walletId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet'
    put:
      summary: Update Wallet
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Updates the name of an existing wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: walletId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type:
                    - string
                    - 'null'
                  maxLength: 100
                externalId:
                  type:
                    - string
                    - 'null'
                  maxLength: 100
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Wallet'
                  - additionalProperties: false
  /wallets/{walletId}/assets:
    get:
      summary: Get Wallet Assets
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: >-
        Retrieves a list of assets owned by the specified wallet.  Return values
        vary by chain as shown below.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: walletId
          in: path
        - schema:
            type: string
            enum:
              - 'true'
          required: false
          name: netWorth
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  walletId:
                    type: string
                  network:
                    $ref: '#/components/schemas/Network'
                  assets:
                    type: array
                    items:
                      allOf:
                        - oneOf:
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Native
                              required:
                                - kind
                              title: Native assets
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Aip21
                                metadata:
                                  type: string
                              required:
                                - kind
                                - metadata
                              title: Aptos Fungible Assets (AIP-21)
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Asa
                                assetId:
                                  type: string
                              required:
                                - kind
                                - assetId
                              title: Algorand Standard Assets (ASAs)
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Cis2
                                tokenAddress:
                                  type: string
                              required:
                                - kind
                                - tokenAddress
                              title: Concordium CIS-2 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum: *ref_116
                                contract:
                                  type: string
                              required:
                                - kind
                                - contract
                              title: EVM ERC-20/Starknet SNIP-2/TRON TRC-20 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Erc7984
                                contract:
                                  type: string
                              required:
                                - kind
                                - contract
                              title: EVM ERC-7984 confidential tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Hts
                                tokenId:
                                  type: string
                              required:
                                - kind
                                - tokenId
                              title: Hedera tokens (HTS)
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Iou
                                currency:
                                  type: string
                                issuer:
                                  type: string
                              required:
                                - kind
                                - currency
                                - issuer
                              title: XRP Ledger IOU tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Cip56
                                instrumentId:
                                  type: string
                                instrumentAdmin:
                                  type: string
                              required:
                                - kind
                                - instrumentId
                                - instrumentAdmin
                              title: Canton CIP-56 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum: *ref_117
                                coin:
                                  type: string
                              required:
                                - kind
                                - coin
                              title: Sui/IOTA Coin assets
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Xls33
                                issuanceId:
                                  type: string
                              required:
                                - kind
                                - issuanceId
                              title: XRP Ledger MPL (XLS-33) tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Asset
                                assetId:
                                  type: string
                              required:
                                - kind
                                - assetId
                              title: Polymesh/Cardano assets
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Cis7
                                tokenId:
                                  type: string
                              required:
                                - kind
                                - tokenId
                              title: Concordium PLTs ( CIS-7 tokens)
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Sep41
                                issuer:
                                  type: string
                                assetCode:
                                  type: string
                              required:
                                - kind
                                - issuer
                                - assetCode
                              title: Stellar SEP-41 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Trc10
                                tokenId:
                                  type: string
                              required:
                                - kind
                                - tokenId
                              title: TRON TRC-10 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum: *ref_118
                                mint:
                                  type: string
                              required:
                                - kind
                                - mint
                              title: Solana SPL/SPL2022 tokens
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - Tep74
                                master:
                                  type: string
                              required:
                                - kind
                                - master
                              title: TON TEP-74 Jetton
                        - type: object
                          properties:
                            symbol:
                              type: string
                            decimals:
                              type: number
                            verified:
                              type: boolean
                            balance:
                              type: string
                            quotes:
                              type: object
                              properties:
                                USD:
                                  type: number
                          required:
                            - decimals
                            - balance
                  netWorth:
                    type: object
                    properties:
                      USD:
                        type: number
                required:
                  - walletId
                  - network
                  - assets
  /wallets/{walletId}/history:
    get:
      summary: Get Wallet History
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: >-
        Retrieves a list of historical on chain activities for the specified
        wallet.


        The list reflects the indexed on-chain activity: it includes confirmed
        transactions only.


        If you need to list your on-going or failed transactions please use the
        related endpoints (

        [List
        Transfers](https://docs.dfns.co/api-reference/wallets/list-transfers) or

        [List
        Transactions](https://docs.dfns.co/api-reference/wallets/list-transactions)

        depending on the API you are using).
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet you want to get the history from.
          required: true
          description: Wallet you want to get the history from.
          name: walletId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            enum:
              - In
              - Out
            description: Transfer direction.
          required: false
          description: Transfer direction.
          name: direction
          in: query
        - schema:
            type: string
            enum:
              - NativeTransfer
              - Aip21Transfer
              - AsaTransfer
              - AssetTransfer
              - Cip56Transfer
              - Cis2Transfer
              - Cis7Transfer
              - CoinTransfer
              - Erc20Transfer
              - Erc721Transfer
              - Erc7984Transfer
              - HederaErc20Transfer
              - HederaErc721Transfer
              - Hip17Transfer
              - HtsTransfer
              - IouTransfer
              - LockedCoinTransfer
              - Sep41Transfer
              - Snip2Transfer
              - Snip3Transfer
              - SplTransfer
              - Spl2022Transfer
              - Tep74Transfer
              - Trc10Transfer
              - Trc20Transfer
              - Trc721Transfer
              - UtxoTransfer
              - Xls33Transfer
            description: Blockchain event kind.
          required: false
          description: Blockchain event kind.
          name: kind
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: contract
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/WalletHistoryEvent'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                  walletId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: Wallet id.
                    example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                  network:
                    $ref: '#/components/schemas/Network'
                required:
                  - items
                  - walletId
                  - network
  /wallets/{walletId}/nfts:
    get:
      summary: Get Wallet Nfts
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: Retrieves a list of NFTs owned by the specified Wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: walletId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  walletId:
                    type: string
                  network:
                    $ref: '#/components/schemas/Network'
                  nfts:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Asa
                            assetId:
                              type: string
                              description: The NFT id.
                            symbol:
                              type: string
                              description: The NFT symbol.
                            tokenUri:
                              type: string
                              description: The NFT metadata URI.
                          required:
                            - kind
                            - assetId
                          title: Algorand NFT
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Erc721
                                - Snip3
                                - Trc721
                            contract:
                              type: string
                              description: contract address.
                            tokenId:
                              type: string
                              description: The NFT id.
                            symbol:
                              type: string
                              description: The NFT symbol.
                            tokenUri:
                              type: string
                              description: The NFT metadata URI.
                          required:
                            - kind
                            - contract
                            - tokenId
                          title: ERC/TRC-721 NFT
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Hip17
                            tokenId:
                              type: string
                              description: The NFT id.
                            serialNumber:
                              type: string
                              description: The NFT serial number.
                            symbol:
                              type: string
                              description: The NFT symbol.
                            tokenUri:
                              type: string
                              description: The NFT metadata URI.
                          required:
                            - kind
                            - tokenId
                            - serialNumber
                          title: Hedera NFT
                required:
                  - walletId
                  - network
                  - nfts
  /wallets/import:
    post:
      summary: Import Wallet
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >
        <Warning>

        This endpoint is not enabled by default. [Contact
        Dfns](https://support.dfns.co) to have it activated.

        </Warning>


        Dfns secures private keys by generating them as MPC key shares in our
        decentralized key management network.  This happens by default when you
        [create a
        wallet](https://docs.dfns.co/api-reference/wallets/create-wallet).


        In some circumstances, however, you may need to import an existing
        wallet (an existing private key) into Dfns infrastructure, instead of
        creating a brand new wallet with Dfns and transfer funds to it. As an
        example, you might want to keep an existing wallet if its address is
        tied to a smart contract which you don't want to re-deploy.


        In such a case, Dfns exposes this wallet import API endpoint, which can
        be used in conjunction with our [import
        SDK](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/import-wallet).  
        Note this is intended to be used only to migrate wallets when first
        onboarding onto the Dfns platform.


        <Danger>

        Dfns can not guarantee the security of imported wallets, as we have no
        way to control who had access to the private key prior to import.  For
        this reason, this feature is restricted to Enterprise customers who have
        signed a contractual addendum limiting our liability for imported keys. 
        Please contact your sales representative for more information.

        </Danger>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Keys:Import`: Always required.   
          `Wallets:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 100
                curve:
                  type: string
                  enum:
                    - ed25519
                    - secp256k1
                    - stark
                protocol:
                  anyOf:
                    - type: string
                      enum:
                        - CGGMP24
                        - FROST
                        - FROST_BITCOIN
                        - GLOW20_DH
                        - KU23
                    - type: string
                      enum:
                        - CGGMP21
                minSigners:
                  type: integer
                  exclusiveMinimum: 0
                encryptedKeyShares:
                  type: array
                  items:
                    type: object
                    properties:
                      signerId:
                        type: string
                        minLength: 1
                      encryptedKeyShare:
                        type: string
                        minLength: 1
                    required:
                      - signerId
                      - encryptedKeyShare
                  minItems: 1
                network:
                  type: string
                  enum: *ref_54
                externalId:
                  type: string
              required:
                - curve
                - protocol
                - minSigners
                - encryptedKeyShares
                - network
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet'
  /wallets/{walletId}/transfers:
    get:
      summary: List Transfers
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: Retrieves a list of transfer requests for the specified wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transfers:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TransferRequest'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                  walletId:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                    description: Wallet id.
                    example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                required:
                  - items
                  - walletId
    post:
      summary: Transfer Asset
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-

        Transfer an asset out of the specified wallet to a destination address.

        For all fungible token transfers, the transfer amount must be specified
        in the minimum denomination of that token.

        For example, use the amount in Satoshi for a Bitcoin transfer, or the
        amount in Wei for an Ethereum transfer etc.


        See the different options in the Body description below. You can also
        select your kind of transfers in the payload examples in the different
        languages.


        <Tip>

        Binance chains users can use ERC transfers for BEP tokens and Native
        transfers for BNB.

        </Tip>


        <Note>

        Some blockchains may require additional steps before the transfer can be
        completed, such as creating a destination account (e.g., Stellar).
        Please refer to the specific blockchain documentation for any
        prerequisites or additional requirements.

        </Note>
            
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Transfers:Create`: Always required   
          `FeeSponsors:Use`: Required if `feeSponsorId` is specified.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: The source wallet id (`wa-...`).
          required: true
          description: The source wallet id (`wa-...`).
          name: walletId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Native
                    to:
                      type: string
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of native tokens to transfer in minimum
                        denomination.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag (supported networks only).
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: >-
                        The priority that determines the fees paid for the
                        transfer. All EVM compatible networks and Bitcoin
                        support `priority`. Not supported for other networks. It
                        uses the [estimate
                        fees](https://docs.dfns.co/api-reference/networks/estimate-fees)
                        API to calculate the transfer fees. When not specified,
                        defaults to `Standard` priority.
                    createDestinationAccount:
                      type: boolean
                      description: >-
                        Whether to create the destination account on chains that
                        require account creation (e.g., Stellar). Only valid for
                        chains that require the receiver account to exist before
                        transfer.
                    offer:
                      type: boolean
                      description: >-
                        Optional field for Canton, if true it will create a
                        transfer offer.
                    expiresAt:
                      type: string
                      format: date-time
                      description: >-
                        Optional field for Canton, especially useful in the
                        context of offers
                    useDurableNonce:
                      type: boolean
                      description: >-
                        Optional Solana-only flag. When `true` the SOL transfer
                        is built as a durable-nonce transaction using one of the
                        wallet's nonce accounts (picked server-side). Use this
                        for offline-signing flows where the construct →
                        broadcast gap may exceed 90 seconds. The wallet's nonce
                        account pool must be pre-populated via `POST
                        /wallets/{id}/transactions` with `kind:
                        CreateSolanaNonceAccounts`.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer the native token of the network. All networks
                    support the native token type.
                  title: Native Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Aip21
                    metadata:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{64}$
                      description: 'The asset metadata address. '
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{64}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - metadata
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer Aptos fungible asset that implement the [AIP-21
                    specification](https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-21.md).
                  title: Aptos Fungible Asset (AIP-21)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Asa
                    assetId:
                      type: string
                      pattern: ^\d+$
                      description: 'The token asset id. '
                    to:
                      type: string
                      pattern: ^[A-Z0-9]{58}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - assetId
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer Algorand standard assets, or
                    [ASAs](https://developer.algorand.org/docs/get-details/asa/).
                  title: Algorand Standard Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Asset
                    assetId:
                      type: string
                      description: 'The token asset id. '
                    to:
                      type: string
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - assetId
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer Cardano assets following [Mary
                    update](https://docs.cardano.org/about-cardano/evolution/upgrades/mary)
                  title: Cardano Asset
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Cip56
                    instrumentAdmin:
                      type: string
                      pattern: ^[a-zA-Z0-9-_]*::1220[a-f0-9]{64}$
                      description: The instrument admin address.
                    instrumentId:
                      type: string
                      description: The instrument id.
                    to:
                      type: string
                      pattern: ^[a-zA-Z0-9-_]*::1220[a-f0-9]{64}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    offer:
                      type: boolean
                      description: If true it will create a transfer offer.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - instrumentAdmin
                    - instrumentId
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer standard tokens that implement the [CIP-56
                    specification](https://github.com/global-synchronizer-foundation/cips/blob/main/cip-0056/cip-0056.md).
                  title: Canton Standard Token (CIP-56)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Cis2
                    to:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{50}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    tokenAddress:
                      type: string
                      description: >-
                        The token address following
                        (https://proposals.concordium.com/CIS/cis-2.html#token-address).
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - to
                    - amount
                    - tokenAddress
                  additionalProperties: false
                  description: >-
                    Transfer tokens that implement the [CIS-2
                    specification](https://proposals.concordium.software/CIS/cis-2.html).
                  title: CIS-2 Standard
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Cis7
                    to:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{50}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    tokenId:
                      type: string
                      description: The Cis7 token identifier.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - to
                    - amount
                    - tokenId
                  additionalProperties: false
                  description: >-
                    Transfer Concordium protocol level tokens.
                    (https://proposals.concordium.com/CIS/cis-7.html#cis-7-protocol-level-tokens-plts)
                  title: Concordium Protocol Level Token (CIS-7)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Coin
                    coin:
                      type: string
                      description: The coin identifier.
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{64}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - coin
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer Sui fungible assets that implement [coin
                    standard](https://docs.sui.io/standards/coin).
                  title: Sui Coin
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc20
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: The ERC-20 contract address.
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: >-
                        The priority that determines the fees paid for the
                        transfer.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - contract
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer fungible tokens that implement the [ERC-20
                    specification](https://eips.ethereum.org/EIPS/eip-20).
                  title: EVM Fungible Token (ERC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc721
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: The ERC-721 contract address.
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: The destination address.
                    tokenId:
                      type: string
                      pattern: ^\d+$
                      description: The token to transfer.
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: >-
                        The priority that determines the fees paid for the
                        transfer.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - contract
                    - to
                    - tokenId
                  additionalProperties: false
                  description: >-
                    Transfer non-fungible tokens that implement the [ERC-721
                    specification](https://eips.ethereum.org/EIPS/eip-721)
                  title: EVM Non Fungible Token (ERC-721)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Erc7984
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: The ERC-7984 confidential token contract address.
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    priority:
                      type: string
                      enum:
                        - Slow
                        - Standard
                        - Fast
                      description: >-
                        The priority that determines the fees paid for the
                        transfer.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - contract
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer confidential tokens that implement the [ERC-7984
                    specification](https://eips.ethereum.org/EIPS/eip-7984). The
                    transfer amount is encrypted on-chain using Fully
                    Homomorphic Encryption (FHE).
                  title: EVM Confidential Token (ERC-7984)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Hip17
                    tokenId:
                      type: string
                      description: The token to transfer.
                    serialNumber:
                      type: string
                      pattern: ^\d+$
                    to:
                      type: string
                      pattern: >-
                        ^(0x[0-9a-fA-F]{40}|0\.0\.(\d+|[0-9a-fA-F]{40}|[0-9a-fA-F]{64,}))$
                      description: The destination address.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - tokenId
                    - serialNumber
                    - to
                  additionalProperties: false
                  description: ''
                  title: Hedera Non-Fungible Token (HIP-17)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Hts
                    tokenId:
                      type: string
                      description: The token to transfer.
                    to:
                      type: string
                      pattern: >-
                        ^(0x[0-9a-fA-F]{40}|0\.0\.(\d+|[0-9a-fA-F]{40}|[0-9a-fA-F]{64,}))$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - tokenId
                    - to
                    - amount
                  additionalProperties: false
                  description: ''
                  title: Hedera Tokens (HTS)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Iou
                    currency:
                      type: string
                      description: The IOU currency code.
                    issuer:
                      type: string
                      pattern: ^r[1-9A-HJ-NP-Za-km-z]{24,34}$
                      description: The IOU issuer address.
                    to:
                      type: string
                      pattern: ^r[1-9A-HJ-NP-Za-km-z]{24,34}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - currency
                    - issuer
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer XRPL IOU tokens with specified currency and issuer.
                    (https://xrpl.org/docs/concepts/tokens/fungible-tokens/trust-line-tokens)
                  title: XRPL IOU Token
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Sep41
                    issuer:
                      type: string
                      pattern: ^(G[A-Z0-9]{55}|M[A-Z0-9]{68})$
                      description: The asset issuer address.
                    assetCode:
                      type: string
                      description: The asset code.
                    to:
                      type: string
                      pattern: ^(G[A-Z0-9]{55}|M[A-Z0-9]{68})$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - issuer
                    - assetCode
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer classic [Stellar
                    Assets](https://developers.stellar.org/docs/issuing-assets/anatomy-of-an-asset).
                    They all implement the [SEP-41 token
                    interface](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0041.md).
                  title: Stellar Classic Assets (SEP-41)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Snip2
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{64}$
                      description: The SNIP-2 (ERC-20-like) contract address.
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{64}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - contract
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer fungible tokens that implement the [SNIP-2
                    (ERC-20-like)
                    specification](https://github.com/starknet-io/SNIPs/blob/ea46a8777d8c8d53a43f45b7beb1abcc301a1a69/SNIPS/snip-2.md).
                  title: Starknet SNIP-2 (ERC-20 like)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Snip3
                    contract:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{64}$
                      description: The SNIP-3 (ERC-721) contract address.
                    to:
                      type: string
                      pattern: ^0x[0-9a-fA-F]{64}$
                      description: The destination address.
                    tokenId:
                      type: string
                      pattern: ^\d+$
                      description: The token to transfer.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - contract
                    - to
                    - tokenId
                  additionalProperties: false
                  description: >-
                    Transfer non-fungible tokens that implement the [SNIP-3
                    (ERC-721-like)
                    specification](https://github.com/starknet-io/SNIPs/blob/ea46a8777d8c8d53a43f45b7beb1abcc301a1a69/SNIPS/snip-3.md)
                  title: Starknet SNIP-3 (ERC-721-like)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum: *ref_119
                    to:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    mint:
                      type: string
                      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                      description: The mint account address.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag.
                    createDestinationAccount:
                      type: boolean
                      description: >-
                        If `true`, pay to create the associated token account
                        for the recipient if it doesn't exist. Defaults to
                        `false`.
                    useDurableNonce:
                      type: boolean
                      description: >-
                        Optional. When `true` the SPL transfer is built as a
                        durable-nonce transaction using one of the wallet's
                        nonce accounts (picked server-side). The wallet's nonce
                        account pool must be pre-populated via `POST
                        /wallets/{id}/transactions` with `kind:
                        CreateSolanaNonceAccounts`.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - to
                    - amount
                    - mint
                  additionalProperties: false
                  description: >-
                    Transfer [SPL tokens](https://spl.solana.com/token) or [SPL
                    2022 tokens](https://spl.solana.com/token-2022).
                  title: Solana Program Library Token (SPL and SPL 2022)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Tep74
                    to:
                      type: string
                      pattern: ^(?:[A-Za-z0-9\-_]{48}|\d+:[a-fA-F0-9]{64})$
                      description: The destination address.
                    master:
                      type: string
                      pattern: ^(?:[A-Za-z0-9\-_]{48}|\d+:[a-fA-F0-9]{64})$
                      description: The Jetton master contract address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - to
                    - master
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer
                    [Jetton](https://github.com/ton-blockchain/TEPs/blob/master/text/0074-jettons-standard.md)
                    tokens.
                  title: TON Jetton (TEP-74)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Trc10
                    tokenId:
                      type: string
                      pattern: ^\d+$
                      description: The token ID.
                    to:
                      type: string
                      pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - tokenId
                    - to
                    - amount
                  additionalProperties: false
                  description: Transfer TRON's TRC-10 fungible tokens
                  title: TRON Native Fungible Token (TRC-10)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Trc20
                    contract:
                      type: string
                      pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                      description: The smart contract address.
                    to:
                      type: string
                      pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - contract
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer fungible tokens that implement the TRC-20 smart
                    contract specification.
                  title: TRON Smart Contract Fungible Token (TRC-20)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Trc721
                    contract:
                      type: string
                      pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                      description: The smart contract address.
                    to:
                      type: string
                      pattern: ^T[1-9A-HJ-NP-Za-km-z]{33}$
                      description: The destination address.
                    tokenId:
                      type: string
                      pattern: ^\d+$
                      description: The token to transfer.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - contract
                    - to
                    - tokenId
                  additionalProperties: false
                  description: >-
                    Transfer non-fungible tokens that implement the TRC-721
                    smart contract specification.
                  title: TRON Non Fungible Token (TRC-721)
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - Xls33
                    issuanceId:
                      type: string
                      description: The XLS-33 issuance identifier.
                    to:
                      type: string
                      pattern: ^r[1-9A-HJ-NP-Za-km-z]{24,34}$
                      description: The destination address.
                    amount:
                      type: string
                      pattern: ^\d+$
                      description: >-
                        The amount of tokens to transfer in minimum
                        denomination.
                    memo:
                      anyOf:
                        - type: string
                          maxLength: 64
                          pattern: ^[a-zA-Z0-9]+$
                        - type: string
                          enum:
                            - ''
                      description: The memo or destination tag.
                    externalId:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        A unique ID from your system. It can be leveraged to be
                        used as an idempotency key. (read more
                        [here](https://docs.dfns.co/api-reference/idempotency))
                    travelRule:
                      oneOf:
                        - type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - Notabene
                            beneficiaryVASPdid:
                              type: string
                            beneficiaryProof:
                              type: object
                              additionalProperties: {}
                            originator:
                              type: object
                              additionalProperties: {}
                            beneficiary:
                              type: object
                              additionalProperties: {}
                          required:
                            - kind
                            - originator
                            - beneficiary
                          additionalProperties: false
                          title: Notabene Travel Rule
                      description: >-
                        A travel rule payload to associate with the transfer.
                        (read more
                        [here](https://docs.dfns.co/features/travel-rule))
                    feeSponsorId:
                      type: string
                      minLength: 1
                      maxLength: 64
                      pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                      description: >-
                        Id of the fee sponsor that will be used to pay for your
                        transfer fees, it might not be available for all
                        blockchains. (read more
                        [here](https://docs.dfns.co/features/fee-sponsors))
                      example: fs-5vqdl-gliqk-b4rfukqauov1sp7j
                  required:
                    - kind
                    - issuanceId
                    - to
                    - amount
                  additionalProperties: false
                  description: >-
                    Transfer XRPL XLS-33 Token with specified issuance ID.
                    (https://xrpl.org/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens
                  title: XRPL XLS-33 Token
            examples:
              Native:
                value:
                  kind: Native
                  to: '0xe5a2ebc128e262ab1e3bd02bffbe16911adfbffb'
                  amount: '1'
              Asa:
                value:
                  kind: Asa
                  assetId: '10458941'
                  to: CJLKQWNTSQU64F4OBJSQK35THVI4KE4QIT3KEYB4CRBHQAIMO2CD6JWBCY
                  amount: '1'
              Cardano Asset:
                description: >-
                  Transfer Cardano assets following [Mary
                  update](https://docs.cardano.org/about-cardano/evolution/upgrades/mary)
                value:
                  kind: Asset
                  assetId: >-
                    c003c63129289a15b2d87216ce7366ea1832cfb9fc967f524ff1a8b564666e73636f696e
                  to: >-
                    addr_test1vqucg65d0c2fmjexgeenwz4acajyfxj8qqewu9xl5vmq32casygkx
                  amount: '1'
              Cip56:
                value:
                  kind: Cip56
                  instrumentAdmin: >-
                    dfnsdev1::12209b43bea8836d8cb65f3e05515f44b19daf1cf9110096e407c50fb7134e0823ea
                  instrumentId: DfnsToken2
                  to: >-
                    dfns1::122035ead564c650e3051c6bad8e01f319b9db0acbfd2e0acf1c05baebcef16cb468
                  amount: '100000000000'
              Cis2:
                value:
                  kind: Cis2
                  tokenAddress: 33ojRvaXs8J2
                  to: 4HhAcToZs6rtxGcgsBRS3VcjeAECPTTSTFVUKS6rBSVEZAPL6d
                  amount: '3'
              Coin:
                value:
                  kind: Coin
                  coin: >-
                    0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC
                  to: >-
                    0x1d9c96adb0eda0b3beca44ed89143444b4147b30f06eef7bfc39cbbff848f6e5
                  amount: '1'
              Erc20:
                value:
                  kind: Erc20
                  contract: '0x6f14c02fc1f78322cfd7d707ab90f18bad3b54f5'
                  to: '0xe5a2ebc128e262ab1e3bd02bffbe16911adfbffb'
                  amount: '1'
              Erc20 Fee Sponsor:
                value:
                  kind: Erc20
                  contract: '0xF56636F7eD43068BEbe9D5Dc7486e70D10bCa5ac'
                  to: '0xe5a2ebc128e262ab1e3bd02bffbe16911adfbffb'
                  amount: '1000000000000000000'
                  feeSponsorId: fs-5c47l-bp7f9-82n9raruj5n3spbe
              Erc721:
                value:
                  kind: Erc721
                  contract: '0xc98f6a0670de5029faf44db6c35d935d534708cf'
                  to: '0xe5a2ebc128e262ab1e3bd02bffbe16911adfbffb'
                  tokenId: '1'
              Erc7984:
                value:
                  kind: Erc7984
                  contract: '0x593E77e7E2bEe748aa27942E1f2069b5B6902625'
                  to: '0xe5a2ebc128e262ab1e3bd02bffbe16911adfbffb'
                  amount: '1000000'
              Native Fee Sponsor:
                value:
                  kind: Native
                  to: '0xe5a2ebc128e262ab1e3bd02bffbe16911adfbffb'
                  amount: '1'
                  feeSponsorId: fs-5c47l-bp7f9-82n9raruj5n3spbe
              Native Offer:
                description: >-
                  Set `offer` field to `true` to create a transfer offer.
                  Currently only supported on Canton.
                value:
                  kind: Native
                  to: >-
                    dfns1::122035ead564c650e3051c6bad8e01f319b9db0acbfd2e0acf1c05baebcef16cb468
                  amount: '100000000000'
                  offer: true
              Cis7:
                value:
                  kind: Cis7
                  tokenId: USDR
                  to: 4HhAcToZs6rtxGcgsBRS3VcjeAECPTTSTFVUKS6rBSVEZAPL6d
                  amount: '1000000'
              Sep41:
                value:
                  kind: Sep41
                  issuer: GCIQLRAXSY4FDEMCEPOGQICBZKJZBRZURKSD75BFKASMFUKYMFAUQVQ5
                  assetCode: Dfns
                  to: GCVGVFCH2ECV2KIHJ46Q5NPFMTO5RAD3KGRJ3ZBHAZ37EMMAL7DOXXRS
                  amount: '1'
              Sep41 Fee Sponsor:
                value:
                  kind: Sep41
                  issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5
                  assetCode: USDC
                  to: GC32HQJNYDEMOSFLA5JFW4AREK4IXV4PMAGHMNBNE7ZF4X4SIRGN5ACC
                  amount: '1'
                  feeSponsorId: fs-43hcm-1pa06-99i97tj9srfnnlla
              Snip2:
                description: >-
                  Transfer fungible tokens that implement the SNIP-2
                  (ERC-20-like) specification on Starknet
                value:
                  kind: Snip2
                  contract: >-
                    0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7
                  to: >-
                    0x00a7f1280ab53c49cb06878ba23496359bd94f2d786baee710ec1f34acd40a0a
                  amount: '1000000000000000000'
              Snip3:
                description: >-
                  Transfer non-fungible tokens that implement the SNIP-3
                  (ERC-721-like) specification on Starknet
                value:
                  kind: Snip3
                  contract: >-
                    0x0367b438f8b77137bdeccf457676677e134c82c92f9580eda85df4f61236c101
                  to: >-
                    0x00a7f1280ab53c49cb06878ba23496359bd94f2d786baee710ec1f34acd40a0a
                  tokenId: '1'
              Spl:
                value:
                  kind: Spl
                  mint: BhkGzPPoadnw1sAymCj2zNH3JuBe6Lk68hNAcFNhMGeH
                  to: 3U6stgsD1FmA7o3omUguritCU8iWmUM7Rs6KqAHHxHVZ
                  amount: '1'
              Tep74:
                value:
                  kind: Tep74
                  master: kQBFAGo2Af6omLixtgsqqte_QXpZfjbEe8VfsqW_cWLyFz-h
                  to: 0QAWf1Hx6ZFX6-IQ2zsZTthHWOMNQHmoKFbuhQRvV3F_b3yd
                  amount: '1'
              Trc10:
                value:
                  kind: Trc10
                  tokenId: '1005273'
                  to: TADDx31pdCFfp3XrYxp6fQGbRxriYFLTrx
                  amount: '1'
              Trc721:
                value:
                  kind: Trc721
                  contract: TKgnDMWHYmwH24REe9XnrnwcNCvtb53n8Q
                  to: TADDx31pdCFfp3XrYxp6fQGbRxriYFLTrx
                  tokenId: '0'
              Iou:
                value:
                  kind: Iou
                  currency: USD
                  issuer: rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq
                  to: rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe
                  amount: '1000000'
              Xls33:
                value:
                  kind: Xls33
                  issuanceId: ABCDEF123456789
                  to: rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe
                  amount: '1000000'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequest'
  /wallets/{walletId}/tags:
    put:
      summary: Tag Wallet
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        Add a [Tag](https://docs.dfns.co/api-reference/wallets/tags) to a
        wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Tags:Add`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: walletId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tags:
                  type: array
                  items:
                    type: string
                    pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
                    description: Wallet Tag.
                  minItems: 1
                  maxItems: 10
              required:
                - tags
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties: {}
    delete:
      summary: Untag Wallet
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: 'Removes the specified tags from a wallet. '
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Tags:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: walletId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tags:
                  type: array
                  items:
                    type: string
                    pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
                    description: Wallet Tag.
                  maxItems: 10
                  description: List of tags.
              required:
                - tags
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /wallets/{walletId}/offers/{offerId}:
    get:
      summary: Get Offer
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: Retrieve information about a specific offer received on your wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Offers:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^offer-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Offer id.
          required: true
          description: Offer id.
          name: offerId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Offer'
  /wallets/{walletId}/offers:
    get:
      summary: List Offers
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: List all offers received on a specific wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Offers:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Offer'
                    description: Current page items.
                  nextPageToken:
                    type: string
                    description: >-
                      token to use as `paginationToken` to request the next
                      page.
                required:
                  - items
  /wallets/{walletId}/offers/{offerId}/accept:
    put:
      summary: Accept Offer
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Accept an offer received on your wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Offers:Settle`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^offer-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Offer id.
          required: true
          description: Offer id.
          name: offerId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Offer'
  /wallets/{walletId}/offers/{offerId}/reject:
    put:
      summary: Reject Offer
      tags:
        - Wallets
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Reject an offer received on your wallet.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ✅ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Offers:Settle`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^offer-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
            description: Offer id.
          required: true
          description: Offer id.
          name: offerId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Offer'
  /wallets/all/history:
    get:
      summary: List Org Wallet History
      tags:
        - Wallets
      security:
        - authenticationToken: []
      description: >-
        Retrieve the transaction history across all wallets within a specified
        timeframe. The time range is unbounded, but the CSV export is capped at
        100,000 rows.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Wallets:Read`: Always required.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
            description: Maximum number of items to return.
          required: false
          description: Maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Opaque token used to retrieve the next page. Returned as
              `nextPageToken` from the previous request.
          required: false
          description: >-
            Opaque token used to retrieve the next page. Returned as
            `nextPageToken` from the previous request.
          name: paginationToken
          in: query
        - schema:
            type: string
            format: date-time
            description: >-
              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
              UTC). Start of the time range to query.
          required: true
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). Start of the time range to query.
          name: startTime
          in: query
        - schema:
            type: string
            format: date-time
            description: >-
              [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
              UTC). End of the time range to query.
          required: true
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (must be
            UTC). End of the time range to query.
          name: endTime
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      orgId:
                        type: string
                      items:
                        type: array
                        items:
                          type: object
                          properties:
                            timestamp:
                              type: string
                            walletId:
                              type: string
                            network:
                              type: string
                            direction:
                              type: string
                            from:
                              type: string
                            to:
                              type: string
                            amount:
                              type: string
                            tokenId:
                              type: string
                            asset:
                              type: string
                            symbol:
                              type: string
                            decimals:
                              type: string
                            fee:
                              type: string
                            feeSymbol:
                              type: string
                            feeDecimals:
                              type: string
                            txHash:
                              type: string
                            verified:
                              type: boolean
                            usdAmount:
                              type: string
                          required:
                            - timestamp
                            - walletId
                            - network
                            - direction
                            - txHash
                      nextPageToken:
                        type: string
                    required:
                      - orgId
                      - items
                  - type: string
  /webhooks:
    post:
      summary: Create Webhook
      tags:
        - Webhooks
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Register a new webhook.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Webhooks:Create`: Always required.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: Webhook url
                status:
                  type: string
                  enum:
                    - Enabled
                    - Disabled
                  description: Webhook status
                description:
                  type: string
                  maxLength: 256
                events:
                  type: array
                  items:
                    anyOf:
                      - type: string
                        enum: *ref_112
                        description: WebhookEventKind
                      - type: string
                        enum:
                          - '*'
                    description: WebhookEventKind
                  minItems: 1
                  description: All events this webhook is subscribed to.
              required:
                - url
                - events
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookWithSecret'
    get:
      summary: List Webhooks
      tags:
        - Webhooks
      security:
        - authenticationToken: []
      description: >-
        List all webhooks for the authenticated user's organization. The results
        are paginated.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Webhooks:Read`: Always required.
      parameters:
        - schema:
            type: integer
            exclusiveMinimum: 0
            maximum: 200
          required: false
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Webhook'
                  nextPageToken:
                    type: string
                required:
                  - items
                additionalProperties: false
  /webhooks/{webhookId}:
    delete:
      summary: Delete Webhook
      tags:
        - Webhooks
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Deletes an existing webhook registration.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Webhooks:Delete`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: webhookId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  deleted:
                    type: boolean
                    enum:
                      - true
                required:
                  - deleted
    get:
      summary: Get Webhook
      tags:
        - Webhooks
      security:
        - authenticationToken: []
      description: Retrieve information about a specific webhook.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Webhooks:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: webhookId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
    put:
      summary: Update Webhook
      tags:
        - Webhooks
      security:
        - authenticationToken: []
          userActionSignature: []
      description: Update the definition of an existing webhook.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Webhooks:Update`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: webhookId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: Webhook url
                description:
                  type: string
                  maxLength: 256
                events:
                  type: array
                  items:
                    anyOf:
                      - type: string
                        enum: *ref_112
                        description: WebhookEventKind
                      - type: string
                        enum:
                          - '*'
                    description: WebhookEventKind
                  minItems: 1
                  description: All events this webhook is subscribed to.
                status:
                  type: string
                  enum:
                    - Enabled
                    - Disabled
                  description: Webhook status
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
  /webhooks/{webhookId}/ping:
    post:
      summary: Ping Webhook
      tags:
        - Webhooks
      security:
        - authenticationToken: []
          userActionSignature: []
      description: >-
        This endpoint is meant for webhook setup and troubleshooting. Calling
        the endpoint will trigger a fake test event that will be pushed to the
        webhook URL. The fake event will not be saved and not appear in further
        requests to Webhook Events.
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Webhooks:Ping`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: webhookId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  error:
                    type: string
                required:
                  - status
                additionalProperties: false
  /webhooks/{webhookId}/events/{webhookEventId}:
    get:
      summary: Get Webhook Event
      tags:
        - Webhooks
      security:
        - authenticationToken: []
      description: >-
        Retrieve a specific webhook event details by its ID.
          
        <Warning>

        We only keep a trace of those Webhook Events in our system for a
        **retention period of 31 days**. Past that, they are discarded, so you
        cannot see them using [List Webhook
        Events](https://docs.dfns.co/api-reference/webhooks/list-webhook-events)
        or [Get Webhook
        Event](https://docs.dfns.co/api-reference/webhooks/get-webhook-event)
        endpoints.

        </Warning>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Webhooks:Events:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^wh-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: webhookId
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^whe-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          required: true
          name: webhookEventId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEvent'
  /webhooks/{webhookId}/events:
    get:
      summary: List Webhook Events
      tags:
        - Webhooks
      security:
        - authenticationToken: []
      description: >-
        Lists all events for a given webhook. 



        <Warning>

        We only keep a trace of those Webhook Events in our system for a
        **retention period of 31 days**. Past that, they are discarded, so you
        cannot see them using [List Webhook
        Events](https://docs.dfns.co/api-reference/webhooks/list-webhook-events)
        or [Get Webhook
        Event](https://docs.dfns.co/api-reference/webhooks/get-webhook-event)
        endpoints.

        </Warning>
      x-mint:
        content: |-
          #### Authentication

          ✅ Organization User (`CustomerEmployee`)    
          ❌ Delegated User (`EndUser`)    
          ✅ Service Account

          #### Required Permissions

          `Webhooks:Events:Read`: Always required.
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: webhookId
          in: path
        - schema:
            type: string
            enum: *ref_112
          required: false
          name: kind
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
          required: false
          name: deliveryFailed
          in: query
        - schema:
            type: integer
            exclusiveMinimum: 0
            maximum: 200
          required: false
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
          required: false
          name: paginationToken
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/WebhookEvent'
                  nextPageToken:
                    type: string
                required:
                  - items
webhooks:
  payout.action.required:
    post:
      summary: Payout Action Required
      description: >-
        A [payout](https://docs.dfns.co/features/payouts) requires an action
        (for example, a confirmation) before it can proceed.
      tags:
        - Payouts
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - payout.action.required
                    data:
                      type: object
                      properties:
                        actionKind:
                          type: string
                          enum:
                            - Confirmation
                          description: The kind of action required.
                        payout:
                          oneOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: >-
                                    ^pyt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  description: Payout id.
                                  example: pyt-4ihii-9lonb-tmhjo9bor4odmb5h
                                walletId:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  description: The wallet ID used for the payout.
                                  example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                                fiatCurrency:
                                  type: string
                                  description: ISO-4217 fiat currency code for the payout.
                                asset:
                                  oneOf:
                                    - type: object
                                      properties:
                                        kind:
                                          type: string
                                          enum:
                                            - Erc20
                                        amount:
                                          type: string
                                          pattern: ^\d+$
                                          description: >-
                                            The amount of the asset to be paid out
                                            in minimum denomination.
                                        contract:
                                          type: string
                                          description: The ERC-20 contract address.
                                        network:
                                          $ref: '#/components/schemas/Network'
                                        metadata:
                                          type: object
                                          properties:
                                            name:
                                              type: string
                                              description: The display name of the token.
                                            symbol:
                                              type: string
                                              description: The ticker symbol of the token.
                                            decimals:
                                              type: integer
                                              description: Number of decimals used by the token.
                                            verified:
                                              type: boolean
                                              description: >-
                                                Whether the token is verified by DFNS as
                                                legitimate.
                                          required:
                                            - decimals
                                      required:
                                        - kind
                                        - amount
                                        - contract
                                        - network
                                      title: ERC-20 Asset
                                    - type: object
                                      properties:
                                        kind:
                                          type: string
                                          enum: *ref_123
                                        amount:
                                          type: string
                                          pattern: ^\d+$
                                          description: >-
                                            The amount of the asset to be paid out
                                            in minimum denomination.
                                        mint:
                                          type: string
                                          description: The token mint address.
                                        network:
                                          $ref: '#/components/schemas/Network'
                                        metadata:
                                          type: object
                                          properties:
                                            name:
                                              type: string
                                              description: The display name of the token.
                                            symbol:
                                              type: string
                                              description: The ticker symbol of the token.
                                            decimals:
                                              type: integer
                                              description: Number of decimals used by the token.
                                            verified:
                                              type: boolean
                                              description: >-
                                                Whether the token is verified by DFNS as
                                                legitimate.
                                          required:
                                            - decimals
                                      required:
                                        - kind
                                        - amount
                                        - mint
                                        - network
                                      title: SPL/SPL-2022 Asset
                                  description: >-
                                    The asset being paid out, including token
                                    descriptor and metadata.
                                externalId:
                                  type: string
                                  description: >-
                                    Optional external identifier for
                                    idempotency.
                                status:
                                  type: string
                                  enum:
                                    - Processing
                                    - Completed
                                    - Failed
                                    - Rejected
                                    - Expired
                                    - Canceled
                                  description: The current status of the payout.
                                requester:
                                  allOf:
                                    - $ref: '#/components/schemas/Requester'
                                    - description: >-
                                        The user/token that initiated the
                                        payout.
                                dateCreated:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the payout was created.
                                  example: 2023-04-14T20:41:28.715Z
                                dateFinalized:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the payout was finalized.
                                  example: 2023-04-14T20:41:28.715Z
                                provider:
                                  type: string
                                  enum:
                                    - Borderless
                                data:
                                  type: object
                                  properties:
                                    borderlessAccountId:
                                      type: string
                                      description: >-
                                        The Borderless account ID associated
                                        with the payout.
                                    paymentInstructionsId:
                                      type: string
                                      description: >-
                                        The Borderless payment instructions ID
                                        linked to the destination bank account.
                                    paymentPurpose:
                                      type: string
                                      enum:
                                        - salary payment
                                        - personal remittance
                                        - rent payment
                                        - property purchase
                                        - owned account abroad
                                        - advertising expenses
                                        - advisory fees
                                        - business insurance
                                        - construction
                                        - delivery fees
                                        - education
                                        - exports
                                        - donation
                                        - hotel
                                        - loan payment
                                        - maintenance expenses
                                        - medical expense
                                        - office expenses
                                        - royalty fees
                                        - service charge
                                        - shares investment
                                        - tax payment
                                        - transportation fees
                                        - travel
                                        - utility bills
                                        - other
                                      description: The purpose of the withdrawal payment.
                                    dateConfirmed:
                                      type: string
                                      format: date-time
                                      description: >-
                                        [ISO
                                        8601](https://en.wikipedia.org/wiki/ISO_8601)
                                        date (must be UTC). ISO 8601 timestamp
                                        when the settlement was confirmed via
                                        Action Confirm.
                                      example: 2023-04-14T20:41:28.715Z
                                    dateCanceled:
                                      type: string
                                      format: date-time
                                      description: >-
                                        [ISO
                                        8601](https://en.wikipedia.org/wiki/ISO_8601)
                                        date (must be UTC). ISO 8601 timestamp
                                        when the settlement was canceled via
                                        Action Cancel.
                                      example: 2023-04-14T20:41:28.715Z
                                    executionStatus:
                                      type: string
                                      enum:
                                        - Initializing
                                        - AwaitingPayoutInstructions
                                        - AwaitingPayoutConfirmation
                                        - SubmittingPayoutTransfer
                                        - PendingPolicyApproval
                                        - DepositProcessing
                                        - DisbursementPending
                                        - Completed
                                        - Rejected
                                        - Failed
                                        - Expired
                                        - Canceled
                                      description: The Borderless execution status.
                                    statusReason:
                                      type: string
                                      description: >-
                                        Reason for the current status, primarily
                                        for failure cases.
                                    country:
                                      type: string
                                      description: >-
                                        ISO-3166 Alpha-2 country code for the
                                        payout destination.
                                    borderlessPayoutId:
                                      type: string
                                      description: >-
                                        The ID assigned by Borderless when the
                                        payout is created.
                                    depositAddress:
                                      type: string
                                      description: The on-chain address to remit funds to.
                                    transferId:
                                      type: string
                                      description: >-
                                        The Dfns transfer ID used to settle the
                                        payout.
                                    transactionHash:
                                      type: string
                                      description: >-
                                        The blockchain transaction hash once the
                                        transfer is confirmed.
                                    dateDepositConfirmed:
                                      type: string
                                      format: date-time
                                      description: >-
                                        [ISO
                                        8601](https://en.wikipedia.org/wiki/ISO_8601)
                                        date (must be UTC). ISO 8601 timestamp
                                        when the on-chain deposit was confirmed.
                                      example: 2023-04-14T20:41:28.715Z
                                    datePayoutConfirmed:
                                      type: string
                                      format: date-time
                                      description: >-
                                        [ISO
                                        8601](https://en.wikipedia.org/wiki/ISO_8601)
                                        date (must be UTC). ISO 8601 timestamp
                                        when Borderless verified fiat has
                                        settled.
                                      example: 2023-04-14T20:41:28.715Z
                                  required:
                                    - borderlessAccountId
                                    - paymentInstructionsId
                                    - paymentPurpose
                                    - executionStatus
                                    - country
                                  description: Borderless provider-specific payout data.
                              required:
                                - id
                                - walletId
                                - fiatCurrency
                                - asset
                                - status
                                - requester
                                - dateCreated
                                - provider
                                - data
                              title: Borderless Payout
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: >-
                                    ^pyt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  description: Payout id.
                                  example: pyt-4ihii-9lonb-tmhjo9bor4odmb5h
                                walletId:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                  pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                  description: The wallet ID used for the payout.
                                  example: wa-5pfuu-9euek-h0odgb6snva8ph3k
                                fiatCurrency:
                                  type: string
                                  description: ISO-4217 fiat currency code for the payout.
                                asset:
                                  oneOf:
                                    - type: object
                                      properties:
                                        kind:
                                          type: string
                                          enum:
                                            - Erc20
                                        amount:
                                          type: string
                                          pattern: ^\d+$
                                          description: >-
                                            The amount of the asset to be paid out
                                            in minimum denomination.
                                        contract:
                                          type: string
                                          description: The ERC-20 contract address.
                                        network:
                                          $ref: '#/components/schemas/Network'
                                        metadata:
                                          type: object
                                          properties:
                                            name:
                                              type: string
                                              description: The display name of the token.
                                            symbol:
                                              type: string
                                              description: The ticker symbol of the token.
                                            decimals:
                                              type: integer
                                              description: Number of decimals used by the token.
                                            verified:
                                              type: boolean
                                              description: >-
                                                Whether the token is verified by DFNS as
                                                legitimate.
                                          required:
                                            - decimals
                                      required:
                                        - kind
                                        - amount
                                        - contract
                                        - network
                                      title: ERC-20 Asset
                                    - type: object
                                      properties:
                                        kind:
                                          type: string
                                          enum: *ref_123
                                        amount:
                                          type: string
                                          pattern: ^\d+$
                                          description: >-
                                            The amount of the asset to be paid out
                                            in minimum denomination.
                                        mint:
                                          type: string
                                          description: The token mint address.
                                        network:
                                          $ref: '#/components/schemas/Network'
                                        metadata:
                                          type: object
                                          properties:
                                            name:
                                              type: string
                                              description: The display name of the token.
                                            symbol:
                                              type: string
                                              description: The ticker symbol of the token.
                                            decimals:
                                              type: integer
                                              description: Number of decimals used by the token.
                                            verified:
                                              type: boolean
                                              description: >-
                                                Whether the token is verified by DFNS as
                                                legitimate.
                                          required:
                                            - decimals
                                      required:
                                        - kind
                                        - amount
                                        - mint
                                        - network
                                      title: SPL/SPL-2022 Asset
                                  description: >-
                                    The asset being paid out, including token
                                    descriptor and metadata.
                                externalId:
                                  type: string
                                  description: >-
                                    Optional external identifier for
                                    idempotency.
                                status:
                                  type: string
                                  enum:
                                    - Processing
                                    - Completed
                                    - Failed
                                    - Rejected
                                    - Expired
                                    - Canceled
                                  description: The current status of the payout.
                                requester:
                                  allOf:
                                    - $ref: '#/components/schemas/Requester'
                                    - description: >-
                                        The user/token that initiated the
                                        payout.
                                dateCreated:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the payout was created.
                                  example: 2023-04-14T20:41:28.715Z
                                dateFinalized:
                                  type: string
                                  format: date-time
                                  description: >-
                                    [ISO
                                    8601](https://en.wikipedia.org/wiki/ISO_8601)
                                    date (must be UTC). ISO 8601 timestamp when
                                    the payout was finalized.
                                  example: 2023-04-14T20:41:28.715Z
                                provider:
                                  type: string
                                  enum:
                                    - CircleMint
                                data:
                                  type: object
                                  properties:
                                    executionStatus:
                                      type: string
                                      enum:
                                        - Initializing
                                        - AwaitingDeposit
                                        - DepositConfirmed
                                        - AwaitingPayout
                                        - Completed
                                        - Rejected
                                        - Failed
                                        - Expired
                                        - Canceled
                                      description: The Circle Mint execution status.
                                    statusReason:
                                      type: string
                                      description: >-
                                        Reason for the current status, primarily
                                        for failure cases.
                                    bankId:
                                      type: string
                                      description: >-
                                        The Circle Mint bank account id the fiat
                                        is paid out to; absent for a balance
                                        destination.
                                    rail:
                                      type: string
                                      enum:
                                        - wire
                                        - sepa
                                        - sepa_instant
                                      description: >-
                                        The payout rail; absent for a balance
                                        destination.
                                    paymentIntentId:
                                      type: string
                                      description: >-
                                        Circle payment intent id (the unique
                                        per-operation deposit intent).
                                    depositAddress:
                                      type: string
                                      description: >-
                                        The unique per-operation address the
                                        wallet remits USDC/EURC to.
                                    transferId:
                                      type: string
                                      description: >-
                                        The Dfns transfer id used to send funds
                                        to the deposit address.
                                    transactionHash:
                                      type: string
                                      description: >-
                                        The blockchain transaction hash of the
                                        deposit transfer.
                                    circlePayoutId:
                                      type: string
                                      description: >-
                                        The id assigned by Circle when the fiat
                                        payout is created.
                                    trackingRef:
                                      type: string
                                      description: >-
                                        Circle tracking reference for the fiat
                                        payout.
                                    dateDepositConfirmed:
                                      type: string
                                      format: date-time
                                      description: >-
                                        [ISO
                                        8601](https://en.wikipedia.org/wiki/ISO_8601)
                                        date (must be UTC). ISO 8601 timestamp
                                        when the on-chain deposit was confirmed.
                                      example: 2023-04-14T20:41:28.715Z
                                    datePayoutConfirmed:
                                      type: string
                                      format: date-time
                                      description: >-
                                        [ISO
                                        8601](https://en.wikipedia.org/wiki/ISO_8601)
                                        date (must be UTC). ISO 8601 timestamp
                                        when Circle confirmed the fiat payout.
                                      example: 2023-04-14T20:41:28.715Z
                                  required:
                                    - executionStatus
                                  description: Circle Mint provider-specific payout data.
                              required:
                                - id
                                - walletId
                                - fiatCurrency
                                - asset
                                - status
                                - requester
                                - dateCreated
                                - provider
                                - data
                              title: Circle Mint Payout
                      required:
                        - actionKind
                        - payout
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  swap.completed:
    post:
      summary: Swap Completed
      description: A swap has completed successfully.
      tags:
        - Swaps
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - swap.completed
                    data:
                      type: object
                      properties:
                        orgId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Organization id.
                          example: or-30tnh-itmjs-s235s5ontr3r23h2
                        swap:
                          $ref: '#/components/schemas/Swap'
                      required:
                        - orgId
                        - swap
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  swap.failed:
    post:
      summary: Swap Failed
      description: A swap request has failed to process.
      tags:
        - Swaps
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - swap.failed
                    data:
                      type: object
                      properties:
                        orgId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: Organization id.
                          example: or-30tnh-itmjs-s235s5ontr3r23h2
                        swap:
                          $ref: '#/components/schemas/Swap'
                      required:
                        - orgId
                        - swap
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  vault.created:
    post:
      summary: Vault Created
      description: A vault has been created
      tags:
        - Vaults
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - vault.created
                    data:
                      type: object
                      properties:
                        vault:
                          $ref: '#/components/schemas/Vault'
                      required:
                        - vault
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  vault.updated:
    post:
      summary: Vault Updated
      description: A vault has been updated
      tags:
        - Vaults
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - vault.updated
                    data:
                      type: object
                      properties:
                        vault:
                          $ref: '#/components/schemas/Vault'
                      required:
                        - vault
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  vault.tags.modified:
    post:
      summary: Vault Tags Modified
      description: Tags have been added to or removed from a vault
      tags:
        - Vaults
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - vault.tags.modified
                    data:
                      type: object
                      properties:
                        vaultId:
                          type: string
                        tags:
                          type: array
                          items:
                            type: string
                        tagsAdded:
                          type: array
                          items:
                            type: string
                        tagsRemoved:
                          type: array
                          items:
                            type: string
                      required:
                        - vaultId
                        - tags
                        - tagsAdded
                        - tagsRemoved
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  vault.event.created:
    post:
      summary: Vault Event Created
      description: >-
        An entry has been appended to the vault balance ledger: an incoming
        transfer was detected, quarantined funds were released, or an outgoing
        transfer was initiated, confirmed, aborted, rejected or failed (see the
        `kind` field of the vault event)
      tags:
        - Vaults
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - vault.event.created
                    data:
                      type: object
                      properties:
                        vaultEvent:
                          $ref: '#/components/schemas/VaultEvent'
                      required:
                        - vaultEvent
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.created:
    post:
      summary: Wallet Created
      description: >-
        A new wallet has been
        [created](https://docs.dfns.co/api-reference/wallets/create-wallet).
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.created
                    data:
                      type: object
                      properties:
                        wallet:
                          $ref: '#/components/schemas/Wallet'
                      required:
                        - wallet
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.activated:
    post:
      summary: Wallet Activated
      description: >-
        A wallet has been
        [activated](https://docs.dfns.co/api-reference/wallets/activate-wallet)
        (for example, a Canton wallet).
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.activated
                    data:
                      type: object
                      properties:
                        wallet:
                          $ref: '#/components/schemas/Wallet'
                      required:
                        - wallet
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.delegated:
    post:
      summary: Wallet Delegated
      description: >-
        A wallet has been
        [delegated](https://docs.dfns.co/api-reference/wallets/delegate-wallet)
        to an end user.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.delegated
                    data:
                      type: object
                      properties:
                        wallet:
                          $ref: '#/components/schemas/Wallet'
                      required:
                        - wallet
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.tags.modified:
    post:
      summary: Wallet Tags Modified
      description: The tags of a wallet have been modified.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.tags.modified
                    data:
                      type: object
                      properties:
                        wallet:
                          $ref: '#/components/schemas/Wallet'
                        tagsRemoved:
                          type: array
                          items:
                            type: string
                        tagsAdded:
                          type: array
                          items:
                            type: string
                      required:
                        - wallet
                        - tagsRemoved
                        - tagsAdded
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.exported:
    post:
      summary: Wallet Exported
      description: A wallet has been exported (deprecated).
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.exported
                    data:
                      type: object
                      properties:
                        wallet:
                          $ref: '#/components/schemas/Wallet'
                      required:
                        - wallet
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.blockchainevent.detected:
    post:
      summary: Blockchain Event Detected
      description: >-
        A wallet event has been confirmed on chain (e.g.: a deposit). The
        confirmation delay per network is listed
        [here](https://docs.dfns.co/networks).
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.blockchainevent.detected
                    data:
                      type: object
                      properties:
                        blockchainEvent:
                          $ref: '#/components/schemas/WalletHistoryEvent'
                        wallet:
                          $ref: '#/components/schemas/Wallet'
                      required:
                        - blockchainEvent
                        - wallet
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.blockchain_event.transfer.included:
    post:
      summary: Blockchain Event Transfer Included
      description: >-
        A transfer to a wallet has been included in a block but is not yet
        confirmed on chain. Available only for selected networks ([see
        list](https://docs.dfns.co/networks)).
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.blockchain_event.transfer.included
                    data:
                      type: object
                      properties:
                        blockchainEvent:
                          $ref: '#/components/schemas/WalletHistoryEvent'
                        wallet:
                          $ref: '#/components/schemas/Wallet'
                      required:
                        - blockchainEvent
                        - wallet
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  address_watch.blockchain_event.transfer.confirmed:
    post:
      summary: Address Watch Blockchain Event Transfer Confirmed
      description: >-
        A transfer touching a watched address has been confirmed on chain (e.g.:
        a deposit).
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - address_watch.blockchain_event.transfer.confirmed
                    data:
                      type: object
                      properties:
                        blockchainEvent:
                          $ref: '#/components/schemas/AddressWatchHistoryEvent'
                        addressWatch:
                          $ref: '#/components/schemas/AddressWatch'
                      required:
                        - blockchainEvent
                        - addressWatch
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.offer.received:
    post:
      summary: Offer Received
      description: >-
        A new transfer
        [offer](https://docs.dfns.co/api-reference/wallets/list-offers) has been
        made to a wallet.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.offer.received
                    data:
                      type: object
                      properties:
                        offer:
                          $ref: '#/components/schemas/Offer'
                      required:
                        - offer
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.offer.accepted:
    post:
      summary: Offer Accepted
      description: >-
        A transfer
        [offer](https://docs.dfns.co/api-reference/wallets/accept-offer) has
        been accepted and the settlement confirmed on chain.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.offer.accepted
                    data:
                      type: object
                      properties:
                        offer:
                          $ref: '#/components/schemas/Offer'
                      required:
                        - offer
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.offer.rejected:
    post:
      summary: Offer Rejected
      description: >-
        A transfer
        [offer](https://docs.dfns.co/api-reference/wallets/reject-offer) has
        been rejected and the settlement confirmed on chain.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.offer.rejected
                    data:
                      type: object
                      properties:
                        offer:
                          $ref: '#/components/schemas/Offer'
                      required:
                        - offer
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.offer.withdrawn:
    post:
      summary: Offer Withdrawn
      description: A transfer offer has been withdrawn by the sender.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.offer.withdrawn
                    data:
                      type: object
                      properties:
                        offer:
                          $ref: '#/components/schemas/Offer'
                      required:
                        - offer
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transfer.requested:
    post:
      summary: Transfer Requested
      description: >-
        A [wallet
        transfer](https://docs.dfns.co/api-reference/wallets/transfer-asset)
        request has been created.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transfer.requested
                    data:
                      type: object
                      properties:
                        transferRequest:
                          $ref: '#/components/schemas/TransferRequest'
                      required:
                        - transferRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transfer.failed:
    post:
      summary: Transfer Failed
      description: >-
        A [wallet
        transfer](https://docs.dfns.co/api-reference/wallets/transfer-asset)
        request has failed to process.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transfer.failed
                    data:
                      type: object
                      properties:
                        transferRequest:
                          $ref: '#/components/schemas/TransferRequest'
                      required:
                        - transferRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transfer.rejected:
    post:
      summary: Transfer Rejected
      description: >-
        A [wallet
        transfer](https://docs.dfns.co/api-reference/wallets/transfer-asset)
        request with a policy approval has been rejected.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transfer.rejected
                    data:
                      type: object
                      properties:
                        transferRequest:
                          $ref: '#/components/schemas/TransferRequest'
                      required:
                        - transferRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transfer.broadcasted:
    post:
      summary: Transfer Broadcasted
      description: >-
        A [wallet
        transfer](https://docs.dfns.co/api-reference/wallets/transfer-asset)
        request has been submitted to the mempool.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transfer.broadcasted
                    data:
                      type: object
                      properties:
                        transferRequest:
                          $ref: '#/components/schemas/TransferRequest'
                      required:
                        - transferRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transfer.confirmed:
    post:
      summary: Transfer Confirmed
      description: >-
        A [wallet
        transfer](https://docs.dfns.co/api-reference/wallets/transfer-asset)
        request has been confirmed on chain. The confirmation delay per network
        is listed [here](https://docs.dfns.co/networks).
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transfer.confirmed
                    data:
                      type: object
                      properties:
                        transferRequest:
                          $ref: '#/components/schemas/TransferRequest'
                      required:
                        - transferRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transaction.broadcasted:
    post:
      summary: Transaction Broadcasted
      description: >-
        A [broadcast
        transaction](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction)
        request has been submitted to the mempool.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transaction.broadcasted
                    data:
                      type: object
                      properties:
                        transactionRequest:
                          $ref: '#/components/schemas/TransactionRequest'
                      required:
                        - transactionRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transaction.confirmed:
    post:
      summary: Transaction Confirmed
      description: >-
        A [broadcast
        transaction](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction)
        request has been confirmed on chain. The confirmation delay per network
        is listed [here](https://docs.dfns.co/networks).
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transaction.confirmed
                    data:
                      type: object
                      properties:
                        transactionRequest:
                          $ref: '#/components/schemas/TransactionRequest'
                      required:
                        - transactionRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transaction.failed:
    post:
      summary: Transaction Failed
      description: >-
        A [broadcast
        transaction](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction)
        request has failed to process. Indicates either a system failure to
        complete the request or that the transaction failed on chain.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transaction.failed
                    data:
                      type: object
                      properties:
                        transactionRequest:
                          $ref: '#/components/schemas/TransactionRequest'
                      required:
                        - transactionRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transaction.rejected:
    post:
      summary: Transaction Rejected
      description: >-
        A [broadcast
        transaction](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction)
        request with a policy approval has been rejected.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transaction.rejected
                    data:
                      type: object
                      properties:
                        transactionRequest:
                          $ref: '#/components/schemas/TransactionRequest'
                      required:
                        - transactionRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.transaction.requested:
    post:
      summary: Transaction Requested
      description: >-
        A [broadcast
        transaction](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction)
        request has been created.
      tags:
        - Wallets
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.transaction.requested
                    data:
                      type: object
                      properties:
                        transactionRequest:
                          $ref: '#/components/schemas/TransactionRequest'
                      required:
                        - transactionRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  key.created:
    post:
      summary: Key Created
      description: >-
        A key has been
        [created](https://docs.dfns.co/api-reference/keys/create-key).
      tags:
        - Keys
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - key.created
                    data:
                      type: object
                      properties:
                        key:
                          $ref: '#/components/schemas/Key'
                      required:
                        - key
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  key.delegated:
    post:
      summary: Key Delegated
      description: >-
        A key has been
        [delegated](https://docs.dfns.co/api-reference/keys/delegate-key) to an
        end user.
      tags:
        - Keys
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - key.delegated
                    data:
                      type: object
                      properties:
                        key:
                          $ref: '#/components/schemas/Key'
                      required:
                        - key
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  key.deleted:
    post:
      summary: Key Deleted
      description: >-
        A key has been
        [deleted](https://docs.dfns.co/api-reference/keys/delete-key).
      tags:
        - Keys
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - key.deleted
                    data:
                      type: object
                      properties:
                        key:
                          $ref: '#/components/schemas/Key'
                        wallets:
                          type: array
                          items:
                            $ref: '#/components/schemas/Wallet'
                      required:
                        - key
                        - wallets
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  key.exported:
    post:
      summary: Key Exported
      description: >-
        A key has been
        [exported](https://docs.dfns.co/api-reference/keys/export-key).
      tags:
        - Keys
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - key.exported
                    data:
                      type: object
                      properties:
                        key:
                          $ref: '#/components/schemas/Key'
                      required:
                        - key
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.signature.requested:
    post:
      summary: Signature Requested
      description: >-
        A [generate
        signature](https://docs.dfns.co/api-reference/keys/generate-signature)
        request has been created.
      tags:
        - Keys
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.signature.requested
                    data:
                      type: object
                      properties:
                        signatureRequest:
                          $ref: '#/components/schemas/SignatureRequest'
                      required:
                        - signatureRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.signature.failed:
    post:
      summary: Signature Failed
      description: >-
        A [generate
        signature](https://docs.dfns.co/api-reference/keys/generate-signature)
        request has failed to process.
      tags:
        - Keys
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.signature.failed
                    data:
                      type: object
                      properties:
                        signatureRequest:
                          $ref: '#/components/schemas/SignatureRequest'
                      required:
                        - signatureRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.signature.rejected:
    post:
      summary: Signature Rejected
      description: >-
        A [generate
        signature](https://docs.dfns.co/api-reference/keys/generate-signature)
        request with a policy approval has been rejected.
      tags:
        - Keys
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.signature.rejected
                    data:
                      type: object
                      properties:
                        signatureRequest:
                          $ref: '#/components/schemas/SignatureRequest'
                      required:
                        - signatureRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  wallet.signature.signed:
    post:
      summary: Signature Complete
      description: >-
        A [generate
        signature](https://docs.dfns.co/api-reference/keys/generate-signature)
        request has completed. The signature is available.
      tags:
        - Keys
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - wallet.signature.signed
                    data:
                      type: object
                      properties:
                        signatureRequest:
                          $ref: '#/components/schemas/SignatureRequest'
                      required:
                        - signatureRequest
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  policy.activity.resolved:
    post:
      summary: Policy Activity Resolved
      description: A policy has been fulfilled.
      tags:
        - Policies
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - policy.activity.resolved
                    data:
                      type: object
                      properties:
                        activityId:
                          type: string
                        status:
                          anyOf:
                            - type: string
                              enum:
                                - Cleared
                            - type: string
                              enum:
                                - Blocked
                        activityKind:
                          type: string
                          enum:
                            - Registry:Addresses:Modify
                            - Registry:ContractSchemas:Modify
                            - Permissions:Modify
                            - Permissions:Assign
                            - Policies:Modify
                            - Wallets:Sign
                            - Wallets:IncomingTransaction
                      required:
                        - activityId
                        - status
                        - activityKind
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  policy.approval.pending:
    post:
      summary: Policy Approval Pending
      description: >-
        A new [Approval](https://docs.dfns.co/api-reference/policy-approvals)
        process has been created and is pending.
      tags:
        - Policies
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - policy.approval.pending
                    data:
                      type: object
                      properties:
                        approval:
                          $ref: '#/components/schemas/PolicyApproval'
                      required:
                        - approval
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  policy.approval.resolved:
    post:
      summary: Policy Approval Resolved
      description: >-
        An [Approval](https://docs.dfns.co/api-reference/policy-approvals)
        process is finalized: it has been either approved or rejected.
      tags:
        - Policies
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - policy.approval.resolved
                    data:
                      type: object
                      properties:
                        activityId:
                          type: string
                        activityKind:
                          type: string
                          enum:
                            - Registry:Addresses:Modify
                            - Registry:ContractSchemas:Modify
                            - Permissions:Modify
                            - Permissions:Assign
                            - Policies:Modify
                            - Wallets:Sign
                            - Wallets:IncomingTransaction
                        status:
                          type: string
                          enum:
                            - Pending
                            - Approved
                            - Denied
                            - Expired
                      required:
                        - activityId
                        - activityKind
                        - status
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  policy.triggered:
    post:
      summary: Policy Triggered
      description: >-
        A policy got triggered upon some activity (the policy rule got
        evaluated, and it triggered).
      tags:
        - Policies
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - policy.triggered
                    data:
                      type: object
                      properties:
                        policyEvaluation:
                          type: object
                          properties:
                            id:
                              type: string
                            triggered:
                              type: boolean
                            status:
                              type: string
                              enum:
                                - Cleared
                                - Blocked
                                - Pending
                                - ApprovalRequired
                            reason:
                              type: string
                            date:
                              type: string
                            policy:
                              $ref: '#/components/schemas/Policy'
                            activity:
                              oneOf:
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Wallets:Sign
                                    transferRequest:
                                      $ref: '#/components/schemas/TransferRequest'
                                    transactionRequest:
                                      $ref: '#/components/schemas/TransactionRequest'
                                    signatureRequest:
                                      $ref: '#/components/schemas/SignatureRequest'
                                    swapRequest:
                                      $ref: '#/components/schemas/Swap'
                                  required:
                                    - kind
                                  description: >2

                                          A "`Wallets:Sign`" activity represents any activity which involves signing with a wallet. Currently, in our API, these can be:

                                    * a Transfer Request (created using the
                                    endpoint [Transfer Asset from
                                    Wallet](https://docs.dfns.co/api-reference/wallets/transfer-asset))

                                    * a Transaction Request (created using the
                                    endpoint [Broadcast Transaction from
                                    Wallet](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction))

                                    * a Signature Request (created using the
                                    endpoint [Generate Signature from
                                    Wallet](https://docs.dfns.co/api-reference/keys/generate-signature))
                                  title: Wallets:Sign
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Wallets:IncomingTransaction
                                    blockchainEvent:
                                      $ref: '#/components/schemas/WalletHistoryEvent'
                                  required:
                                    - kind
                                    - blockchainEvent
                                  description: >-
                                    A "`Wallets:IncomingTransaction`" activity
                                    represents when our indexers detected an
                                    incoming transaction into a wallet. This
                                    activity kind has to be used with the rule
                                    kind "`ChainalysisTransactionScreening`"
                                    (see more on
                                    [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis)
                                    integration page), and the action kind
                                    "`NoAction`", meaning that no actual action
                                    will be taken as a result of the Chainalysis
                                    screening, other than notifying you through
                                    a webhook event if the policy is triggered.
                                    The reason for that, is that the incoming
                                    transaction is already on-chain, so the
                                    funds are already in the wallet, we cannot
                                    block that transfer on chain.
                                  title: Wallets:IncomingTransaction
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Policies:Modify
                                    changeRequest:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                        requester:
                                          $ref: >-
                                            #/components/schemas/ChangeRequestRequester
                                        kind:
                                          type: string
                                          enum:
                                            - Policy
                                        operationKind:
                                          type: string
                                          enum: *ref_126
                                        status:
                                          type: string
                                          enum:
                                            - Applied
                                            - Failed
                                            - Pending
                                            - Rejected
                                        entityId:
                                          type: string
                                        dateCreated:
                                          type: string
                                          format: date-time
                                        dateResolved:
                                          type: string
                                          format: date-time
                                        approvalId:
                                          type: string
                                        body:
                                          $ref: '#/components/schemas/Policy'
                                      required:
                                        - id
                                        - requester
                                        - kind
                                        - operationKind
                                        - status
                                        - entityId
                                        - dateCreated
                                        - body
                                      additionalProperties: false
                                  required:
                                    - kind
                                    - changeRequest
                                  description: >2

                                          A "`Policies:Modify`" activity represents any activity which involves updating or archiving a policy. These activities are Policy change requests, created as a result of calling either:

                                    * the endpoint [Update
                                    Policy](https://docs.dfns.co/api-reference/policies/update-policy)

                                    * the endpoint [Delete
                                    Policy](https://docs.dfns.co/api-reference/policies/delete-policy)
                                  title: Policies:Modify
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Permissions:Modify
                                    changeRequest:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 64
                                          pattern: >-
                                            ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                          description: ID of the change request.
                                          example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                                        requester:
                                          $ref: >-
                                            #/components/schemas/ChangeRequestRequester
                                        status:
                                          type: string
                                          enum:
                                            - Applied
                                            - Failed
                                            - Pending
                                            - Rejected
                                          description: Current status of the change request.
                                        entityId:
                                          type: string
                                          description: ID of the entity being changed.
                                        dateCreated:
                                          type: string
                                          format: date-time
                                          description: >-
                                            [ISO
                                            8601](https://en.wikipedia.org/wiki/ISO_8601)
                                            date (must be UTC). Date the change
                                            request was created.
                                          example: 2023-04-14T20:41:28.715Z
                                        dateResolved:
                                          type: string
                                          format: date-time
                                          description: >-
                                            [ISO
                                            8601](https://en.wikipedia.org/wiki/ISO_8601)
                                            date (must be UTC). Date the change
                                            request was resolved.
                                          example: 2023-04-14T20:41:28.715Z
                                        approvalId:
                                          type: string
                                          minLength: 1
                                          maxLength: 64
                                          pattern: >-
                                            ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                          example: ap-2a9in-tt2a1-983lho480p35ejd0
                                        kind:
                                          type: string
                                          enum:
                                            - Permission
                                        operationKind:
                                          type: string
                                          enum: *ref_125
                                        body:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 64
                                              pattern: >-
                                                ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                              description: >-
                                                ID of the permission (also referred to
                                                as "role" in the dashboard).
                                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                                            name:
                                              type: string
                                              description: >-
                                                Human-readable name of the permission
                                                (role).
                                            status:
                                              type: string
                                              enum:
                                                - Active
                                              description: Current status of the permission.
                                            operations:
                                              type: array
                                              items:
                                                type: string
                                              description: >-
                                                List of API operations this permission
                                                grants access to. See [Permissions
                                                List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions)
                                                for available operations.
                                            isImmutable:
                                              type: boolean
                                              description: >-
                                                Whether this permission is
                                                system-managed and cannot be modified.
                                            isArchived:
                                              type: boolean
                                              description: >-
                                                Whether this permission has been
                                                archived (soft-deleted).
                                          required:
                                            - id
                                            - name
                                            - status
                                            - operations
                                            - isImmutable
                                            - isArchived
                                          additionalProperties: false
                                      required:
                                        - id
                                        - requester
                                        - status
                                        - entityId
                                        - dateCreated
                                        - kind
                                        - operationKind
                                        - body
                                      additionalProperties: false
                                  required:
                                    - kind
                                    - changeRequest
                                  description: >2

                                          A "`Permissions:Modify`" activity represents any activity which involves updating or archiving a permission. These activities are Permission change requests, created as a result of calling either:

                                    * the endpoint [Update
                                    Permission](https://docs.dfns.co/api-reference/permissions/update-permission)

                                    * the endpoint [Delete
                                    Permission](https://docs.dfns.co/api-reference/permissions/archive-permission)
                                  title: Permissions:Modify
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Permissions:Assign
                                    changeRequest:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 64
                                          pattern: >-
                                            ^cr-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                          description: ID of the change request.
                                          example: cr-6uunn-bm6ja-f6rmod5kqrk5rbel
                                        requester:
                                          $ref: >-
                                            #/components/schemas/ChangeRequestRequester
                                        status:
                                          type: string
                                          enum:
                                            - Applied
                                            - Failed
                                            - Pending
                                            - Rejected
                                          description: Current status of the change request.
                                        entityId:
                                          type: string
                                          description: ID of the entity being changed.
                                        dateCreated:
                                          type: string
                                          format: date-time
                                          description: >-
                                            [ISO
                                            8601](https://en.wikipedia.org/wiki/ISO_8601)
                                            date (must be UTC). Date the change
                                            request was created.
                                          example: 2023-04-14T20:41:28.715Z
                                        dateResolved:
                                          type: string
                                          format: date-time
                                          description: >-
                                            [ISO
                                            8601](https://en.wikipedia.org/wiki/ISO_8601)
                                            date (must be UTC). Date the change
                                            request was resolved.
                                          example: 2023-04-14T20:41:28.715Z
                                        approvalId:
                                          type: string
                                          minLength: 1
                                          maxLength: 64
                                          pattern: >-
                                            ^ap-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                          example: ap-2a9in-tt2a1-983lho480p35ejd0
                                        kind:
                                          type: string
                                          enum:
                                            - Assignment
                                        operationKind:
                                          type: string
                                          enum: *ref_124
                                        body:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 64
                                              pattern: >-
                                                ^as-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                              description: ID of the permission assignment.
                                              example: as-1vcmc-qrek0-6b4vii9pln60907e
                                            permissionId:
                                              type: string
                                              minLength: 1
                                              maxLength: 64
                                              pattern: >-
                                                ^pm-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                              description: >-
                                                ID of the permission (also referred to
                                                as "role" in the dashboard).
                                              example: pm-37vj4-jkr4l-lc9945spfftkne57
                                            identityId:
                                              type: string
                                              description: >-
                                                ID of the identity the permission is
                                                assigned to. Can be a user ID, a service
                                                account ID, or a personal access token
                                                (PAT) ID.
                                            isImmutable:
                                              type: boolean
                                              description: >-
                                                Whether this assignment is
                                                system-managed and cannot be modified.
                                          required:
                                            - id
                                            - permissionId
                                            - identityId
                                            - isImmutable
                                          additionalProperties: false
                                      required:
                                        - id
                                        - requester
                                        - status
                                        - entityId
                                        - dateCreated
                                        - kind
                                        - operationKind
                                        - body
                                      additionalProperties: false
                                  required:
                                    - kind
                                    - changeRequest
                                  description: >2

                                          A "`Permissions:Assign`" activity represents any activity which involves assigning a permission (or revoking it, aka "deleting a permission assignment"). These activities are Assignment change requests, created as a result of calling either:

                                    * the endpoint [Assign
                                    Permission](https://docs.dfns.co/api-reference/permissions/assign-permission)

                                    * the endpoint [Revoke
                                    Permission](https://docs.dfns.co/api-reference/permissions/revoke-permission)
                                  title: Permissions:Assign
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Registry:Addresses:Modify
                                    changeRequest:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                        kind:
                                          type: string
                                          enum:
                                            - Alias
                                        body:
                                          oneOf:
                                            - type: object
                                              properties:
                                                entityId:
                                                  type: string
                                                alias:
                                                  type: string
                                                operationKind:
                                                  type: string
                                                  enum:
                                                    - Create
                                                description:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 200
                                                values:
                                                  type: object
                                                  properties:
                                                    add:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          network:
                                                            $ref: '#/components/schemas/Network'
                                                          memo:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 64
                                                            pattern: ^[a-zA-Z0-9]+$
                                                          value:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 300
                                                            pattern: ^[a-zA-Z0-9_:.-]+$
                                                        required:
                                                          - network
                                                          - value
                                                  required:
                                                    - add
                                              required:
                                                - entityId
                                                - alias
                                                - operationKind
                                                - values
                                              additionalProperties: false
                                              title: Alias creation
                                            - type: object
                                              properties:
                                                entityId:
                                                  type: string
                                                alias:
                                                  type: string
                                                operationKind:
                                                  type: string
                                                  enum:
                                                    - Update
                                                description:
                                                  type:
                                                    - string
                                                    - 'null'
                                                  minLength: 1
                                                  maxLength: 200
                                                values:
                                                  type: object
                                                  properties:
                                                    add:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          network:
                                                            $ref: '#/components/schemas/Network'
                                                          memo:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 64
                                                            pattern: ^[a-zA-Z0-9]+$
                                                          value:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 300
                                                            pattern: ^[a-zA-Z0-9_:.-]+$
                                                        required:
                                                          - network
                                                          - value
                                                    remove:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          network:
                                                            $ref: '#/components/schemas/Network'
                                                          memo:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 64
                                                            pattern: ^[a-zA-Z0-9]+$
                                                          value:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 300
                                                            pattern: ^[a-zA-Z0-9_:.-]+$
                                                        required:
                                                          - network
                                                          - value
                                                  required:
                                                    - add
                                                    - remove
                                              required:
                                                - entityId
                                                - alias
                                                - operationKind
                                                - values
                                              additionalProperties: false
                                              title: Alias update
                                            - type: object
                                              properties:
                                                entityId:
                                                  type: string
                                                alias:
                                                  type: string
                                                operationKind:
                                                  type: string
                                                  enum:
                                                    - Delete
                                              required:
                                                - entityId
                                                - alias
                                                - operationKind
                                              title: Alias deletion
                                      required:
                                        - id
                                        - kind
                                        - body
                                  required:
                                    - kind
                                    - changeRequest
                                  description: ''
                                  title: Registry:Addresses:Modify
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      enum:
                                        - Registry:ContractSchemas:Modify
                                    changeRequest:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                        kind:
                                          type: string
                                          enum:
                                            - SmartContract
                                        operationKind:
                                          type: string
                                          enum: *ref_131
                                        body:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 64
                                              pattern: >-
                                                ^cs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                                              example: cs-30ude-5i87r-gfrpg3fi68l2u14b
                                            name:
                                              type: string
                                              minLength: 1
                                              maxLength: 50
                                              pattern: ^[a-z0-9-]+$
                                            description:
                                              type: string
                                              minLength: 1
                                              maxLength: 200
                                            network:
                                              type: string
                                              enum: *ref_121
                                            address:
                                              type: string
                                              pattern: ^0x[0-9a-fA-F]{40}$
                                            schema: {}
                                          required:
                                            - id
                                            - name
                                            - network
                                            - address
                                      required:
                                        - id
                                        - kind
                                        - operationKind
                                        - body
                                  required:
                                    - kind
                                    - changeRequest
                                  description: ''
                                  title: Registry:ContractSchemas:Modify
                            context:
                              type: object
                              additionalProperties: {}
                            autoRejectDate:
                              type: string
                            autoClearDate:
                              type: string
                          required:
                            - id
                            - reason
                            - date
                            - policy
                            - activity
                            - context
                      required:
                        - policyEvaluation
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
  webhook.event.retry.triggered:
    post:
      summary: Webhook Event Retry
      description: >-
        A webhook delivery is being retried. See [Webhook Event Deliveries &
        Retries](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries)
        for details.
      tags:
        - Webhooks
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEnvelopeBase'
                - type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - webhook.event.retry.triggered
                    data:
                      type: object
                      properties:
                        id:
                          type: string
                          description: ID of this webhook retry event.
                        webhookId:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^wh-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: ID of the webhook to which this event is delivered.
                          example: wh-705m3-si5pq-k3kkp3vv9fnehdil
                        retryOf:
                          type: string
                          minLength: 1
                          maxLength: 64
                          pattern: ^whe-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
                          description: >-
                            ID of the webhook event whose delivery failed and is
                            retried.
                          example: whe-544ul-uqgad-jkgltj5p6fvd04cj
                        deliveryAttempt:
                          type: number
                          description: Attempt number of this delivery attempt.
                        originalEvent:
                          allOf:
                            - $ref: '#/components/schemas/WebhookEvent'
                            - description: The original Dfns event.
                      required:
                        - id
                        - webhookId
                        - retryOf
                        - deliveryAttempt
                        - originalEvent
                  required:
                    - kind
                    - data
      responses:
        '200':
          description: >-
            Respond with a 200 to indicate that the event was successfully
            received. If your endpoint returns anything else than a 200 status
            code, we will consider the delivery has failed and retry later. See
            details
            [here](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries).
x-networks:
  - id: Algorand
    name: Algorand
    testnets:
      - network: AlgorandTestnet
        faucet: https://bank.testnet.algorand.network/
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - ASA
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Aptos
    name: Aptos
    testnets:
      - network: AptosTestnet
        faucet: https://www.aptosfaucet.com/
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - AIP-21
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: ArbitrumOne
    name: Arbitrum One
    testnets:
      - network: ArbitrumSepolia
        faucet: https://cloud.google.com/application/web3/faucet
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: AvalancheC
    name: Avalanche C-Chain
    testnets:
      - network: AvalancheCFuji
        faucet: https://faucets.chain.link/fuji
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: BabylonGenesis
    name: Babylon Genesis
    testnets:
      - network: BabylonTestnet5
        faucet: >-
          https://docs.babylonlabs.io/developers/babylon_genesis_chain/baby_faucets/
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Base
    name: Base
    testnets:
      - network: BaseSepolia
        faucet: https://docs.base.org/base-chain/tools/network-faucets
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Berachain
    name: Berachain
    testnets:
      - network: BerachainBepolia
        faucet: https://bepolia.faucet.berachain.com/
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Bsc
    name: Binance Smart Chain
    testnets:
      - network: BscTestnet
        faucet: https://www.bnbchain.org/en/testnet-faucet
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Bitcoin
    name: Bitcoin
    testnets:
      - network: BitcoinSignet
        faucet: https://signetfaucet.com/
      - network: BitcoinTestnet4
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards: null
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
      - scheme: Schnorr
        curve: secp256k1
    footnote: null
  - id: BitcoinCash
    name: Bitcoin Cash
    testnets: []
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Bob
    name: BOB
    testnets:
      - network: BobSepolia
        faucet: https://faucets.chain.link/bob-testnet
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Canton
    name: Canton
    testnets:
      - network: CantonTestnet
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - CIP-56
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Cardano
    name: Cardano
    testnets:
      - network: CardanoPreprod
        faucet: https://docs.cardano.org/cardano-testnets/tools/faucet
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - Asset
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Celo
    name: Celo
    testnets:
      - network: CeloAlfajores
        faucet: https://faucet.celo.org
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: '[^2]'
  - id: Codex
    name: Codex
    testnets:
      - network: CodexSepolia
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Concordium
    name: Concordium
    testnets:
      - network: ConcordiumTestnet
        faucet: >-
          https://github.com/Concordium/concordium-dapp-examples/tree/main/testnet-faucet
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - CIS-2
      - CIS-7
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: CosmosHub4
    name: Cosmos Hub 4
    testnets:
      - network: CosmosIcsTestnet
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Dogecoin
    name: Dogecoin
    testnets:
      - network: DogecoinTestnet
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Ethereum
    name: Ethereum
    testnets:
      - network: EthereumHoodi
        faucet: null
      - network: EthereumSepolia
        faucet: https://cloud.google.com/application/web3/faucet/ethereum/sepolia
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
      - ERC-7984
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: EthereumClassic
    name: Ethereum Classic
    testnets:
      - network: EthereumClassicMordor
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: FlareC
    name: Flare C-Chain
    testnets:
      - network: FlareCCoston2
        faucet: https://faucet.flare.network/coston2
    tier: 1
    specialty: true
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: FlowEvm
    name: Flow EVM
    testnets:
      - network: FlowEvmTestnet
        faucet: https://faucet.flow.com/fund-account
    tier: 1
    specialty: true
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Hedera
    name: Hedera
    testnets:
      - network: HederaTestnet
        faucet: https://portal.hedera.com/faucet
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - HTS
      - HIP-17
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: InternetComputer
    name: ICP (aka Dfinity)
    testnets: []
    tier: 1
    specialty: true
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Ink
    name: Ink
    testnets:
      - network: InkSepolia
        faucet: https://inkonchain.com/faucet
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Ion
    name: ION
    testnets:
      - network: IonTestnet
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - TEP-74
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Iota
    name: Iota
    testnets:
      - network: IotaTestnet
        faucet: https://docs.iota.org/developer/getting-started/get-coins
    tier: 1
    specialty: true
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Kusama
    name: Kusama
    testnets:
      - network: Westend
        faucet: https://faucet.polkadot.io/westend
    tier: 2
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: >-
      @deprecated Assets have been moved to Asset Hub. Refer to [multichain
      wallets](https://docs.dfns.co/guides/multichain-wallets) to recover your
      funds.
  - id: KusamaAssetHub
    name: Kusama Asset Hub
    testnets:
      - network: WestendAssetHub
        faucet: null
    tier: 2
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Litecoin
    name: Litecoin
    testnets:
      - network: LitecoinTestnet
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
      - scheme: Schnorr
        curve: secp256k1
    footnote: null
  - id: Movement
    name: Movement
    testnets:
      - network: MovementTestnet
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - AIP-21
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Near
    name: NEAR
    testnets:
      - network: NearTestnet
        faucet: https://near-faucet.io/
    tier: 2
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Optimism
    name: Optimism
    testnets:
      - network: OptimismSepolia
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Origyn
    name: ORIGYN
    testnets: []
    tier: 1
    specialty: true
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Plasma
    name: Plasma
    testnets:
      - network: PlasmaTestnet
        faucet: https://www.plasma.to/docs/plasma-chain/tools/faucets
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Plume
    name: Plume
    testnets:
      - network: PlumeSepolia
        faucet: https://faucet.plume.org/
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Polkadot
    name: Polkadot
    testnets:
      - network: Paseo
        faucet: null
    tier: 2
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: >-
      @deprecated Assets have been moved to Asset Hub. Refer to [multichain
      wallets](https://docs.dfns.co/guides/multichain-wallets) to recover your
      funds.
  - id: PolkadotAssetHub
    name: Polkadot Asset Hub
    testnets:
      - network: PaseoAssetHub
        faucet: null
    tier: 2
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Polygon
    name: Polygon
    testnets:
      - network: PolygonAmoy
        faucet: https://faucet.polygon.technology/
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Polymesh
    name: Polymesh
    testnets:
      - network: PolymeshTestnet
        faucet: null
    tier: 1
    specialty: true
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Race
    name: Race
    testnets:
      - network: RaceSepolia
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Rayls
    name: Rayls
    testnets:
      - network: RaylsTestnet
        faucet: https://devnet-dapp.rayls.com/
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards: null
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Robinhood
    name: Robinhood Chain
    testnets:
      - network: RobinhoodSepolia
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: SeiPacific1
    name: Sei Pacific
    testnets:
      - network: SeiAtlantic2
        faucet: https://docs.sei.io/learn/faucet
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Solana
    name: Solana
    testnets:
      - network: SolanaDevnet
        faucet: https://faucet.solana.com/
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - SPL
      - SPL2022
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Sonic
    name: Sonic
    testnets:
      - network: SonicTestnet
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Starknet
    name: Starknet
    testnets:
      - network: StarknetSepolia
        faucet: https://starknet-faucet.vercel.app
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - SNIP-2
      - SNIP-3
    keyFormats:
      - scheme: ECDSA
        curve: stark
    footnote: null
  - id: Stellar
    name: Stellar
    testnets:
      - network: StellarTestnet
        faucet: https://lab.stellar.org/account/fund
    tier: 1
    specialty: false
    feeSponsor: true
    walletConnect: true
    standards:
      - SEP-41
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Sui
    name: Sui
    testnets:
      - network: SuiTestnet
        faucet: https://faucet.sui.io/
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - Coin
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Tempo
    name: Tempo
    testnets:
      - network: TempoModerato
        faucet: null
    tier: 1
    specialty: true
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Tezos
    name: Tezos
    testnets:
      - network: TezosGhostnet
        faucet: null
      - network: TezosShadownet
        faucet: https://faucet.shadownet.teztnets.com/
    tier: 2
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards: null
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Ton
    name: TON
    testnets:
      - network: TonTestnet
        faucet: https://faucet.chainstack.com/ton-testnet-faucet
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - TEP-74
    keyFormats:
      - scheme: EdDSA
        curve: ed25519
    footnote: null
  - id: Tron
    name: TRON
    testnets:
      - network: TronNile
        faucet: https://nileex.io/join/getJoinPage
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - TRC-10
      - TRC-20
      - TRC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Tsc
    name: Trusted Smart Chain
    testnets:
      - network: TscTestnet1
        faucet: null
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: XLayer
    name: X Layer Network
    testnets:
      - network: XLayerSepolia
        faucet: https://web3.okx.com/xlayer/faucet/xlayerfaucet/
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: Xdc
    name: XDC Network
    testnets:
      - network: XdcApothem
        faucet: https://faucet.apothem.network/
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: true
    standards:
      - ERC-20
      - ERC-721
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
    footnote: null
  - id: XrpLedger
    name: XrpLedger (aka Ripple)
    testnets:
      - network: XrpLedgerTestnet
        faucet: https://xrpl.org/resources/dev-tools/xrp-faucets
    tier: 1
    specialty: false
    feeSponsor: false
    walletConnect: false
    standards:
      - IOU
      - XLS-33
    keyFormats:
      - scheme: ECDSA
        curve: secp256k1
      - scheme: EdDSA
        curve: ed25519
    footnote: null
