> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dfns.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Sign and Broadcast Transaction

> 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/read-contract) endpoint.
  </Info>



## OpenAPI

````yaml /openapi.yaml post /wallets/{walletId}/transactions
openapi: 3.1.0
info:
  version: 1.807.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
security: []
paths:
  /wallets/{walletId}/transactions:
    post:
      tags:
        - Wallets
      summary: Sign and Broadcast Transaction
      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/read-contract) endpoint.
          </Info>
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Wallet id.
          required: true
          description: Wallet id.
          name: walletId
          in: path
      requestBody:
        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
            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'
      security:
        - authenticationToken: []
          userActionSignature: []
components:
  schemas:
    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:
                    - 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
      required:
        - id
        - walletId
        - network
        - requester
        - requestBody
        - status
        - dateRequested
    Network:
      type: string
      title: Network
      enum:
        - Algorand
        - AlgorandTestnet
        - Aptos
        - AptosTestnet
        - ArbitrumOne
        - ArbitrumSepolia
        - ArcTestnet
        - AvalancheC
        - AvalancheCFuji
        - BabylonGenesis
        - BabylonTestnet5
        - Base
        - BaseSepolia
        - Berachain
        - BerachainBepolia
        - Bitcoin
        - BitcoinSignet
        - BitcoinTestnet3
        - BitcoinCash
        - Bob
        - BobSepolia
        - Bsc
        - BscTestnet
        - Canton
        - CantonTestnet
        - Cardano
        - CardanoPreprod
        - Concordium
        - ConcordiumTestnet
        - Celo
        - CeloAlfajores
        - Codex
        - CodexSepolia
        - CosmosHub4
        - CosmosIcsTestnet
        - Dogecoin
        - DogecoinTestnet
        - Ethereum
        - EthereumClassic
        - EthereumClassicMordor
        - EthereumSepolia
        - EthereumHolesky
        - EthereumHoodi
        - FantomOpera
        - FantomTestnet
        - FlareC
        - FlareCCoston2
        - FlowEvm
        - FlowEvmTestnet
        - Hedera
        - HederaTestnet
        - Ink
        - InkSepolia
        - InternetComputer
        - Ion
        - IonTestnet
        - Iota
        - IotaTestnet
        - Kaspa
        - Kusama
        - KusamaAssetHub
        - Litecoin
        - LitecoinTestnet
        - Near
        - NearTestnet
        - Optimism
        - OptimismSepolia
        - Origyn
        - Plasma
        - PlasmaTestnet
        - Plume
        - PlumeSepolia
        - Paseo
        - PaseoAssetHub
        - Polkadot
        - PolkadotAssetHub
        - Polygon
        - PolygonAmoy
        - Polymesh
        - PolymeshTestnet
        - Race
        - RaceSepolia
        - SeiAtlantic2
        - SeiPacific1
        - Solana
        - SolanaDevnet
        - Starknet
        - StarknetSepolia
        - Stellar
        - StellarTestnet
        - Sui
        - SuiTestnet
        - Tezos
        - TezosGhostnet
        - Tempo
        - TempoModerato
        - Tsc
        - TscTestnet1
        - Ton
        - TonTestnet
        - Tron
        - TronNile
        - Westend
        - WestendAssetHub
        - Xdc
        - XdcApothem
        - XLayer
        - XLayerSepolia
        - XrpLedger
        - XrpLedgerTestnet
    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.
  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)

````