Barcha maqolalar
7 daq oʻqish

TON hamyon yaratish — generate_wallet (v4, v5, highload)

TON hamyonni bitta generate_wallet chaqiruvi bilan dasturiy yarating: v3r2, v4, v5r1, highload. Mnemonika, kalitlar, manzil va xavfsiz birinchi depozit.

TONgenerate_walletTON hamyonhighload hamyonMCPnokastodiallik

Siz 500 ta promo-kod generatsiyasini ishga tushirdingiz va har bir toʻlov uchun alohida TON hamyon kerak. Yoki tezkor ravishda «issiq» hamyon yaratadigan, depozit qabul qiladigan va u bilan nimadir qiladigan AI agent yozyapsiz. Internetdan topiladigan birinchi narsa — SDK misollari uyumi: @ton/ton ni ulang, WalletContractV4 bilan WalletContractV5R1 orasidagi farqni tushunib oling, mnemonicNew() ni qoʻlda chaqiring, kalitlarni chiqaring, manzilni hisoblang, highloadʼda subwallet_id ni unutmang. Sizning vazifangizga aloqasi boʻlmagan infratuzilma kodiga yarim kun ketadi. Agar hamyonlarni AI agent yaratsa, buni u oʻzi uddalashi kerak — siz kriptografiyani uning kodiga qoʻlda tikib bermasangiz ham.

Quyida — TON hamyonni dasturiy yaratishni (generate wallet / TONda hamyon yaratish) generate_wallet vositasining bitta chaqiruvi bilan qanday bajarish, v3r2, v4, v5r1 va highload_v3 versiyalarini qanday farqlash hamda bounceable-manzil bilan bogʻliq odatiy xatoda birinchi depozitni qanday yoʻqotmaslik haqida.

TON hamyonni nega dasturiy yaratish kerak (va nega SDK orqali emas)

SDK orqali qoʻlda yaratish — aynan birinchi prodakshengacha bemalol ishlaydi. Masshtabda esa muammolar yuzaga chiqadi:

  • Versiyalar. TONda bitta «hamyon» emas, bir nechta kontrakt bor: v3r2, v4, v5r1, highload. Har birining oʻz mantigʻi bor va bir xil kalitdan ham har biri uchun boshqa-boshqa manzil chiqadi. Versiyada xato qilsangiz — notoʻgʻri manzilni olasiz.
  • Manzil formatlari. Ayni bir hamyon EQ va UQ shaklga ega. Depozit uchun manzil berayotganda ularni chalkashtirsangiz — pul orqaga «qaytib ketadi» (bu haqda quyida).
  • AI agent. Agentga (Claude, Cursor, ChatGPT/Codex) «kutubxona berib boʻlmaydi» — unga tavsifiga qarab oʻzi chaqira oladigan vosita kerak. MCP (Model Context Protocol) orqali agent generate_wallet ni oddiy funksiya kabi chaqiradi va tayyor strukturalangan javob oladi. Versiyalar, kalitlar va formatlar mantigʻi MCP server tomonida yashaydi.
  • Poliglot-stek. Go, Python va Nodeʼda bir vaqtning oʻzida TON-SDK saqlab yurishni istamaysiz — MCP hammasi uchun bitta interfeys beradi.

generate_wallet — TON uchun hosted MCP server boʻlgan TONNodening 16 ta vositasidan biri. U roppa-rosa bitta ishni qiladi: yangi hamyon yaratadi va unga egalik qilish uchun kerak boʻlgan hamma narsani sizga beradi. Yondashuv bilan endi tanishayotgan boʻlsangiz, TON uchun MCP qoʻllanmasidan boshlang.

generate_wallet bitta chaqiruvda: aynan nima qaytadi

generate_wallet yangi TON hamyon yaratadi va unga egalik qilish hamda uni tiklash uchun toʻliq toʻplamni qaytaradi:

  • mnemonika (seed-ibora) — odam oʻqiy oladigan soʻzlar toʻplami, undan qolgan hamma narsa deterministik tarzda chiqariladi;
  • xususiy kalit — tranzaksiyalarni imzolash uchun;
  • ochiq kalit;
  • hamyon manzili — standart TON formatlarida.

Agentga beriladigan promt tom maʼnoda shunday koʻrinadi:

generate_wallet orqali v5r1 versiyasidagi yangi TON hamyon yarat
va manzil bilan mnemonikani koʻrsat.

Agent vositani versiya parametri bilan chaqiradi va taxminan quyidagi koʻrinishdagi strukturani qaytaradi (qiymatlar shartli; TONdagi Ed25519 kalitlari — oddiy hex, Ethereum 0x prefiksisiz):

{
  "version": "v5r1",
  "mnemonic": ["word1", "word2", "...", "word24"],
  "public_key": "e3f1a2…",
  "private_key": "9b7c4d…",
  "address": {
    "bounceable": "EQ…",
    "non_bounceable": "UQ…",
    "raw": "0:abcd…"
  }
}

Hech qanday SDK va qoʻlda derivatsiya yoʻq. Buni qayerda saqlashni endi oʻzingiz hal qilasiz. Eng muhimi: server bu mnemonika va kalitlarni oʻzida qoldirmaydi — bu haqda quyida, nokastodiallik boʻlimida.

v3r2, v4, v5r1 va highload_v3 hamyon versiyalari — qaysi birini tanlash

generate_wallet hamyon kontraktining toʻrtta versiyasini qoʻllab-quvvatlaydi. Bu «yangiroq — demak yaxshiroq» degani emas: har birining oʻz nishasi bor.

v5r1 (W5) — yangi loyihalar uchun standart tanlov

Eng yangi versiya. Kengaytmalar va gasless-ssenariylarni qoʻllab-quvvatlaydi — bunda komissiyani foydalanuvchi oʻrniga uchinchi tomon relayeri toʻlashi mumkin. Bu v5 kontraktining oʻz xususiyati, TONNode xizmati emas: server faqat shunday hamyon yaratadi, hech qanday gasless-relayer taqdim etmaydi. Zamonaviy agentni noldan qurayotgan boʻlsangiz va aynan highload kerak boʻlmasa — v5r1 ni oling.

v4 — plaginli versiya

Oldingi ommaviy avlod. Plaginlarni qoʻllab-quvvatlaydi: hamyonga kengaytma-kontraktlarni biriktirish mumkin (masalan, obunalar va kechiktirilgan toʻlovlar uchun). Uzoq vaqt de-fakto standart boʻlgan, hamyonlar va xizmatlar tomonidan keng qoʻllab-quvvatlanadi. Agar v4ʼning plagin modeliga bogʻliq boʻlsangiz — shu versiyani oling.

v3r2 — oddiy bazaviy hamyon

Kengaytmalar va plaginlarsiz minimal kontrakt. Xatti-harakati oldindan aniq, gaz boʻyicha arzon. Butun mantigʻi «qabul qilish va joʻnatish» dan iborat xizmat manzillari uchun mos keladi.

highload_v3 — ommaviy toʻlovlar uchun

Alohida sinf. Yuqori oʻtkazuvchanlikka moʻljallangan hamyon: bitta tashqi xabar koʻplab oʻtkazmalarni olib yura oladi. Bu — paketli toʻlovlar, droplar, mukofot tarqatish, toʻlov shlyuzlari, birjadan mablagʻ chiqarish uchun oladigan narsangiz. Samaradorlik evaziga xabarlarni hisobga olishning alohida modeli (query_id / expiration) keladi, shu bois u ehtiyotkor munosabatni talab qiladi — parametrlarni saqlash haqidagi boʻlimga qarang.

Versiya Qachon olinadi
v5r1 Yangi loyihalar, kengaytmalar, gasless
v4 Plaginlar kerak (obunalar va h.k.), maksimal moslik
v3r2 Ortiqcha imkoniyatlarsiz oddiy xizmat hamyoni
highload_v3 Ommaviy/paketli toʻlovlar, yuqori throughput

Toʻlovlar uchun promt namunasi:

Paketli toʻlovlar uchun highload_v3 hamyon generatsiya qil va
mnemonika, kalitlar hamda manzilni qaytar.

Birinchi depozit: nega non-bounceable UQ-manzilga joʻnatiladi

Hamyon yaratilgandan keyingi eng koʻp uchraydigan va eng alam qiladigan xato — birinchi depozitni yoʻqotish. Mexanikasi shunday: endigina yaratilgan hamyon hali blokcheynga deploy qilinmagan — kodni yoyadigan birinchi oʻtkazma kelmaguncha, manzilda kontrakt jismonan mavjud emas.

TONda manzilning «bounceable» bayrogʻi bor:

  • EQ (bounceable) — manzilda tirik kontrakt boʻlmasa, tarmoq oʻtkazmani joʻnatuvchiga qaytarib «bounce» qiladi. Yangi hamyon uchun bu aynan sizning holatingiz.
  • UQ (non-bounceable) — kontrakt hali yoyilmagan boʻlsa ham, oʻtkazma manzilga «yopishadi». Birinchi depozit uchun aynan shu kerak.

Qoida oddiy: yangi hamyonga birinchi toʻldiruvchi oʻtkazmani UQ-manzilga joʻnating. EQʼga yuborsangiz, u qaytib keladi va siz balans nega boʻsh ekanini oʻylab yurasiz. Hamyon birinchi chiquvchi tranzaksiyani bajarib, deploy boʻlgach, bounceable shakldan bemalol foydalanish mumkin.

UQ shaklni ishonchli qanday olish mumkin? Oflayn parse_address vositasi bilan — u tarmoqqa murojaat qilmasdan EQ/UQ/raw formatlarni konvertatsiya qiladi va tekshiradi:

parse_address orqali bu manzilni birinchi depozit uchun
non-bounceable UQ shaklga oʻtkaz

Toʻldirgandan soʻng holatni get_account_state orqali tekshiring — u hisob statusini (uninitialized / active), bayroqlarni va oxirgi tranzaksiyani koʻrsatadi:

UQ… uchun get_account_state ni tekshir — hamyon deploy
boʻlganmi va balans qancha

Kontrakt faol boʻlmaguncha, holat depozit hamyonni hali «koʻtarmaganini» aytib turadi. Formatlarning batafsil tahlili — EQ/UQ/raw manzil formatlari haqidagi maqolada.

Highload hamyon: subwallet_id va timeoutʼni oʻzingiz qayd eting

highload_v3 ni tanlaganlar uchun alohida ogohlantirish. Bu yerda ishlaydigan hamyonni toʻgʻri qayta yaratish va uning xatti-harakatini takrorlash uchun bitta mnemonikaning oʻzi yetarli emas. Highload-kontraktda kalitdan tashqari yana ikkita parametr bor — ular yaratish paytida beriladi va kontraktning initial dataʼsiga (state init) kiradi:

  • subwallet_id — quyi hamyon identifikatori (bitta seed-iboradan bir nechta turli manzil olish imkonini beradi);
  • timeout — tashqi xabarlarning yashash oynasi, query_id va muddat tugashi mantigʻi aynan shunga qurilgan.

Muhim: generate_wallet mnemonika, kalitlar va manzilni qaytaradi — subwallet_id va timeout ni esa highload-hamyon konstruksiyasining parametrlari sifatida siz oʻzingiz tanlaysiz va qayd etasiz. Hamyon qaysi qiymatlar bilan yaratilganini yozib qoʻyish uchun aynan siz javobgarsiz.

Highload-hamyon timeout dan kelib chiqib qaysi xabarlar hali «tirik» ekanini kuzatib boradi. Agar hamyonni faqat seed-ibora boʻyicha, subwallet_id va timeout siz tiklasangiz:

  • notoʻgʻri manzilni olasiz — subwallet_id ham, timeout ham state initʼga kiradi, shuning uchun ularning istalgan birini oʻzgartirish kontraktning initial dataʼsini, demak, manzilini ham oʻzgartiradi;
  • xabarlarning muddati tugashi va dedublikatsiyasining toʻgʻri mantigʻini takrorlay olmaysiz — va chiquvchi oʻtkazmalar hisobini buzib qoʻyish xavfi bor.

Amaliy qoida: highload_v3 uchun subwallet_id va timeout ni omborda mnemonikaning yonida, hamyon haqidagi bitta yozuvning qismi sifatida saqlang. Bu ixtiyoriy metamaʼlumot emas — bu hamyonning oʻzligini belgilaydigan qismi.

# psevdo-yozuv (maxfiy maʼlumot)
mnemonic:      "word1 word2 … word24"
version:       "highload_v3"
subwallet_id:  <yaratishda siz bergan qiymat>
timeout:       <yaratishda siz bergan qiymat>

v3r2/v4/v5r1 uchun bunday talab yoʻq — u yerda mnemonika va versiyani bilishning oʻzi yetarli.

Nokastodial: server kalitlarni saqlamaydi va imzolamaydi

Hamyon «qayerdadir serverda» yaratilganda paydo boʻladigan asosiy savol: oxir-oqibat kalitlarga kim egalik qiladi? Bu yerda javob bir maʼnoli.

generate_wallet qatʼiy nokastodial:

  • server xususiy kalitlarni, mnemonikani va mablagʻlarni hech qachon saqlamaydi;
  • server siz uchun tranzaksiyalarni hech qachon imzolamaydi;
  • generatsiya qilingan hamyon — mnemonika, kalitlar, manzil — javobda butunlay sizga beriladi va server tomonida saqlanmaydi.

Begona seed-iboralar bazasi yoʻq, siz uchun nimadir imzolaydigan operator-kalit yoʻq. Mohiyatan generate_wallet — deterministik generatsiya ustidagi qulay qobiq: kriptografiya bajariladi, natija sizga ketadi, serverda hech narsa qolmaydi. Bu — xizmat kalitni (yoki uning bir qismini) ushlab turadigan va tranzaksiyalarni oʻzi imzolaydigan kastodial agent-hamyonlardan tubdan farq qiladi. Farqni alohida tahlil qilamiz: kastodial va nokastodial MCP.

Amaliy xulosa: generate_wallet javobini darhol oʻzingizning xavfsiz omboringizga saqlang. Server bu hamyonni sizga ikkinchi marta «chiqarib bermaydi» — u uni eslab qolmaydi va «qoʻllab-quvvatlash orqali» tiklash imkonsiz boʻladi. Bu kamchilik emas, ataylab shunday qilingan xususiyat.

Qanday ulash va birinchi hamyonni yaratish

Ulanish — bir daqiqalik ish. @tonnode/mcp paketini npx orqali lokal va bepul ishga tushirasiz; oʻqish vositalarining toʻliq toʻplami kalitsiz ham ishlaydi.

MCP mijoz configi (Claude Desktop, Cursor, istalgan MCP mijoz):

{
  "mcpServers": {
    "ton": {
      "command": "npx",
      "args": ["-y", "@tonnode/mcp"]
    }
  }
}

@tonnode/mcp paketi — open source (MIT), npm va GitHubʼda (tonnode/mcp) mavjud hamda agentingiz bilan tarmoq oʻrtasida HTTP qatlamlarisiz, TONning native ADNL protokoli boʻyicha ishlaydi. Mijozni qayta ishga tushiring — va barcha 16 ta vosita, jumladan generate_wallet, parse_address va get_account_state, agentga ochiladi. Uni aniq bir mijozga qanday ulashni Claude va Cursorni TONga ulash yoʻriqnomasidan koʻring.

generate_wallet barcha 16 ta vosita tarkibiga kiradi va barcha tariflarda, jumladan bepul Hobby da mavjud — daqiqasiga 60 soʻrov, kartasiz. Bepul kalit tizimga kirganingizdan soʻng darhol beriladi. Siz faqat oʻtkazuvchanlik uchun toʻlaysiz, vositalarga kirish uchun emas.

Keyin — «yaratish va xavfsiz toʻldirish» ssenariysini toʻliq yopadigan uchta vosita:

  1. generate_wallet — kerakli versiyadagi hamyonni yaratish, mnemonika, kalitlar va manzilni olish.
  2. parse_address — birinchi depozit uchun manzilning UQ shaklini olish (oflayn).
  3. get_account_state — depozit kontraktni yoyganiga ishonch hosil qilish.

Agentga beriladigan toʻliq promt namunasi:

generate_wallet orqali v5r1 hamyon yarat. Soʻng parse_address
orqali menga birinchi toʻldirish uchun uning UQ-manzilini ber.
Men hisobga mablagʻ tashlaganimdan keyin get_account_state
orqali hamyon deploy boʻlganini tekshir.

Hosted-kalit qachon kerak boʻladi

Lokal npx-ishga tushirish ochiq configdan foydalanadi va ishlab chiqish uchun juda mos. Yuk ostida kafolatlangan oʻtkazuvchanlik kerak boʻlsa (oʻsha highload bilan ommaviy toʻlovlar), hosted-endpointni oʻz kalitingiz bilan ulang:

{
  "mcpServers": {
    "ton": {
      "type": "http",
      "url": "https://mcp.tonnode.io/mcp",
      "headers": { "Authorization": "Bearer tn_live_…" }
    }
  }
}

Asosiysi qisqacha

  • generate_wallet TON hamyonni bitta chaqiruvda yaratadi va mnemonika, xususiy/ochiq kalitlar hamda manzilni qaytaradi — bu SDKʼni qoʻlda yigʻish emas, versiya tanlovi bilan bitta chaqiruv.
  • Yangi loyiha uchun standart versiya — v5r1; ommaviy toʻlovlar uchun — highload_v3; v4 — plaginlar uchun; v3r2 — oddiy hamyon kerak boʻlganda.
  • Birinchi depozitni non-bounceable UQ-manzilga joʻnating, aks holda u qaytib ketadi; UQ shaklni parse_address beradi, holatni esa get_account_state tekshiradi.
  • Highload uchun subwallet_id va timeout ni oʻzingiz qayd eting va mnemonika bilan birga saqlang — ikkalasi ham state initʼga kiradi va manzilga taʼsir qiladi.
  • Server nokastodial: kalitlarni ham, mablagʻlarni ham saqlamaydi va imzolamaydi — kalitlar sizniki.

Bepul Hobby kalitini oling va generate_wallet orqali birinchi hamyoningizni bir necha daqiqada yarating — tonnode.io/dashboard?plan=hobby.

Agentingizga TONga yoʻl oching

16 ta MCP-vosita: oʻqish, nokastodial svoplar, krosscheyn va hamyonlar. Bepul tarif — 60 soʻrov/daq, karta kerak emas.