TOP Group (The Open Platform) Migration API

The Migration API from TOP Group (The Open Platform) — 2 operation(s) for migration.

OpenAPI Specification

top-group-migration-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: REST api to TON blockchain explorer Accounts Migration API
  version: 2.0.0
  description: Provide access to indexed TON blockchain
  contact:
    name: Support
    email: support@tonkeeper.com
servers:
- url: https://tonapi.io
- url: https://testnet.tonapi.io
- url: http://localhost:8081
tags:
- name: Migration
paths:
  /v2/migration/wallets:
    post:
      description: Get migratable assets value (TON balance, jettons with prices, NFT count) for several wallets at once.
      operationId: getMigrationWallets
      tags:
      - Migration
      parameters:
      - $ref: '#/components/parameters/currenciesQuery'
      requestBody:
        $ref: '#/components/requestBodies/AccountIDs'
      responses:
        '200':
          description: migratable value per requested wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationWallets'
        default:
          $ref: '#/components/responses/Error'
  /v2/migration/prepare:
    post:
      description: Prepare ordered signable transactions that migrate every asset from `from` to `to`.
      operationId: prepareMigration
      tags:
      - Migration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MigrationPrepareRequest'
      responses:
        '200':
          description: ordered transactions to sign and broadcast
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationPrepareResponse'
        default:
          $ref: '#/components/responses/Error'
components:
  schemas:
    SmartContractAction:
      type: object
      required:
      - executor
      - contract
      - gram_attached
      - operation
      properties:
        executor:
          $ref: '#/components/schemas/AccountAddress'
        contract:
          $ref: '#/components/schemas/AccountAddress'
        ton_attached:
          type: integer
          description: amount in nanograms
          format: int64
          example: 123456789
          x-js-format: bigint
          deprecated: true
        gram_attached:
          type: integer
          description: amount in nanograms
          format: int64
          example: 123456789
          x-js-format: bigint
        operation:
          type: string
          example: NftTransfer or 0x35d95a12
        payload:
          type: string
        refund:
          $ref: '#/components/schemas/Refund'
    WithdrawXTRAction:
      type: object
      required:
      - user
      - amount
      properties:
        user:
          $ref: '#/components/schemas/AccountAddress'
        amount:
          type: string
          x-js-format: bigint
          example: '123000000000'
    AccStatusChange:
      type: string
      example: acst_unchanged
      enum:
      - acst_unchanged
      - acst_frozen
      - acst_deleted
    NftApprovedBy:
      type: array
      items:
        type: string
        example: getgems
        enum:
        - getgems
        - tonkeeper
    DomainRenewAction:
      type: object
      required:
      - domain
      - contract_address
      - renewer
      properties:
        domain:
          type: string
          example: vasya.ton
        contract_address:
          type: string
          format: address
          example: 0:da6b1b6663a0e4d18cc8574ccd9db5296e367dd9324706f3bbd9eb1cd2caf0bf
        renewer:
          $ref: '#/components/schemas/AccountAddress'
    DefiAssetType:
      type: string
      enum:
      - staking
      - lending_supply
      - lending_borrow
      - liquid_staking
      - liquid_pool
      - yield_token
    DefiLiquidPoolAssets:
      type: object
      required:
      - asset0
      - asset1
      properties:
        asset0:
          $ref: '#/components/schemas/DefiLockedAsset'
        asset1:
          $ref: '#/components/schemas/DefiLockedAsset'
    EncryptedComment:
      type: object
      required:
      - encryption_type
      - cipher_text
      properties:
        encryption_type:
          type: string
          example: simple
        cipher_text:
          type: string
          example: A6A0BD6608672B...CE3AF8DB
    AddExtensionAction:
      type: object
      required:
      - wallet
      - extension
      properties:
        wallet:
          $ref: '#/components/schemas/AccountAddress'
        extension:
          type: string
          format: address
          example: 0:10C1073837B93FDAAD594284CE8B8EFF7B9CF25427440EB2FC682762E1471365
    OraclePriceFeed:
      type: object
      required:
      - id
      - display_symbol
      properties:
        id:
          type: string
          example: e62df6c8b4a85fe1a67f1c4d1f1e1d4335c04d1d7e2c50e0d7da7ad911f2d4
        display_symbol:
          type: string
          example: GRAM/USD
        rate:
          type: number
          format: double
          example: 5.24
    NftItem:
      type: object
      required:
      - address
      - index
      - verified
      - metadata
      - approved_by
      - trust
      properties:
        address:
          type: string
          format: address
          example: 0:E93E7D444180608B8520C00DC664383A387356FB6E16FDDF99DBE5E1415A574B
        index:
          type: integer
          format: int64
          example: 58
        owner:
          $ref: '#/components/schemas/AccountAddress'
        collection:
          type: object
          required:
          - address
          - name
          - description
          properties:
            address:
              type: string
              format: address
              example: 0:E93E7D444180608B8520C00DC664383A387356FB6E16FDDF99DBE5E1415A574B
            name:
              type: string
              example: TON Diamonds
            description:
              type: string
              example: Best collection in TON network
        verified:
          type: boolean
          description: Collection master contract confirmed that this item is part of collection
          example: true
        metadata:
          type: object
          additionalProperties: true
          example: {}
        sale:
          $ref: '#/components/schemas/Sale'
        previews:
          type: array
          items:
            $ref: '#/components/schemas/ImagePreview'
        dns:
          type: string
          example: crypto.ton
        approved_by:
          allOf:
          - $ref: '#/components/schemas/NftApprovedBy'
          deprecated: true
          description: Please use trust field
        include_cnft:
          type: boolean
          example: false
        trust:
          $ref: '#/components/schemas/TrustType'
        code_hash:
          type: string
          description: Hash of the NFT item account code cell (hex)
        data_hash:
          type: string
          description: Hash of the NFT item account data cell (hex)
    ExtraCurrencyTransferAction:
      type: object
      required:
      - sender
      - recipient
      - amount
      - currency
      properties:
        sender:
          $ref: '#/components/schemas/AccountAddress'
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        amount:
          type: string
          x-js-format: bigint
          example: '1000000000'
          description: amount in quanta of tokens
        comment:
          type: string
          example: "Hi! This is your salary. \nFrom accounting with love."
        encrypted_comment:
          $ref: '#/components/schemas/EncryptedComment'
        currency:
          $ref: '#/components/schemas/EcPreview'
    EcPreview:
      type: object
      required:
      - id
      - symbol
      - decimals
      - image
      properties:
        id:
          type: integer
          example: 239
          format: int32
        symbol:
          type: string
          example: FMS
        decimals:
          type: integer
          example: 5
        image:
          type: string
          example: https://cache.tonapi.io/images/extra.jpg
    MigrationPrepareRequest:
      type: object
      required:
      - from
      - to
      properties:
        from:
          type: string
          format: address
          description: legacy source wallet to drain
        to:
          type: string
          format: address
          description: destination wallet TON address
        currency:
          type: string
          default: USD
          description: fiat currency for the preview values
          example: USD
        public_key:
          type: string
          description: 'hex-encoded ed25519 public key of the source wallet. If `from` wallet is uninitialized, then public_key is used to infer wallet code

            '
          example: 29c1a72938b8f4f1d4e64f1e3f73e4b0e60f9b0c0e0d0e0f0a0b0c0d0e0f0a0b0
    AuctionBidAction:
      type: object
      required:
      - amount
      - bidder
      - auction
      - auction_type
      properties:
        auction_type:
          type: string
          enum:
          - DNS.ton
          - DNS.tg
          - NUMBER.tg
          - getgems
        amount:
          $ref: '#/components/schemas/Price'
        nft:
          $ref: '#/components/schemas/NftItem'
        bidder:
          $ref: '#/components/schemas/AccountAddress'
        auction:
          $ref: '#/components/schemas/AccountAddress'
    JettonMintAction:
      type: object
      required:
      - amount
      - jetton
      - recipient
      - recipients_wallet
      properties:
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        recipients_wallet:
          type: string
          format: address
          example: 0:E93E7D444180608B8520C00DC664383A387356FB6E16FDDF99DBE5E1415A574B
        amount:
          type: string
          x-js-format: bigint
          example: '1000000000'
          description: amount in quanta of tokens
        jetton:
          $ref: '#/components/schemas/JettonPreview'
    ComputeSkipReason:
      type: string
      example: cskip_no_state
      enum:
      - cskip_no_state
      - cskip_bad_state
      - cskip_no_gas
      - cskip_suspended
    BuyXTRAction:
      type: object
      required:
      - recipient
      - amount
      properties:
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        amount:
          type: string
          x-js-format: bigint
          example: '123000000000'
    WithdrawTokenStakeRequestAction:
      type: object
      required:
      - staker
      - protocol
      properties:
        staker:
          $ref: '#/components/schemas/AccountAddress'
        protocol:
          $ref: '#/components/schemas/Protocol'
        stake_meta:
          $ref: '#/components/schemas/Price'
    SetSignatureAllowedAction:
      type: object
      required:
      - wallet
      - allowed
      properties:
        wallet:
          $ref: '#/components/schemas/AccountAddress'
        allowed:
          type: boolean
    DepositTokenStakeAction:
      type: object
      required:
      - staker
      - protocol
      properties:
        staker:
          $ref: '#/components/schemas/AccountAddress'
        protocol:
          $ref: '#/components/schemas/Protocol'
        stake_meta:
          $ref: '#/components/schemas/Price'
    UnSubscriptionAction:
      type: object
      required:
      - subscriber
      - subscription
      - beneficiary
      - admin
      properties:
        subscriber:
          $ref: '#/components/schemas/AccountAddress'
        subscription:
          type: string
          format: address
          example: 0:da6b1b6663a0e4d18cc8574ccd9db5296e367dd9324706f3bbd9eb1cd2caf0bf
        beneficiary:
          $ref: '#/components/schemas/AccountAddress'
        admin:
          $ref: '#/components/schemas/AccountAddress'
    Metadata:
      type: object
      required:
      - encrypted_binary
      properties:
        encrypted_binary:
          type: string
          description: hex encoded bytes
        decryption_key:
          type: string
          description: hex encoded bytes
          example: dead.....beef
    TokenRates:
      type: object
      properties:
        prices:
          type: object
          additionalProperties:
            type: number
          example:
            GRAM: 1.3710752873163712
        diff_24h:
          type: object
          additionalProperties:
            type: string
          example:
            GRAM: -1.28%
        diff_7d:
          type: object
          additionalProperties:
            type: string
          example:
            GRAM: -2.74%
        diff_30d:
          type: object
          additionalProperties:
            type: string
          example:
            GRAM: -0.56%
    ComputePhase:
      type: object
      required:
      - skipped
      properties:
        skipped:
          type: boolean
          example: true
        skip_reason:
          $ref: '#/components/schemas/ComputeSkipReason'
        success:
          type: boolean
          example: true
        gas_fees:
          type: integer
          format: int64
          x-js-format: bigint
          example: 1000
        gas_used:
          type: integer
          format: int64
          x-js-format: bigint
          example: 10000
        vm_steps:
          type: integer
          format: int32
          example: 5
        exit_code:
          type: integer
          format: int32
          example: 0
        exit_code_description:
          type: string
    FlawedJettonTransferAction:
      type: object
      required:
      - sent_amount
      - received_amount
      - jetton
      - senders_wallet
      - recipients_wallet
      properties:
        sender:
          $ref: '#/components/schemas/AccountAddress'
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        senders_wallet:
          type: string
          format: address
          example: 0:E93E7D444180608B8520C00DC664383A387356FB6E16FDDF99DBE5E1415A574B
        recipients_wallet:
          type: string
          format: address
          example: 0:E93E7D444180608B8520C00DC664383A387356FB6E16FDDF99DBE5E1415A574B
        sent_amount:
          type: string
          x-js-format: bigint
          example: '1000000000'
          description: sent amount in quanta of tokens
        received_amount:
          type: string
          x-js-format: bigint
          example: '1000000000'
          description: actually received amount in quanta of tokens
        comment:
          type: string
          example: "Hi! This is your salary. \nFrom accounting with love."
        encrypted_comment:
          $ref: '#/components/schemas/EncryptedComment'
        refund:
          $ref: '#/components/schemas/Refund'
        jetton:
          $ref: '#/components/schemas/JettonPreview'
    ContractDeployAction:
      type: object
      required:
      - address
      - interfaces
      properties:
        address:
          type: string
          format: address
          example: 0:da6b1b6663a0e4d18cc8574ccd9db5296e367dd9324706f3bbd9eb1cd2caf0bf
        interfaces:
          type: array
          items:
            type: string
          example:
          - nft_item
          - nft_royalty
    Price:
      type: object
      required:
      - currency_type
      - value
      - decimals
      - token_name
      - verification
      - image
      properties:
        currency_type:
          $ref: '#/components/schemas/CurrencyType'
        value:
          type: string
          x-js-format: bigint
          example: '123000000000'
        decimals:
          type: integer
          example: 9
        token_name:
          type: string
          example: Gram
        verification:
          $ref: '#/components/schemas/TrustType'
        image:
          type: string
          example: https://cache.tonapi.io/images/jetton.jpg
        jetton:
          type: string
          format: address
          example: 0:0BB5A9F69043EEBDDA5AD2E946EB953242BD8F603FE795D90698CEEC6BFC60A0
    JettonSwapAction:
      type: object
      required:
      - dex
      - amount_in
      - amount_out
      - user_wallet
      - router
      properties:
        dex:
          type: string
          example: stonfi
        amount_in:
          type: string
          x-js-format: bigint
          example: '1660050553'
        amount_out:
          type: string
          x-js-format: bigint
          example: '1660050553'
        ton_in:
          type: integer
          example: 1000000000
          format: int64
          x-js-format: bigint
          deprecated: true
          description: this field will gone after Sept. 2026, use gram_in instead
        ton_out:
          type: integer
          example: 2000000000
          format: int64
          x-js-format: bigint
          deprecated: true
          description: this field will gone after Sept. 2026, use gram_out instead
        gram_in:
          type: integer
          example: 1000000000
          format: int64
          x-js-format: bigint
        gram_out:
          type: integer
          example: 2000000000
          format: int64
          x-js-format: bigint
        user_wallet:
          $ref: '#/components/schemas/AccountAddress'
        router:
          $ref: '#/components/schemas/AccountAddress'
        jetton_master_in:
          $ref: '#/components/schemas/JettonPreview'
        jetton_master_out:
          $ref: '#/components/schemas/JettonPreview'
    MigrationTransaction:
      type: object
      required:
      - seqno
      - boc
      - messages
      - emulation
      properties:
        seqno:
          type: integer
          format: int32
          description: wallet seqno baked into the unsigned body
        boc:
          type: string
          description: 'base64 BOC of the unsigned wallet body. Sign its hash, prepend the signature, wrap it in an external message and broadcast.

            '
        state_init:
          type: string
          format: cell-base64
          description: 'base64 BOC of the wallet StateInit (code + data). Present only on the first transaction when the source wallet is not yet initialized

            '
        messages:
          type: array
          description: 'ordered raw internal messages carried by this transaction — the cells the wallet resends. These are what populate the payload/actions.

            '
          items:
            $ref: '#/components/schemas/MigrationOutMessage'
        emulation:
          $ref: '#/components/schemas/MessageConsequences'
    PurchaseAction:
      type: object
      required:
      - source
      - destination
      - invoice_id
      - amount
      - metadata
      properties:
        source:
          $ref: '#/components/schemas/AccountAddress'
        destination:
          $ref: '#/components/schemas/AccountAddress'
        invoice_id:
          type: string
          example: 03cfc582-b1c3-410a-a9a7-1f3afe326b3b
        amount:
          $ref: '#/components/schemas/Price'
        metadata:
          $ref: '#/components/schemas/Metadata'
    Action:
      type: object
      required:
      - type
      - status
      - simple_preview
      - base_transactions
      properties:
        type:
          type: string
          example: TonTransfer
          enum:
          - TonTransfer
          - ExtraCurrencyTransfer
          - ContractDeploy
          - JettonTransfer
          - FlawedJettonTransfer
          - JettonBurn
          - JettonMint
          - NftItemTransfer
          - Subscribe
          - UnSubscribe
          - AuctionBid
          - NftPurchase
          - DepositStake
          - WithdrawStake
          - WithdrawStakeRequest
          - ElectionsDepositStake
          - ElectionsRecoverStake
          - JettonSwap
          - SmartContractExec
          - DomainRenew
          - Purchase
          - AddExtension
          - RemoveExtension
          - SetSignatureAllowedAction
          - GasRelay
          - DepositTokenStake
          - WithdrawTokenStakeRequest
          - LiquidityDeposit
          - OracleRequest
          - BuyXTR
          - DepositXTR
          - WithdrawXTR
          - Unknown
        status:
          type: string
          example: ok
          enum:
          - ok
          - failed
        TonTransfer:
          $ref: '#/components/schemas/TonTransferAction'
        ExtraCurrencyTransfer:
          $ref: '#/components/schemas/ExtraCurrencyTransferAction'
        ContractDeploy:
          $ref: '#/components/schemas/ContractDeployAction'
        JettonTransfer:
          $ref: '#/components/schemas/JettonTransferAction'
        FlawedJettonTransfer:
          $ref: '#/components/schemas/FlawedJettonTransferAction'
        JettonBurn:
          $ref: '#/components/schemas/JettonBurnAction'
        JettonMint:
          $ref: '#/components/schemas/JettonMintAction'
        NftItemTransfer:
          $ref: '#/components/schemas/NftItemTransferAction'
        Subscribe:
          $ref: '#/components/schemas/SubscriptionAction'
        UnSubscribe:
          $ref: '#/components/schemas/UnSubscriptionAction'
        AuctionBid:
          $ref: '#/components/schemas/AuctionBidAction'
        NftPurchase:
          $ref: '#/components/schemas/NftPurchaseAction'
        DepositStake:
          $ref: '#/components/schemas/DepositStakeAction'
        WithdrawStake:
          $ref: '#/components/schemas/WithdrawStakeAction'
        WithdrawStakeRequest:
          $ref: '#/components/schemas/WithdrawStakeRequestAction'
        ElectionsDepositStake:
          $ref: '#/components/schemas/ElectionsDepositStakeAction'
        ElectionsRecoverStake:
          $ref: '#/components/schemas/ElectionsRecoverStakeAction'
        JettonSwap:
          $ref: '#/components/schemas/JettonSwapAction'
        SmartContractExec:
          $ref: '#/components/schemas/SmartContractAction'
        DomainRenew:
          $ref: '#/components/schemas/DomainRenewAction'
        Purchase:
          $ref: '#/components/schemas/PurchaseAction'
        AddExtension:
          $ref: '#/components/schemas/AddExtensionAction'
        RemoveExtension:
          $ref: '#/components/schemas/RemoveExtensionAction'
        SetSignatureAllowedAction:
          $ref: '#/components/schemas/SetSignatureAllowedAction'
        GasRelay:
          $ref: '#/components/schemas/GasRelayAction'
        DepositTokenStake:
          $ref: '#/components/schemas/DepositTokenStakeAction'
        WithdrawTokenStakeRequest:
          $ref: '#/components/schemas/WithdrawTokenStakeRequestAction'
        LiquidityDeposit:
          $ref: '#/components/schemas/LiquidityDepositAction'
        OracleRequest:
          $ref: '#/components/schemas/OracleRequestAction'
        WithdrawXTR:
          $ref: '#/components/schemas/WithdrawXTRAction'
        DepositXTR:
          $ref: '#/components/schemas/DepositXTRAction'
        BuyXTR:
          $ref: '#/components/schemas/BuyXTRAction'
        simple_preview:
          $ref: '#/components/schemas/ActionSimplePreview'
        base_transactions:
          type: array
          items:
            type: string
            description: transaction hash
            example: e8b0e3fee4a26bd2317ac1f9952fcdc87dc08fdb617656b5202416323337372e
    Protocol:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          example: Ethena
        image:
          type: string
          example: https://cache.tonapi.io/images/jetton.jpg
    Sale:
      type: object
      required:
      - address
      - market
      - price
      properties:
        address:
          type: string
          format: address
          example: 0:10C1073837B93FDAAD594284CE8B8EFF7B9CF25427440EB2FC682762E1471365
        market:
          $ref: '#/components/schemas/AccountAddress'
        owner:
          $ref: '#/components/schemas/AccountAddress'
        price:
          $ref: '#/components/schemas/Price'
    LiquidityDepositAction:
      type: object
      required:
      - protocol
      - from
      - tokens
      properties:
        protocol:
          $ref: '#/components/schemas/Protocol'
        from:
          $ref: '#/components/schemas/AccountAddress'
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/VaultDepositInfo'
    JettonVerificationType:
      type: string
      enum:
      - whitelist
      - graylist
      - blacklist
      - none
    MigrationOutMessage:
      type: object
      required:
      - boc
      - mode
      properties:
        boc:
          type: string
          format: cell-base64
          description: base64 BOC of the internal message cell the wallet resends
        mode:
          type: integer
          format: int32
          description: send-mode byte (e.g. 3 for a transfer, 128 for the final balance sweep)
    NftItemTransferAction:
      type: object
      required:
      - nft
      properties:
        sender:
          $ref: '#/components/schemas/AccountAddress'
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        nft:
          type: string
          format: maybe-address
          example: ''
        comment:
          type: string
          example: "Hi! This is your salary. \nFrom accounting with love."
        encrypted_comment:
          $ref: '#/components/schemas/EncryptedComment'
        payload:
          type: string
          description: raw hex encoded payload
          example: 0234de3e21d21b3ee21f3
        refund:
          $ref: '#/components/schemas/Refund'
    StoragePhase:
      type: object
      required:
      - fees_collected
      - status_change
      properties:
        fees_collected:
          type: integer
          format: int64
          x-js-format: bigint
          example: 25713146000001
        fees_due:
          type: integer
          format: int64
          x-js-format: bigint
          example: 25713146000001
        status_change:
          $ref: '#/components/schemas/AccStatusChange'
    MessageConsequences:
      type: object
      description: 'Result of emulating a wallet message on the current blockchain state: describes the expected on-chain consequences (trace, high-level AccountEvent, risk) for the signing wallet. For UI display only.

        '
      required:
      - trace
      - risk
      - event
      properties:
        trace:
          $ref: '#/components/schemas/Trace'
        risk:
          $ref: '#/components/schemas/Risk'
        event:
          $ref: '#/components/schemas/AccountEvent'
    ElectionsDepositStakeAction:
      type: object
      required:
      - amount
      - staker
      properties:
        amount:
          type: integer
          format: int64
          example: 1660050553
          x-js-format: bigint
        staker:
          $ref: '#/components/schemas/AccountAddress'
    JettonBalance:
      type: object
      required:
      - balance
      - wallet_address
      - jetton
      properties:
        balance:
          type: string
          x-js-format: bigint
          example: '597968399'
        price:
          $ref: '#/components/schemas/TokenRates'
        wallet_address:
          $ref: '#/components/schemas/AccountAddress'
        jetton:
          $ref: '#/components/schemas/JettonPreview'
        defi_asset:
          $ref: '#/components/schemas/JettonAssetInfo'
        extensions:
          type: array
          items:
            type: string
          example:
          - custom_payload
          - non_transferable
        lock:
          type: object
          required:
          - amount
          - till
          properties:
            amount:
              type: string
              x-js-format: bigint
              example: '597968399'
            till:
              type: integer
              format: int64
              example: 1678223064
    JettonAssetInfo:
      type: object
      required:
      - token_type
      - defi_provider
      properties:
        token_type:
          $ref: '#/components/schemas/DefiAssetType'
        type:
          $ref: '#/components/schemas/DefiAssetType'
        defi_provider:
          $ref: '#/components/schemas/DefiProvider'
        pool_assets:
          $ref: '#/components/schemas/DefiLiquidPoolAssets'
    PoolImplementationType:
      type: string
      enum:
      - whales
      - tf
      - liquidTF
      - ffvault
    GasRelayAction:
      type: object
      required:
      - amount
      - relayer
      - target
      properties:
        amount:
          type: integer
          format: int64
          x-js-format: bigint
          example: 1000000000
        relayer:
          $ref: '#/components/schemas/AccountAddress'
        target:
          $ref: '#/components/schemas/AccountAddress'
    JettonTransferAction:
      type: object
      required:
      - amount
      - jetton
      - senders_wallet
      - recipients_wallet
      properties:
        sender:
          $ref: '#/components/schemas/AccountAddress'
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        senders_wallet:
          type: string
          format: address
          example: 0:E93E7D444180608B8520C00DC664383A387356FB6E16FDDF99DBE5E1415A574B
        recipients_wallet:
          type: string
          format: address
          example: 0:E93E7D444180608B8520C00DC664383A387356FB6E16FDDF99DBE5E1415A574B
        amount:
          type: string
          x-js-format: bigint
          example: '1000000000'
          description: amount in quanta of tokens
        comment:
          type: string
          example: "Hi! This is your salary. \nFrom accounting with love."
        encrypted_comment:
          $ref: '#/components/schemas/EncryptedComment'
        refund:
          $ref: '#/components/schemas/Refund'
        jetton:
          $ref: '#/components/schemas/JettonPreview'
    Message:
      type: object
      required:
      - msg_type
      - created_lt
      - ihr_disabled
      - bounce
      - bounced
      - value
      - fwd_fee
      - ihr_fee
      - import_fee
      - created_at
      - hash
      properties:
        msg_type:
          type: string
          example: int_msg
          enum:
          - int_msg
          - ext_in_msg
          - ext_out_msg
        created_lt:
          type: integer
          format: int64
          example: 25713146000001
          x-js-format: bigint
        ihr_disabled:
          type: boolean
          example: true
        bounce:
          type: boolean
          example: true
        bounced:
          type: boolean
          example: true
        value:
          type: integer
          format: int64
          x-js-format: bigint
          example: 60000000
        value_extra:
          type: array
          items:
            $ref: '#/components/schemas/ExtraCurrency'
        fwd_fee:
          type: integer
          format: int64
          x-js-format: bigint
          example: 5681002
        ihr_fee:
          type: integer
          format: int64
          x-js-format: bigint
          example: 5681002
        destination:
          $ref: '#/components/schemas/AccountAddress'
        source:
          $ref: '#/components/schemas/AccountAddress'
        import_fee:
          type: integer
          format: int64
          x-js-format: bigint
          example: 5681002
        created_at:
          type: integer
          format: int64
          example: 5681002
        op_code:
          type: string
          x-js-format: bigint
          example: '0xdeadbeaf'
        init:
          $ref: '#/components/schemas/StateInit'
        hash:
          type: string
          example: 1219de582369ac80ee1afe12147930f458a54ff1eea612611a8bc6bd31581a6c
        raw_body:
          type: string
          format: cell
          description: hex-encoded BoC with raw message body
          example: B5EE9C7201010101001100001D00048656C6C6F2C20776F726C64218
        decoded_op_name:
          type: string
          example: nft_transfer
        decoded_body: {}
    VaultDepositInfo:
      type: object
      required:
      - price
      - vault
      properties:
        price:
          $ref: '#/components/schemas/Price'
        vault:
          type: string
          format: address
          example: 0:0BB5A9F69043EEBDDA5AD2E946EB953242BD8F603FE795D90698CEEC6BFC60A0
    InsufficientFunds:
      type: object
      description: 'Present on an error when a request failed because the source wallet does not hold enough TON to cover the required gas (error_code 50000).

       

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/top-group/refs/heads/main/openapi/top-group-migration-api-openapi.yml