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

# Prepare transfer signing payload

> Prepares signing payload for TRANSFER_NATIVE or TRANSFER_TOKEN, calculates nonce (EVM), calldata (EVM ERC20), fee params, and runs a simulation check.

Amount can be specified in two ways (mutually exclusive):
- `amountWei` - raw amount in smallest units (wei / sun)
- `amount` - human-readable amount (e.g. "1.5" for 1.5 ETH); backend resolves decimals automatically

When using `amount`, decimals are resolved from the chain (native transfers) or from the asset registry for the provided `tokenContract` (token transfers).
For `TRANSFER_TOKEN`, `tokenContract` is required.
`symbol` is optional and only acts as an auxiliary decimal hint after the token is identified by `tokenContract`. Returns 400 if decimals cannot be resolved.



## OpenAPI

````yaml /openapi.json post /api/txs/prepare-sign
openapi: 3.1.0
info:
  title: WalletSuite REST API
  description: >-
    Multi-chain wallet operations, balances, prices, and transaction lifecycle
    as a REST API.
  contact:
    name: WalletSuite
    url: https://walletsuite.io
  version: prod
servers:
  - url: https://api.walletsuite.io
    description: WalletSuite API
security:
  - ApiKeyAuth: []
tags:
  - name: Transactions
    description: >-
      Get transaction history by address, check live transaction status, and
      send signed transactions.
  - name: Fees
    description: Fee estimation endpoints
  - name: Balances
    description: Fetch balances on any supported chain (Ethereum, Tron).
  - name: Assets
    description: >-
      List supported blockchain assets from the database loaded at startup from
      bundled resources
  - name: Asset Status
    description: Asset enablement and restrictions.
  - name: Prices
    description: Fiat prices for symbols and contract addresses
  - name: Swaps
    description: Swap quote, route, and transaction building.
  - name: Approvals
    description: Allowance, approval tx data, and approval status.
  - name: NFTs
    description: NFT collections, tokens, owners, and transfer building.
  - name: Staking
    description: Native staking APR, validators, positions, and transaction building.
  - name: Name Service
    description: Name resolution and reverse resolution.
  - name: Chains
    description: Chain registry and chain capabilities.
  - name: Chain Specific
    description: Chain specific endpoints consumable by SDK.
  - name: Blocks
    description: View most recently indexed block information.
  - name: Info
    description: General information and summary counts.
paths:
  /api/txs/prepare-sign:
    post:
      tags:
        - Transactions
      summary: Prepare transfer signing payload
      description: >-
        Prepares signing payload for TRANSFER_NATIVE or TRANSFER_TOKEN,
        calculates nonce (EVM), calldata (EVM ERC20), fee params, and runs a
        simulation check.


        Amount can be specified in two ways (mutually exclusive):

        - `amountWei` - raw amount in smallest units (wei / sun)

        - `amount` - human-readable amount (e.g. "1.5" for 1.5 ETH); backend
        resolves decimals automatically


        When using `amount`, decimals are resolved from the chain (native
        transfers) or from the asset registry for the provided `tokenContract`
        (token transfers).

        For `TRANSFER_TOKEN`, `tokenContract` is required.

        `symbol` is optional and only acts as an auxiliary decimal hint after
        the token is identified by `tokenContract`. Returns 400 if decimals
        cannot be resolved.
      operationId: prepareSign
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrepareSignRequestDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiResponsePrepareSignResponseDto'
components:
  schemas:
    PrepareSignRequestDto:
      type: object
      properties:
        chain:
          type: string
        from:
          type: string
        to:
          type: string
        amountWei:
          type: integer
        amount:
          type: string
        symbol:
          type: string
        txType:
          type: string
          enum:
            - TRANSFER_NATIVE
            - TRANSFER_TOKEN
            - CONTRACT_CREATION
            - CONTRACT_CALL
            - SWAP
            - STAKE
            - UNSTAKE
            - CLAIM_REWARDS
            - UNKNOWN
        tokenContract:
          type: string
        nonce:
          type: integer
        maxPriorityFeePerGasWei:
          type: integer
        priorityFeeMultiplier:
          type: number
          format: double
      required:
        - chain
        - from
        - to
        - txType
    ApiResponsePrepareSignResponseDto:
      type: object
      properties:
        ok:
          type: boolean
        code:
          type: string
        message:
          type: string
        data:
          $ref: '#/components/schemas/PrepareSignResponseDto'
      required:
        - code
        - message
        - ok
    PrepareSignResponseDto:
      type: object
      properties:
        chain:
          type: string
        chainId:
          type: integer
          format: int64
        from:
          type: string
        to:
          type: string
        valueWei:
          type: integer
        data:
          type: string
        txType:
          type: string
          enum:
            - TRANSFER_NATIVE
            - TRANSFER_TOKEN
            - CONTRACT_CREATION
            - CONTRACT_CALL
            - SWAP
            - STAKE
            - UNSTAKE
            - CLAIM_REWARDS
            - UNKNOWN
        tokenContract:
          type: string
        nonce:
          type: integer
        fee:
          $ref: '#/components/schemas/FeeParamsDto'
      required:
        - chain
        - fee
        - from
        - to
        - txType
        - valueWei
    FeeParamsDto:
      type: object
      properties:
        mode:
          type: string
          enum:
            - EIP1559
            - LEGACY
            - TRON
        gasLimit:
          type: integer
        baseFeePerGas:
          type: integer
        maxPriorityFeePerGas:
          type: integer
        maxFeePerGas:
          type: integer
        gasPrice:
          type: integer
        el:
          type: integer
        rp:
          $ref: '#/components/schemas/TronBlockHeaderDto'
        sol:
          $ref: '#/components/schemas/SolanaFeeDetailsDto'
      required:
        - mode
    TronBlockHeaderDto:
      type: object
      properties:
        h:
          type: string
        'n':
          type: integer
          format: int64
        t:
          type: integer
          format: int64
        p:
          type: string
        r:
          type: string
        w:
          type: string
        v:
          type: integer
          format: int32
      required:
        - h
        - 'n'
        - t
        - v
    SolanaFeeDetailsDto:
      type: object
      properties:
        bh:
          type: string
        lvbh:
          type: integer
          format: int64
        ns:
          type: integer
          format: int32
        bf:
          type: integer
          format: int64
        cu:
          type: integer
          format: int64
        cup:
          type: integer
          format: int64
        pf:
          type: integer
          format: int64
        tf:
          type: integer
          format: int64
        msg:
          type: string
        signers:
          type: array
          items:
            type: string
      required:
        - bf
        - bh
        - cu
        - cup
        - lvbh
        - msg
        - ns
        - pf
        - signers
        - tf
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: API key provided by WalletSuite team
      name: x-api-key
      in: header

````