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

# Sign

> Signs a transaction without sending it to the blockchain.

<Snippet file="header-project-id.mdx" />


## OpenAPI

````yaml post /transactions/sign
openapi: 3.0.1
info:
  title: WalletKit
  version: 0.0.1
servers:
  - url: https://testnet.walletkit.com
    description: testnet
  - url: https://mainnet.walletkit.com
    description: mainnet
security: []
paths:
  /transactions/sign:
    post:
      tags:
        - Transactions
      summary: Sign
      description: Signs a transaction without sending it to the blockchain.
      operationId: transactions_sign
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  $ref: '#/components/schemas/Network'
                signer_wallet_address:
                  type: string
                  description: address can only be the ones created in the project.
                unsigned_transaction:
                  $ref: '#/components/schemas/UnsignedTransaction'
                  description: input of a transaction to be signed.
                developer_secret:
                  $ref: '#/components/schemas/DeveloperSecret'
                  nullable: true
                user_pin:
                  $ref: '#/components/schemas/UserPin'
                  nullable: true
              required:
                - network
                - signer_wallet_address
                - unsigned_transaction
      responses:
        '200':
          description: >-
            signed transaction. This is the raw transaction that can be sent to
            the rpc node. e.g. input to eth_sendrawtransaction
          content:
            application/json:
              schema:
                type: string
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    Network:
      title: Network
      type: string
      enum:
        - Ethereum
        - Polygon
        - Base
        - Avalanche
        - Polkadot
        - Vara
    UnsignedTransaction:
      title: UnsignedTransaction
      type: object
      description: input of a transaction.
      properties:
        to:
          type: string
          description: >-
            smart contract address or external owned account address to interact
            with
        value:
          type: string
          nullable: true
          description: >-
            optional. amount of native token to be transferred to the to address
            in this transactio in hex-encoded with 0x prefix.
        input:
          type: string
          nullable: true
          description: >-
            If it's a smart contract interaction, the hex-encoded calldata of
            the smart contract function. (ABI-encoded function with arguments)
        gasLimit:
          type: string
          nullable: true
          description: >-
            optional. hex-encoded with 0x prefix. maximum amount unit of gas to
            be used in this transaction. If provided,  it will override the gas
            limit estimated by eth_estimateGas.
        maxPriorityFeePerGas:
          type: string
          nullable: true
          description: >-
            optional. hex-encoded with 0x prefix. If provided, it will override
            the gas tip estimated by eth_maxPriorityFeePerGas.
        maxFeePerGas:
          type: string
          nullable: true
          description: >-
            optional. hex-encoded with 0x prefix. maximum amount of native token
            to be paid per unit of gas in this transaction.  If provided, it
            will override the gas fee cap estimated by WalletKit.
        nonce:
          type: string
          nullable: true
          description: >-
            optional. hex-encoded with 0x prefix. the number of transactions
            made by the sender prior to this one.
      required:
        - to
    DeveloperSecret:
      title: DeveloperSecret
      type: string
      nullable: true
      description: >-
        On testnet, the developer_secret is always "testnet-secret". On mainnet,
        the developer_secret is set by the developer during account activation.
    UserPin:
      title: UserPin
      type: string
      nullable: true
      description: >-
        A 6-digit numeric pin that is only known to the user, set during wallet
        creation. This pin is required to sign transactions from this wallet.
    ErrorResponse:
      title: ErrorResponse
      type: object
      properties:
        code:
          type: string
          nullable: true
        error:
          type: string
      required:
        - error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````