Sui

Sui Write API API

Methods for submitting transactions

OpenAPI Specification

sui-write-api-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Sui JSON-RPC Coin Query API Write API API
  description: Sui JSON-RPC API for interaction with Sui Full node. Make RPC calls using https://fullnode.NETWORK.sui.io:443, where NETWORK is the network you want to use (testnet, devnet, mainnet). By default, local networks use port 9000.
  contact:
    name: Mysten Labs
    url: https://mystenlabs.com
    email: build@mystenlabs.com
  license:
    name: Apache-2.0
    url: https://raw.githubusercontent.com/MystenLabs/sui/main/LICENSE
  version: 1.74.0
servers:
- url: https://fullnode.mainnet.sui.io:443
  description: Sui Mainnet
- url: https://fullnode.testnet.sui.io:443
  description: Sui Testnet
- url: https://fullnode.devnet.sui.io:443
  description: Sui Devnet
- url: http://localhost:9000
  description: Local node (default port)
tags:
- name: Write API
  description: Methods for submitting transactions
paths:
  /#sui_devInspectTransactionBlock:
    post:
      operationId: sui_devInspectTransactionBlock
      summary: sui_devInspectTransactionBlock
      description: Runs the transaction in dev-inspect mode. Which allows for nearly any transaction (or Move call) with any arguments. Detailed results are provided, including both the transaction effects and any return values.
      tags:
      - Write API
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  example: '2.0'
                id:
                  type: integer
                  example: 1
                method:
                  type: string
                  enum:
                  - sui_devInspectTransactionBlock
                params:
                  type: array
                  description: Parameters as positional array
                  items: {}
            examples:
              example:
                value:
                  jsonrpc: '2.0'
                  id: 1
                  method: sui_devInspectTransactionBlock
                  params:
                  - '0xd70420418b84502e506794227f897237764dde8d79a01ab2104bf742a277a2ab'
                  - AAACACBnxtMcbJcOVn8D72fYEaT4Q2ZbjePygvpIs+AQO6m77QEAagYVO5/EhuEB8OnicDrIZm0GrsxN3355JqNhlwxlpbECAAAAAAAAACDoQ3EipycU+/EOvBcDPFtMkZiSbdzWAw3CwdmQCAtBWAEBAQEBAAEAAC9cVD1xauQ9RT3rOxmbva8bxwMMdoL4dwPc5DEkj+3gASxDgF0Nb1QCp60Npb3sVJx83qBrxKHTOaIlIe6pM7iJAgAAAAAAAAAgnvsgc1pPauyCE27/c+aBnHN3fSsxRAWdEJYzYFOryNAvXFQ9cWrkPUU96zsZm72vG8cDDHaC+HcD3OQxJI/t4AoAAAAAAAAAoIYBAAAAAAAA
                  - 1000
                  - 8888
                  - null
      responses:
        '200':
          description: JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    enum:
                    - '2.0'
                  id:
                    type: integer
                  result:
                    $ref: '#/components/schemas/DevInspectResults'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /#sui_dryRunTransactionBlock:
    post:
      operationId: sui_dryRunTransactionBlock
      summary: sui_dryRunTransactionBlock
      description: Return transaction execution effects including the gas cost summary, while the effects are not committed to the chain.
      tags:
      - Write API
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  example: '2.0'
                id:
                  type: integer
                  example: 1
                method:
                  type: string
                  enum:
                  - sui_dryRunTransactionBlock
                params:
                  type: array
                  description: Parameters as positional array
                  items: {}
            examples:
              example:
                value:
                  jsonrpc: '2.0'
                  id: 1
                  method: sui_dryRunTransactionBlock
                  params:
                  - AAACACB7qR3cfnF89wjJNwYPBASHNuwz+xdG2Zml5YzVxnftgAEAT4LxyFh7mNZMAL+0bDhDvYv2zPp8ZahhOGmM0f3Kw9wCAAAAAAAAACCxDABG4pPAjOwPQHg9msS/SrtNf4IGR/2F0ZGD3ufH/wEBAQEBAAEAAGH7tbTzQqQL2/h/5KlGueONGM+P/HsAALl1F1x7apV2AejYx86GPzE9o9vZKoPvJtEouI/ma/JuDg0Jza9yfR2EAgAAAAAAAAAgzMqpegLMOpgEFnDhYJ23FOmFjJbp5GmFXxzzv9+X6GVh+7W080KkC9v4f+SpRrnjjRjPj/x7AAC5dRdce2qVdgoAAAAAAAAAoIYBAAAAAAAA
      responses:
        '200':
          description: JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    enum:
                    - '2.0'
                  id:
                    type: integer
                  result:
                    $ref: '#/components/schemas/DryRunTransactionBlockResponse'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
  /#sui_executeTransactionBlock:
    post:
      operationId: sui_executeTransactionBlock
      summary: sui_executeTransactionBlock
      description: 'Execute the transaction and wait for results if desired. Request types: 1. WaitForEffectsCert: waits for TransactionEffectsCert and then return to client.     This mode is a proxy for transaction finality. 2. WaitForLocalExecution: waits for TransactionEffectsCert and make sure the node     executed the transaction locally before returning the client. The local execution     makes sure this node is aware of this transaction when client fires subsequent queries.     However if the node fails to execute the transaction locally in a timely manner,     a bool type in the response is set to false to indicated the case. request_type is default to be `WaitForEffectsCert` unless options.show_events or options.show_effects is true'
      tags:
      - Write API
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - jsonrpc
              - id
              - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  example: '2.0'
                id:
                  type: integer
                  example: 1
                method:
                  type: string
                  enum:
                  - sui_executeTransactionBlock
                params:
                  type: array
                  description: Parameters as positional array
                  items: {}
            examples:
              example:
                value:
                  jsonrpc: '2.0'
                  id: 1
                  method: sui_executeTransactionBlock
                  params:
                  - AAACACBqEB6aOvXIBwES+Ahkizbvv43uihqC3kbZUE6WoRCKFwEAjvdvVsOZYzousxC8qRJOXy84znOeqsu2YAaIgE4HhEgCAAAAAAAAACB9w3+ufZMpihJFwxtCBojBaGy00TVtFxgN2C6TpIPFqwEBAQEBAAEAAAS0l6kWtGVmCaf6gnoJGE1vR2gdO6dM4NejbGSysfiHAZ+Q9/hmzCnfsdpjc86U+dldylpA9OF2mRjuv5+64AvTAgAAAAAAAAAgjleHL0UiRGjh/BfIFHCJ3EMY/dQA22c2TvNQyVJnbYUEtJepFrRlZgmn+oJ6CRhNb0doHTunTODXo2xksrH4hwoAAAAAAAAAoIYBAAAAAAAA
                  - - AKD4XdltkCyBi1Heb4EJJ3lzuV3F4u7+CYeaE+Fd7qXpaT17yd4tHWjMf4CWq3TuXBLxTpkc2MV39P6p7eMV8QnqvbuA0Q1Bqu4RHV3JPpqmH+C527hWJGUBOZN1j9sg8w==
                  - showInput: true
                    showRawInput: true
                    showEffects: true
                    showEvents: true
                    showObjectChanges: true
                    showBalanceChanges: true
                    showRawEffects: false
                  - WaitForLocalExecution
      responses:
        '200':
          description: JSON-RPC response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    enum:
                    - '2.0'
                  id:
                    type: integer
                  result:
                    $ref: '#/components/schemas/TransactionBlockResponse'
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data: {}
components:
  schemas:
    ObjectDigest:
      $ref: '#/components/schemas/Digest'
    SuiWithdrawFrom:
      type: string
      enum:
      - sender
      - sponsor
    ZkLoginAuthenticatorAsBytes:
      $ref: '#/components/schemas/Base64'
    CompressedSignature:
      description: Unlike [enum Signature], [enum CompressedSignature] does not contain public key.
      oneOf:
      - type: object
        required:
        - Ed25519
        properties:
          Ed25519:
            $ref: '#/components/schemas/Base64'
        additionalProperties: false
      - type: object
        required:
        - Secp256k1
        properties:
          Secp256k1:
            $ref: '#/components/schemas/Base64'
        additionalProperties: false
      - type: object
        required:
        - Secp256r1
        properties:
          Secp256r1:
            $ref: '#/components/schemas/Base64'
        additionalProperties: false
      - type: object
        required:
        - ZkLogin
        properties:
          ZkLogin:
            $ref: '#/components/schemas/ZkLoginAuthenticatorAsBytes'
        additionalProperties: false
      - type: object
        required:
        - Passkey
        properties:
          Passkey:
            $ref: '#/components/schemas/PasskeyAuthenticatorAsBytes'
        additionalProperties: false
    DryRunTransactionBlockResponse:
      type: object
      required:
      - balanceChanges
      - effects
      - events
      - input
      - objectChanges
      properties:
        balanceChanges:
          type: array
          items:
            $ref: '#/components/schemas/BalanceChange'
        effects:
          $ref: '#/components/schemas/TransactionBlockEffects'
        events:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        executionErrorSource:
          type:
          - string
          - 'null'
        input:
          $ref: '#/components/schemas/TransactionBlockData'
        objectChanges:
          type: array
          items:
            $ref: '#/components/schemas/ObjectChange'
        suggestedGasPrice:
          anyOf:
          - $ref: '#/components/schemas/BigInt_for_uint64'
          - type: 'null'
    Base58:
      type: string
    TransactionEventsDigest:
      $ref: '#/components/schemas/Digest'
    MultiSigPublicKey:
      description: The struct that contains the public key used for authenticating a MultiSig.
      type: object
      required:
      - pk_map
      - threshold
      properties:
        pk_map:
          description: A list of public key and its corresponding weight.
          type: array
          items:
            type: array
            items:
            - $ref: '#/components/schemas/PublicKey'
            - type: integer
              format: uint8
              minimum: 0.0
            maxItems: 2
            minItems: 2
        threshold:
          description: If the total weight of the public keys corresponding to verified signatures is larger than threshold, the MultiSig is verified.
          type: integer
          format: uint16
          minimum: 0.0
    SuiCallArg:
      oneOf:
      - type: object
        oneOf:
        - type: object
          required:
          - digest
          - objectId
          - objectType
          - version
          properties:
            digest:
              $ref: '#/components/schemas/ObjectDigest'
            objectId:
              $ref: '#/components/schemas/ObjectID'
            objectType:
              type: string
              enum:
              - immOrOwnedObject
            version:
              $ref: '#/components/schemas/SequenceNumber'
        - type: object
          required:
          - initialSharedVersion
          - mutable
          - objectId
          - objectType
          properties:
            initialSharedVersion:
              $ref: '#/components/schemas/SequenceNumber'
            mutable:
              type: boolean
            objectId:
              $ref: '#/components/schemas/ObjectID'
            objectType:
              type: string
              enum:
              - sharedObject
        - type: object
          required:
          - digest
          - objectId
          - objectType
          - version
          properties:
            digest:
              $ref: '#/components/schemas/ObjectDigest'
            objectId:
              $ref: '#/components/schemas/ObjectID'
            objectType:
              type: string
              enum:
              - receiving
            version:
              $ref: '#/components/schemas/SequenceNumber'
        required:
        - type
        properties:
          type:
            type: string
            enum:
            - object
      - type: object
        required:
        - type
        - value
        properties:
          type:
            type: string
            enum:
            - pure
          value:
            $ref: '#/components/schemas/SuiJsonValue'
          valueType:
            default: null
            type:
            - string
            - 'null'
      - type: object
        required:
        - reservation
        - type
        - typeArg
        - withdrawFrom
        properties:
          reservation:
            $ref: '#/components/schemas/SuiReservation'
          type:
            type: string
            enum:
            - fundsWithdrawal
          typeArg:
            $ref: '#/components/schemas/SuiWithdrawalTypeArg'
          withdrawFrom:
            $ref: '#/components/schemas/SuiWithdrawFrom'
    CheckpointDigest:
      description: Representation of a Checkpoint's digest
      allOf:
      - $ref: '#/components/schemas/Digest'
    EventID:
      description: Unique ID of a Sui Event, the ID is a combination of transaction digest and event seq number.
      type: object
      required:
      - eventSeq
      - txDigest
      properties:
        eventSeq:
          $ref: '#/components/schemas/BigInt_for_uint64'
        txDigest:
          $ref: '#/components/schemas/TransactionDigest'
    TransactionDigest:
      description: A transaction will have a (unique) digest.
      allOf:
      - $ref: '#/components/schemas/Digest'
    Bn254FrElement:
      description: A struct that stores a Bn254 Fr field element as 32 bytes.
      type: string
    ZkLoginProof:
      description: The struct for zk login proof.
      type: object
      required:
      - a
      - b
      - c
      properties:
        a:
          type: array
          items:
            $ref: '#/components/schemas/Bn254FqElement'
        b:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/Bn254FqElement'
        c:
          type: array
          items:
            $ref: '#/components/schemas/Bn254FqElement'
    SuiWithdrawalTypeArg:
      oneOf:
      - type: object
        required:
        - balance
        properties:
          balance:
            $ref: '#/components/schemas/TypeTag'
        additionalProperties: false
    Owner:
      oneOf:
      - description: Object is exclusively owned by a single address, and is mutable.
        type: object
        required:
        - AddressOwner
        properties:
          AddressOwner:
            $ref: '#/components/schemas/SuiAddress'
        additionalProperties: false
      - description: Object is exclusively owned by a single object, and is mutable. The object ID is converted to SuiAddress as SuiAddress is universal.
        type: object
        required:
        - ObjectOwner
        properties:
          ObjectOwner:
            $ref: '#/components/schemas/SuiAddress'
        additionalProperties: false
      - description: Object is shared, can be used by any address, and is mutable.
        type: object
        required:
        - Shared
        properties:
          Shared:
            type: object
            required:
            - initial_shared_version
            properties:
              initial_shared_version:
                description: The version at which the object became shared
                allOf:
                - $ref: '#/components/schemas/SequenceNumber2'
        additionalProperties: false
      - description: Object is immutable, and hence ownership doesn't matter.
        type: string
        enum:
        - Immutable
      - description: Object is exclusively owned by a single address and sequenced via consensus.
        type: object
        required:
        - ConsensusAddressOwner
        properties:
          ConsensusAddressOwner:
            type: object
            required:
            - owner
            - start_version
            properties:
              owner:
                $ref: '#/components/schemas/SuiAddress'
              start_version:
                description: The version at which the object most recently became a consensus object. This serves the same function as `initial_shared_version`, except it may change if the object's Owner type changes.
                allOf:
                - $ref: '#/components/schemas/SequenceNumber2'
        additionalProperties: false
    SuiJWK:
      type: object
      required:
      - alg
      - e
      - kty
      - n
      properties:
        alg:
          type: string
        e:
          type: string
        kty:
          type: string
        n:
          type: string
    ZkLoginAuthenticator:
      description: An zk login authenticator with all the necessary fields.
      type: object
      required:
      - inputs
      - maxEpoch
      - userSignature
      properties:
        inputs:
          $ref: '#/components/schemas/ZkLoginInputs'
        maxEpoch:
          type: integer
          format: uint64
          minimum: 0.0
        userSignature:
          $ref: '#/components/schemas/Signature'
    AccumulatorEvent:
      type: object
      required:
      - accumulatorObj
      - address
      - operation
      - ty
      - value
      properties:
        accumulatorObj:
          $ref: '#/components/schemas/ObjectID'
        address:
          $ref: '#/components/schemas/SuiAddress'
        operation:
          $ref: '#/components/schemas/AccumulatorOperation'
        ty:
          $ref: '#/components/schemas/TypeTag'
        value:
          $ref: '#/components/schemas/AccumulatorValue'
    Secp256r1SuiSignature:
      $ref: '#/components/schemas/Base64'
    Base64:
      description: Base64 encoding
      type: string
    Event:
      type: object
      oneOf:
      - type: object
        required:
        - bcs
        - bcsEncoding
        properties:
          bcs:
            $ref: '#/components/schemas/Base64'
          bcsEncoding:
            type: string
            enum:
            - base64
      - type: object
        required:
        - bcs
        - bcsEncoding
        properties:
          bcs:
            $ref: '#/components/schemas/Base58'
          bcsEncoding:
            type: string
            enum:
            - base58
      required:
      - id
      - packageId
      - parsedJson
      - sender
      - transactionModule
      - type
      properties:
        id:
          description: Sequential event ID, ie (transaction seq number, event seq number). 1) Serves as a unique event ID for each fullnode 2) Also serves to sequence events for the purposes of pagination and querying. A higher id is an event seen later by that fullnode. This ID is the "cursor" for event querying.
          allOf:
          - $ref: '#/components/schemas/EventID'
        packageId:
          description: Move package where this event was emitted.
          allOf:
          - $ref: '#/components/schemas/ObjectID'
        parsedJson:
          description: Parsed json value of the event
        sender:
          description: Sender's Sui address.
          allOf:
          - $ref: '#/components/schemas/SuiAddress'
        timestampMs:
          description: UTC timestamp in milliseconds since epoch (1/1/1970)
          anyOf:
          - $ref: '#/components/schemas/BigInt_for_uint64'
          - type: 'null'
        transactionModule:
          description: Move module where this event was emitted.
          type: string
        type:
          description: Move event type.
          type: string
    SuiChangeEpoch:
      type: object
      required:
      - computation_charge
      - epoch
      - epoch_start_timestamp_ms
      - storage_charge
      - storage_rebate
      properties:
        computation_charge:
          $ref: '#/components/schemas/BigInt_for_uint64'
        epoch:
          $ref: '#/components/schemas/BigInt_for_uint64'
        epoch_start_timestamp_ms:
          $ref: '#/components/schemas/BigInt_for_uint64'
        storage_charge:
          $ref: '#/components/schemas/BigInt_for_uint64'
        storage_rebate:
          $ref: '#/components/schemas/BigInt_for_uint64'
    SuiJwkId:
      type: object
      required:
      - iss
      - kid
      properties:
        iss:
          type: string
        kid:
          type: string
    SuiReservation:
      oneOf:
      - type: object
        required:
        - maxAmountU64
        properties:
          maxAmountU64:
            $ref: '#/components/schemas/BigInt_for_uint64'
        additionalProperties: false
    Bn254FqElement:
      description: A struct that stores a Bn254 Fq field element as 32 bytes.
      type: string
    TransactionBlockData:
      oneOf:
      - type: object
        required:
        - gasData
        - messageVersion
        - sender
        - transaction
        properties:
          gasData:
            $ref: '#/components/schemas/GasData'
          messageVersion:
            type: string
            enum:
            - v1
          sender:
            $ref: '#/components/schemas/SuiAddress'
          transaction:
            $ref: '#/components/schemas/TransactionBlockKind'
    Ed25519SuiSignature:
      $ref: '#/components/schemas/Base64'
    SuiTransaction:
      description: A single transaction in a programmable transaction block.
      oneOf:
      - description: A call to either an entry or a public Move function
        type: object
        required:
        - MoveCall
        properties:
          MoveCall:
            $ref: '#/components/schemas/SuiProgrammableMoveCall'
        additionalProperties: false
      - description: '`(Vec<forall T:key+store. T>, address)` It sends n-objects to the specified address. These objects must have store (public transfer) and either the previous owner must be an address or the object must be newly created.'
        type: object
        required:
        - TransferObjects
        properties:
          TransferObjects:
            type: array
            items:
            - type: array
              items:
                $ref: '#/components/schemas/SuiArgument'
            - $ref: '#/components/schemas/SuiArgument'
            maxItems: 2
            minItems: 2
        additionalProperties: false
      - description: '`(&mut Coin<T>, Vec<u64>)` -> `Vec<Coin<T>>` It splits off some amounts into a new coins with those amounts'
        type: object
        required:
        - SplitCoins
        properties:
          SplitCoins:
            type: array
            items:
            - $ref: '#/components/schemas/SuiArgument'
            - type: array
              items:
                $ref: '#/components/schemas/SuiArgument'
            maxItems: 2
            minItems: 2
        additionalProperties: false
      - description: '`(&mut Coin<T>, Vec<Coin<T>>)` It merges n-coins into the first coin'
        type: object
        required:
        - MergeCoins
        properties:
          MergeCoins:
            type: array
            items:
            - $ref: '#/components/schemas/SuiArgument'
            - type: array
              items:
                $ref: '#/components/schemas/SuiArgument'
            maxItems: 2
            minItems: 2
        additionalProperties: false
      - description: Publishes a Move package. It takes the package bytes and a list of the package's transitive dependencies to link against on-chain.
        type: object
        required:
        - Publish
        properties:
          Publish:
            type: array
            items:
              $ref: '#/components/schemas/ObjectID'
        additionalProperties: false
      - description: Upgrades a Move package
        type: object
        required:
        - Upgrade
        properties:
          Upgrade:
            type: array
            items:
            - type: array
              items:
                $ref: '#/components/schemas/ObjectID'
            - $ref: '#/components/schemas/ObjectID'
            - $ref: '#/components/schemas/SuiArgument'
            maxItems: 3
            minItems: 3
        additionalProperties: false
      - description: '`forall T: Vec<T> -> vector<T>` Given n-values of the same type, it constructs a vector. For non objects or an empty vector, the type tag must be specified.'
        type: object
        required:
        - MakeMoveVec
        properties:
          MakeMoveVec:
            type: array
            items:
            - type:
              - string
              - 'null'
            - type: array
              items:
                $ref: '#/components/schemas/SuiArgument'
            maxItems: 2
            minItems: 2
        additionalProperties: false
    ExecutionStatus:
      oneOf:
      - type: object
        required:
        - status
        properties:
          status:
            type: string
            enum:
            - success
      - type: object
        required:
        - error
        - status
        properties:
          error:
            type: string
          status:
            type: string
            enum:
            - failure
    MultiSigPublicKeyLegacy:
      description: Deprecated, use [struct MultiSigPublicKey] instead. The struct that contains the public key used for authenticating a MultiSig.
      type: object
      required:
      - pk_map
      - threshold
      properties:
        pk_map:
          description: A list of public key and its corresponding weight.
          type: array
          items:
            type: array
            items:
            - $ref: '#/components/schemas/PublicKey'
            - type: integer
              format: uint8
              minimum: 0.0
            maxItems: 2
            minItems: 2
        threshold:
          description: If the total weight of the public keys corresponding to verified signatures is larger than threshold, the MultiSig is verified.
          type: integer
          format: uint16
          minimum: 0.0
    SuiProgrammableMoveCall:
      description: The transaction for calling a Move function, either an entry function or a public function (which cannot return references).
      type: object
      required:
      - function
      - module
      - package
      properties:
        arguments:
          description: The arguments to the function.
          type: array
          items:
            $ref: '#/components/schemas/SuiArgument'
        function:
          description: The function to be called.
          type: string
        module:
          description: The specific module in the package containing the function.
          type: string
        package:
          description: The package containing the module and function.
          allOf:
          - $ref: '#/components/schemas/ObjectID'
        type_arguments:
          description: The type arguments to the function.
          type: array
          items:
            type: string
    OwnedObjectRef:
      type: object
      required:
      - owner
      - reference
      properties:
        owner:
          $ref: '#/components/schemas/Owner'
        reference:
          $ref: '#/components/schemas/ObjectRef'
    Digest:
      description: A representation of a 32 byte digest
      allOf:
      - $ref: '#/components/schemas/Base58'
    GasData:
      type: object
      required:
      - budget
      - owner
      - payment
      - price
      properties:
        budget:
          $ref: '#/components/schemas/BigInt_for_uint64'
        owner:
          $ref: '#/components/schemas/SuiAddress'
        payment:
          type: array
          items:
            $ref: '#/components/schemas/ObjectRef'
        price:
          $ref: '#/components/schemas/BigInt_for_uint64'
    SuiArgument:
      description: An argument to a transaction in a programmable transaction block
      oneOf:
      - description: The gas coin. The gas coin can only be used by-ref, except for with `TransferObjects`, which can use it by-value.
        type: string
        enum:
        - GasCoin
      - description: One of the input objects or primitive values (from `ProgrammableTransactionBlock` inputs)
        type: object
        required:
        - Input
        properties:
          Input:
            type: integer
            format: uint16
            minimum: 0.0
        additionalProperties: false
      - description: The result of another transaction (from `ProgrammableTransactionBlock` transactions)
        type: object
        required:
        - Result
        properties:
          Result:
            type: integer
            format: uint16
            minimum: 0.0
        additionalProperties: false
      - description: Like a `Result` but it accesses a nested result. Currently, the only usage of this is to access a value from a Move call with multiple return values.
        type: object
        required:
        - NestedResult
        properties:
          NestedResult:
            type: array
            items:
            - type: integer
              format: uint16
              minimum: 0.0
            - type: integer
              format: uint16
              minimum: 0.0
            maxItems: 2
            minItems: 2
        additionalProperties: false
    SequenceNumber2:
      $ref: '#/components/schemas/BigInt_for_uint64'
    SuiEndOfEpochTransactionKind:
      oneOf:
      - type: string
        enum:
        - AuthenticatorStateCreate
        - RandomnessStateCreate
        - CoinDenyListStateCreate
        - StoreExecutionTimeObservations
        - AccumulatorRootCreate
        - CoinRegistryCreate
        - DisplayRegistryCreate
        - AddressAliasStateCreate
        - WriteAccumulatorStorageCost
      - type: object
        required:
        - ChangeEpoch
        properties:
          ChangeEpoch:
            $ref: '#/components/schemas/SuiChangeEpoch'
        additionalProperties: false
      - type: object
        required:
        - AuthenticatorStateExpire
        properties:
          AuthenticatorStateExpire:
            $ref: '#/components/schemas/SuiAuthenticatorStateExpire'
        additionalProperties: false
      - type: object
        required:
        - BridgeStateCreate
        properties:
          BridgeStateCreate:
            $ref: '#/components/schemas/CheckpointDigest'
        additionalProperties: false
      - type: object
        required:
        - BridgeCommitteeUpdate
        properties:
          BridgeCommitteeUpdate:
            $ref: '#/components/schemas/SequenceNumber2'
        additionalProperties: false
    ZkLoginPublicIdentifier:
      description: A wrapper struct to retrofit in [enum PublicKey] for zkLogin. Useful to construct [struct MultiSigPublicKey].
      a

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sui/refs/heads/main/openapi/sui-write-api-api-openapi.yml