TOP Group (The Open Platform) Migration API

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

Operations 2

POST /v2/migration/wallets #
POST /v2/migration/prepare #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/top-group-migration-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

top-group-migration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: REST api to TON blockchain explorer 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:
    DepositStakeAction:
      description: validator's participation in elections
      type: object
      required:
      - amount
      - staker
      - pool
      - implementation
      properties:
        amount:
          type: integer
          format: int64
          x-js-format: bigint
          example: 1660050553
        staker:
          $ref: '#/components/schemas/AccountAddress'
        pool:
          $ref: '#/components/schemas/AccountAddress'
        implementation:
          $ref: '#/components/schemas/PoolImplementationType'
        stake_meta:
          description: If present, should be used instead of amount
          $ref: '#/components/schemas/Price'
    BouncePhaseType:
      type: string
      example: cskip_no_state
      enum:
      - TrPhaseBounceNegfunds
      - TrPhaseBounceNofunds
      - TrPhaseBounceOk
    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'
    DefiProvider:
      type: object
      required:
      - name
      - description
      - link
      - icon
      - card
      - full
      - tag
      properties:
        name:
          type: string
          example: Morpho
        description:
          type: string
          example: Earn up to 15% yield on your crypto
        link:
          type: string
          example: https://lite.morpho.org/tac/earn/
        miniapp_link:
          type: string
          example: https://t.me/MorphoOrgBot
        icon:
          type: string
        card:
          type: string
        full:
          type: string
        tag:
          type: string
          example: morpho
    ElectionsRecoverStakeAction:
      type: object
      required:
      - amount
      - staker
      properties:
        amount:
          type: integer
          format: int64
          example: 1660050553
          x-js-format: bigint
        staker:
          $ref: '#/components/schemas/AccountAddress'
    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'
    BuyXTRAction:
      type: object
      required:
      - recipient
      - amount
      properties:
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        amount:
          type: string
          x-js-format: bigint
          example: '123000000000'
    JettonQuantity:
      type: object
      required:
      - quantity
      - wallet_address
      - jetton
      properties:
        quantity:
          type: string
          x-js-format: bigint
          example: '597968399'
        wallet_address:
          $ref: '#/components/schemas/AccountAddress'
        jetton:
          $ref: '#/components/schemas/JettonPreview'
    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
    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: {}
    ExtraCurrency:
      type: object
      required:
      - amount
      - preview
      properties:
        amount:
          type: string
          x-js-format: bigint
          example: '1000000000'
        preview:
          $ref: '#/components/schemas/EcPreview'
    TonTransferAction:
      type: object
      required:
      - sender
      - recipient
      - amount
      properties:
        sender:
          $ref: '#/components/schemas/AccountAddress'
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        amount:
          type: integer
          description: amount in nanograms
          format: int64
          example: 123456789
          x-js-format: bigint
        comment:
          type: string
          example: "Hi! This is your salary. \nFrom accounting with love."
        encrypted_comment:
          $ref: '#/components/schemas/EncryptedComment'
        refund:
          $ref: '#/components/schemas/Refund'
    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'
    ScaledUI:
      type: object
      required:
      - numerator
      - denominator
      properties:
        numerator:
          type: string
          x-js-format: bigint
          example: '597968399'
        denominator:
          type: string
          x-js-format: bigint
          example: '597968399'
    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
    AccountStatus:
      type: string
      example: active
      enum:
      - nonexist
      - uninit
      - active
      - frozen
    NftApprovedBy:
      type: array
      items:
        type: string
        example: getgems
        enum:
        - getgems
        - tonkeeper
    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'
    DepositTokenStakeAction:
      type: object
      required:
      - staker
      - protocol
      properties:
        staker:
          $ref: '#/components/schemas/AccountAddress'
        protocol:
          $ref: '#/components/schemas/Protocol'
        stake_meta:
          $ref: '#/components/schemas/Price'
    JettonBurnAction:
      type: object
      required:
      - amount
      - jetton
      - sender
      - senders_wallet
      properties:
        sender:
          $ref: '#/components/schemas/AccountAddress'
        senders_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'
    AddExtensionAction:
      type: object
      required:
      - wallet
      - extension
      properties:
        wallet:
          $ref: '#/components/schemas/AccountAddress'
        extension:
          type: string
          format: address
          example: 0:10C1073837B93FDAAD594284CE8B8EFF7B9CF25427440EB2FC682762E1471365
    AccStatusChange:
      type: string
      example: acst_unchanged
      enum:
      - acst_unchanged
      - acst_frozen
      - acst_deleted
    NftPurchaseAction:
      type: object
      required:
      - amount
      - seller
      - buyer
      - auction_type
      - nft
      properties:
        auction_type:
          type: string
          enum:
          - DNS.ton
          - DNS.tg
          - NUMBER.tg
          - getgems
        amount:
          $ref: '#/components/schemas/Price'
        nft:
          $ref: '#/components/schemas/NftItem'
        seller:
          $ref: '#/components/schemas/AccountAddress'
        buyer:
          $ref: '#/components/schemas/AccountAddress'
    CurrencyType:
      type: string
      example: jetton
      enum:
      - native
      - extra_currency
      - jetton
      - fiat
    ComputeSkipReason:
      type: string
      example: cskip_no_state
      enum:
      - cskip_no_state
      - cskip_bad_state
      - cskip_no_gas
      - cskip_suspended
    Risk:
      type: object
      description: 'Conservative upper bound on assets this wallet may lose if the emulated message is sent and the counterparty behaves maliciously. Values may exceed current balances (e.g. already-authorized future receipts). For UI display only.

        '
      required:
      - transfer_all_remaining_balance
      - gram
      - jettons
      - nfts
      properties:
        transfer_all_remaining_balance:
          type: boolean
          description: 'True if the message semantics allow sweeping all current and future remaining Gram balance of the wallet (e.g. “send all” / drain patterns).

            '
          example: true
        ton:
          type: integer
          format: int64
          x-js-format: bigint
          example: 500
          deprecated: true
          description: this field will gone after Sept. 2026, use gram instead
        gram:
          type: integer
          format: int64
          x-js-format: bigint
          example: 500
          description: Maximum Gram amount that may leave the wallet in the worst case, in nanogram.
        jettons:
          type: array
          description: Jetton positions that may be debited from the wallet in the worst case.
          items:
            $ref: '#/components/schemas/JettonQuantity'
        nfts:
          type: array
          description: NFT items that may be transferred out of the wallet in the worst case.
          items:
            $ref: '#/components/schemas/NftItem'
        total_equivalent:
          type: number
          format: float
          description: 'Estimated equivalent of all assets at risk (Gram, jettons, NFTs) in the selected currency from currencyQuery (e.g. USD). Approximate, best-effort UI value.

            '
    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
    MigrationPrepareResponse:
      type: object
      required:
      - from
      - to
      - wallet_version
      - transactions
      properties:
        from:
          type: string
          format: address
        to:
          type: string
          format: address
        wallet_version:
          type: string
          description: source wallet version (informational)
          example: v4R2
        transactions:
          type: array
          description: ordered; sign and broadcast in array order, one entry per external message
          items:
            $ref: '#/components/schemas/MigrationTransaction'
    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'
    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
    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
    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
    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)
    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'
    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'
    DefiLiquidPoolAssets:
      type: object
      required:
      - asset0
      - asset1
      properties:
        asset0:
          $ref: '#/components/schemas/DefiLockedAsset'
        asset1:
          $ref: '#/components/schemas/DefiLockedAsset'
    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'
    Trace:
      type: object
      required:
      - transaction
      - interfaces
      properties:
        transaction:
          $ref: '#/components/schemas/Transaction'
        interfaces:
          type: array
          items:
            type: string
          example:
          - wallet
          - tep62_item
        children:
          type: array
          items:
            $ref: '#/components/schemas/Trace'
        emulated:
          type: boolean
          example: false
    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'
    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'
    TransactionType:
      type: string
      example: TransOrd
      enum:
      - TransOrd
      - TransTickTock
      - TransSplitPrepare
      - TransSplitInstall
      - TransMergePrepare
      - TransMergeInstall
      - TransStorage
    WithdrawTokenStakeRequestAction:
      type: object
      required:
      - staker
      - protocol
      properties:
        staker:
          $ref: '#/components/schemas/AccountAddress'
        protocol:
          $ref: '#/components/schemas/Protocol'
        stake_meta:
          $ref: '#/components/schemas/Price'
    DepositXTRAction:
      type: object
      required:
      - recipient
      - amount
      properties:
        recipient:
          $ref: '#/components/schemas/AccountAddress'
        amount:
          type: string
          x-js-format: bigint
          example: '123000000000'
    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
    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'
    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)
    CreditPhase:
      type: object
      required:
      - fees_collected
      - credit
      properties:
        fees_collected:
          type: integer
          format: int64
          x-js-format: bigint
          example: 100
        credit:
          type: integer
          format: int64
          x-js-format: bigint
          example: 1000
    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%
    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
    AccountEvent:
      type: object
      description: 'High-level view over a transaction trace caused by a single inbound message. TonAPI analyses the trace, 

# --- 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