IOTA Transaction Builder API

Build unsigned transactions for transfers, staking, Move calls (unsafe_ prefix)

OpenAPI Specification

iota-transaction-builder-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  description: REST API for the Wasp node
  title: Wasp auth Transaction Builder API
  version: '0'
servers:
- url: /
tags:
- name: Transaction Builder
  description: Build unsigned transactions for transfers, staking, Move calls (unsafe_ prefix)
paths:
  /unsafe_batchTransaction:
    post:
      operationId: unsafe_batchTransaction
      summary: unsafe_batchTransaction
      description: Create an unsigned batched transaction.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_batchTransaction
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_batchTransaction
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_mergeCoins:
    post:
      operationId: unsafe_mergeCoins
      summary: unsafe_mergeCoins
      description: Create an unsigned transaction to merge multiple coins into one coin.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_mergeCoins
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_mergeCoins
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_moveCall:
    post:
      operationId: unsafe_moveCall
      summary: unsafe_moveCall
      description: Create an unsigned transaction to execute a Move call on the network, by calling the specified function in the module of a given package.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_moveCall
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_moveCall
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_pay:
    post:
      operationId: unsafe_pay
      summary: unsafe_pay
      description: Send `Coin<T>` to a list of addresses, where `T` can be any coin type, following a list of amounts, The object specified in the `gas` field will be used to pay the gas fee for the transaction. The gas object can not appear in `input_coins`. If the gas object is not specified, the RPC server will auto-select one.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_pay
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_pay
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_payAllIota:
    post:
      operationId: unsafe_payAllIota
      summary: unsafe_payAllIota
      description: 'Send all IOTA coins to one recipient. This is for IOTA coin only and does not require a separate gas coin object. Specifically, what pay_all_iota does are: 1. accumulate all IOTA from input coins and deposit all IOTA to the first    input coin 2. transfer the updated first coin to the recipient and also use this first    coin as gas coin object. 3. the balance of the first input coin after tx is sum(input_coins) -    actual_gas_cost. 4. all other input coins other than the first are deleted.'
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_payAllIota
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_payAllIota
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_payIota:
    post:
      operationId: unsafe_payIota
      summary: unsafe_payIota
      description: 'Send IOTA coins to a list of addresses, following a list of amounts. This is for IOTA coin only and does not require a separate gas coin object. Specifically, what pay_iota does are: 1. debit each input_coin to create new coin following the order of amounts and assign it to the corresponding recipient. 2. accumulate all residual IOTA from input coins left and deposit all IOTA    to the first input coin, then use the first input coin as the gas coin object. 3. the balance of the first input coin after tx is sum(input_coins) -    sum(amounts) - actual_gas_cost 4. all other input coints other than the first one are deleted.'
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_payIota
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_payIota
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_publish:
    post:
      operationId: unsafe_publish
      summary: unsafe_publish
      description: Create an unsigned transaction to publish a Move package.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_publish
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_publish
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_requestAddStake:
    post:
      operationId: unsafe_requestAddStake
      summary: unsafe_requestAddStake
      description: Add stake to a validator's staking pool using multiple coins and amount.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_requestAddStake
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_requestAddStake
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_requestAddTimelockedStake:
    post:
      operationId: unsafe_requestAddTimelockedStake
      summary: unsafe_requestAddTimelockedStake
      description: Add timelocked stake to a validator's staking pool using multiple balances and amount.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_requestAddTimelockedStake
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_requestAddTimelockedStake
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_requestWithdrawStake:
    post:
      operationId: unsafe_requestWithdrawStake
      summary: unsafe_requestWithdrawStake
      description: Withdraw stake from a validator's staking pool.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_requestWithdrawStake
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_requestWithdrawStake
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_requestWithdrawTimelockedStake:
    post:
      operationId: unsafe_requestWithdrawTimelockedStake
      summary: unsafe_requestWithdrawTimelockedStake
      description: Withdraw timelocked stake from a validator's staking pool.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_requestWithdrawTimelockedStake
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_requestWithdrawTimelockedStake
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_splitCoin:
    post:
      operationId: unsafe_splitCoin
      summary: unsafe_splitCoin
      description: Create an unsigned transaction to split a coin object into multiple coins.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_splitCoin
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_splitCoin
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /unsafe_splitCoinEqual:
    post:
      operationId: unsafe_splitCoinEqual
      summary: unsafe_splitCoinEqual
      description: Create an unsigned transaction to split a coin object into multiple equal-size coins.
      tags:
      - Transaction Builder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC protocol version
                id:
                  oneOf:
                  - type: integer
                  - type: string
                  description: Request identifier
                method:
                  type: string
                  enum:
                  - unsafe_splitCoinEqual
                  description: The JSON-RPC method name
                params:
                  type: array
                  description: Method parameters
                  items: {}
            example:
              jsonrpc: '2.0'
              id: 1
              method: unsafe_splitCoinEqual
              params: []
      responses:
        '200':
          description: Successful JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  result:
                    $ref: '#/components/schemas/TransactionBlockBytes'
        default:
          description: JSON-RPC error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    oneOf:
                    - type: integer
                    - type: string
                  error:
                    type: object
                    properties:
                      

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/iota/refs/heads/main/openapi/iota-transaction-builder-api-openapi.yml