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.
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_walletni 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_idva 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_idham,timeoutham 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:
generate_wallet— kerakli versiyadagi hamyonni yaratish, mnemonika, kalitlar va manzilni olish.parse_address— birinchi depozit uchun manzilning UQ shaklini olish (oflayn).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_walletTON 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_addressberadi, holatni esaget_account_statetekshiradi. - Highload uchun
subwallet_idvatimeoutni 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.