MPC-TSS
Operations
EVM
Send
Override Transaction

Override Transaction

API Documentation: Override Transaction

Overview

This API endpoint allows you to override previous transaction, by creating new transaction with same nonce but different transaction data.

  • HTTP Method: POST
  • Endpoint: /api/v1/wallet/eth/override

Request Body Parameters

  • walletId (required): this will be used to determine which key used to sign. The type is string.
  • overrideRequestId (required): The ID of the previous request that you want to be override.
  • feeMultiplierPercentage (required): The percentage of fee increment (in percentage).
  • transactionType (required): The type of new transaction that want to be override the previous transaction, the possible values are : send_coin, send_erc20, send_erc721, send_erc1155, send_raw, send_transaction and send_generic
  • pin : The PIN is necessary if the wallet has a PIN enabled. The PIN need to be in hashed format (SHA-256).

Request Body Parameters for send_coin

  • to (required): the destination EVM address that will receive the coin.
  • amount (required): in the wei format.

Example Request Body

{      
    "walletId" : "...",        
    "overrideRequestId": "2055187f-5c20-4cc4-8063-3eb1a3383da5",
    "transactionType": "send_coin",
    "feeMultiplierPercentage": 10, // 10% increment
    "to" : "0xeF236f1b35B2105836540c23d055d1BFb6c5db52",
    "amount": "10000000000000000000000000000"
}

Request Body Parameters for send_erc20

  • to (required): the destination EVM address that will receive the NFT.
  • amount (required): amount in wei unit format.
  • tokenAddress (required): the ERC20 token contract address.

Example Request Body

{      
    "walletId" : "...",        
    "overrideRequestId": "2055187f-5c20-4cc4-8063-3eb1a3383da5",
    "transactionType": "send_erc20",
    "feeMultiplierPercentage": 10, // 10% increment
    "to" : "0xeF236f1b35B2105836540c23d055d1BFb6c5db52",
    "amount": "3000000",
    "tokenAddress": "0x280c2D3182574d65139EE65383BD6285380d393d"
}

Request Body Parameters for send_erc721

  • to (required): the destination EVM address that will receive the NFT.
  • tokenId (required): the NFT ID.
  • tokenAddress (required): the NFT contract address.

Example Request Body

{      
    "walletId" : "...",        
    "overrideRequestId": "2055187f-5c20-4cc4-8063-3eb1a3383da5",
    "transactionType": "send_erc721",
    "feeMultiplierPercentage": 10, // 10% increment
    "to" : "0xeF236f1b35B2105836540c23d055d1BFb6c5db52",
    "tokenId": "1",
    "tokenAddress": "0x280c2D3182574d65139EE65383BD6285380d393d",
}

Request Body Parameters for send_erc1155

  • to (required): the destination EVM address that will receive the NFT.
  • amount (required): the Amount in wei unit format.
  • tokenId (required): the Token ID.
  • tokenAddress (required): the Token contract address.

Example Request Body

{      
    "walletId" : "...",        
    "overrideRequestId": "2055187f-5c20-4cc4-8063-3eb1a3383da5",
    "transactionType": "send_erc1155",
    "feeMultiplierPercentage": 10, // 10% increment
    "to" : "0xeF236f1b35B2105836540c23d055d1BFb6c5db52",
    "amount": "1",
    "tokenId": "1",
    "tokenAddress": "0x280c2D3182574d65139EE65383BD6285380d393d"
}

Request Body Parameters for send_raw

  • rawUnsignedTransaction (required): Unsigned transaction in hex format (can be with prefix 0x or without prefix 0x).

Example Request Body

{      
    "walletId" : "...",        
    "overrideRequestId": "2055187f-5c20-4cc4-8063-3eb1a3383da5",
    "transactionType": "send_raw",
    "feeMultiplierPercentage": 10, // 10% increment
    "rawUnsignedTransaction": "0x02f082426801843b9aca00848321560082522894f08f55777ca21aee3aeb451ffcdb4db322a73c6c8207d0822222c0808080"
}

Request Body Parameters for send_transaction

  • to (required): The recipient’s Ethereum address, specified in standard Ethereum address format.
  • data (required): The data associated with the transaction. If no specific data is provided, use 0x to indicate an empty transaction.
  • nonce (required): The sender’s nonce, which is a number representing the number of transactions sent from the sender’s address. This should be an integer.
  • gasFeeCap (required): The maximum gas fee (in gwei) the sender is willing to pay for the transaction, represented as a number (maxFeePerGas).
  • gasTipCap (required): The maximum tip fee (in gwei) the sender is willing to provide as a priority fee to miners, represented as a number (maxPriorityFeePerGas).
  • gas (required): The amount of gas (in units) required for the transaction to be processed. This should be specified as a number.
  • value (required): The amount of Ether (in wei) to be transferred in the transaction. The value should be represented as an integer in wei (the smallest unit of Ether).

Example Request Body

{      
    "walletId" : "...",        
    "overrideRequestId": "2055187f-5c20-4cc4-8063-3eb1a3383da5",
    "transactionType": "send_transaction",
    "feeMultiplierPercentage": 10, // 10% increment
    "to": "0x69DDcdE165b784c059cC3E9DFA1cdc374cd6F3C3",
    "data": "0x",
    "nonce": 1,
    "gasFeeCap": 20000000000,  // 20 gwei
    "gasTipCap": 10000000000,  // 10 gwei
    "gas": 21000,
    "value": 1000000000000000000  // 1 Ether (in wei)
}

Request

Request Headers

  • X-CLIENT-ID: (required): Client ID which was generated when register in Xellar TSS API Service Dashboard.
  • X-SIGNATURE: (required): Calculated signature, please refer to Authorization section.
  • X-TIMESTAMP: (required): Request timestamp in RFC3339 format.

Example Request Syntax

curl -X POST -H "Content-Type: application/json" -H "x-client-id: $YOUR_CLIENT_ID" -H "x-client-secret: $YOUR_CLIENT_SECRET" -d '{
    "walletId" : "...",              
    "overrideRequestId": "2055187f-5c20-4cc4-8063-3eb1a3383da5",
    "transactionType": "send_coin",
    "feeMultiplierPercentage": 10,
    "to" : "0xeF236f1b35B2105836540c23d055d1BFb6c5db52",
    "amount": "10000000000000000000000000000"
}' <BASE_URL>/api/v1/wallet/eth/override

Response

The response will include a JSON object with the following properties:

  • status (number): The HTTP status code of the response (e.g., 200 for success).
  • message (string): A message providing additional information about the operation.
  • data (object): An object containing the request information.
  • data.requestId (string): The unique identifier for the request.

Example Response

{
    "status": 200,
    "message": "Override transaction is in progress",
    "data": {
        "requestId": "9c276eb2-e0e1-4789-bd54-42d5e920379f"        
    }
}