TON-әмиянды бағдарламалық жолмен жасау (v4, v5, highload)
generate_wallet бір шақыруымен TON-әмиян жасау: v3r2, v4, v5r1, highload нұсқалары. Мнемоника, кілттер, мекенжай және қауіпсіз алғашқы депозит.
Сіз 500 промокод генерациялауды іске қостыңыз, ал әр төлем үшін бөлек TON-әмиян керек. Немесе лезде «ыстық» әмиян жасап, депозит қабылдап, онымен бірдеңе істейтін AI-агент жазып отырсыз. Интернеттен бірінші табылатыны — SDK мысалдарының үйіндісі: @ton/ton қосыңыз, WalletContractV4 мен WalletContractV5R1-дің айырмашылығын түсініп алыңыз, mnemonicNew() функциясын қолмен шақырыңыз, кілттерді шығарып алыңыз, мекенжайды есептеңіз, highload-тағы subwallet_id-ды ұмытпаңыз. Нақты міндетіңізге еш қатысы жоқ инфрақұрылымдық кодқа жарты күн кетеді. Ал әмиянды AI-агент жасайтын болса, ол мұны өзі істей алуы керек — криптографияны оның кодына сіз қолмен жазып бермей-ақ.
Төменде — TON-әмиянды бағдарламалық жолмен (generate wallet / TON-да әмиян жасау) generate_wallet құралының бір шақыруымен қалай жасау керегі, v3r2, v4, v5r1 және highload_v3 нұсқаларының айырмашылығы қандай екені, әрі bounceable-мекенжайға қатысты әдеттегі қатеге ұрынып, алғашқы депозитті жоғалтып алмаудың жолы.
TON-әмиянды не үшін бағдарламалық жолмен жасау керек (және неге SDK арқылы емес)
SDK арқылы қолмен жасау — бірінші продакшнға дейін әбден қалыпты нәрсе. Ауқым өскен сайын мәселелер бой көрсете бастайды:
- Нұсқалар. TON-да бір ғана «әмиян» жоқ, бірнеше контракт бар: v3r2, v4, v5r1, highload. Әрқайсысының өз логикасы бар, әрі бірдей кілттің өзінде мекенжайлары әртүрлі болады. Нұсқаны шатастырсаңыз — мүлде басқа мекенжай аласыз.
- Мекенжай форматтары. Бір әмиянның өзі EQ және UQ түрінде жазылады. Депозитке мекенжай бергенде шатастырсаңыз — ақша кері «қағып» қайтады (бұл туралы төменде).
- AI-агент. Агентке (Claude, Cursor, ChatGPT/Codex) «кітапхана беру» мүмкін емес — оған сипаттамасына қарап өзі шақыра алатын құрал керек. MCP (Model Context Protocol) арқылы агент
generate_wallet-ті кәдімгі функция сияқты шақырып, дайын құрылымдалған жауап алады. Нұсқалардың, кілттердің және форматтардың логикасы MCP-сервер жағында тұрады. - Полиглот-стек. Go, Python және Node-та бір мезгілде TON-SDK ұстағыңыз келмейді — MCP бәріне бір интерфейс береді.
generate_wallet — TON үшін жасалған hosted MCP-сервер TONNode ұсынатын 16 құралдың бірі. Ол дәл бір нәрсе істейді: жаңа әмиян жасап, оны иелену үшін керектің бәрін сізге береді. Тәсілмен енді ғана танысып жатсаңыз, TON үшін MCP гайдынан бастаңыз.
generate_wallet бір шақыруда: нақты не қайтарады
generate_wallet жаңа TON-әмиян жасайды және оны иелену мен қалпына келтіру үшін толық жинақ қайтарады:
- мнемоника (seed-фраза) — қалғанының бәрі детерминистік түрде шығатын, адам оқи алатын сөздер жиыны;
- жеке кілт — транзакцияларға қол қою үшін;
- ашық кілт;
- әмиян мекенжайы — стандартты TON-форматтарында.
Агентке берілетін промпт тура былай көрінеді:
generate_wallet арқылы v5r1 нұсқалы жаңа TON-әмиян жаса,
сосын мекенжай мен мнемониканы көрсет.
Агент нұсқа параметрімен құралды шақырады да, шамамен мынадай құрылым қайтарады (мәндер шартты; TON-дағы Ed25519 кілттері — кәдімгі hex, Ethereum-дағыдай 0x префиксі жоқ):
{
"version": "v5r1",
"mnemonic": ["word1", "word2", "...", "word24"],
"public_key": "e3f1a2…",
"private_key": "9b7c4d…",
"address": {
"bounceable": "EQ…",
"non_bounceable": "UQ…",
"raw": "0:abcd…"
}
}
Ешқандай SDK да, қолмен деривация да жоқ. Әрі қарай мұны қайда сақтауды өзіңіз шешесіз. Ең маңыздысы: сервер бұл мнемониканы да, кілттерді де өзінде қалдырмайды — бұл туралы төменде, кастодиалды еместік бөлімінде.
v3r2, v4, v5r1 және highload_v3 әмиян нұсқалары — қайсысын таңдау керек
generate_wallet әмиян контрактісінің төрт нұсқасын қолдайды. Мұнда «жаңасы — жақсысы» деген ереже жүрмейді: әрқайсысының өз орны бар.
v5r1 (W5) — жаңа жобаларға әдепкі нұсқа
Ең жаңа нұсқа. Кеңейтімдер мен gasless-сценарийлерді қолдайды — пайдаланушының комиссиясын сырттағы релеер төлей алады. Бұл v5 контрактісінің өз қасиеті, TONNode қызметі емес: сервер тек сондай әмиян жасайды, ешқандай gasless-релеер ұсынбайды. Егер нөлден заманауи агент құрып жатсаңыз әрі дәл highload керек болмаса — v5r1 алыңыз.
v4 — плагиндері бар нұсқа
Бұған дейінгі кең тараған буын. Плагиндерді қолдайды: әмиянға кеңейтім-контрактілерді тіркеуге болады (мысалы, жазылымдар мен кейінге қалдырылған төлемдер үшін). Ұзақ уақыт бойы іс жүзіндегі стандарт болды, әмияндар мен сервистер кеңінен қолдайды. v4-тің плагиндік моделіне тәуелділігіңіз болса — осыны алыңыз.
v3r2 — қарапайым базалық әмиян
Кеңейтімдері мен плагиндері жоқ ең шағын контракт. Болжамды әрі газ бойынша арзан. Бүкіл логикасы «қабылдау және жіберу» болатын қызметтік мекенжайларға қолайлы.
highload_v3 — жаппай төлемдер үшін
Бөлек класс. Жоғары өткізу қабілетіне арналған әмиян: бір сыртқы хабарлама көп аударымды алып жүре алады. Пакеттік төлемдер, дроптар, сыйақы тарату, төлем шлюздері, биржадан шығару үшін дәл осыны аласыз. Тиімділігі үшін ол хабарламаларды есепке алудың ерекше моделімен төлейді (query_id / expiration), сондықтан оған ұқыпты қарау керек — параметрлерді сақтау туралы бөлімді қараңыз.
| Нұсқа | Қашан алу керек |
|---|---|
v5r1 |
Жаңа жобалар, кеңейтімдер, gasless |
v4 |
Плагиндер керек (жазылымдар және т.б.), максималды үйлесімділік |
v3r2 |
Қосымша қоспасыз қарапайым қызметтік әмиян |
highload_v3 |
Жаппай/пакеттік төлемдер, жоғары throughput |
Төлемдерге арналған промпт мысалы:
Пакеттік төлемдер үшін highload_v3 әмиянын генерациялап,
мнемониканы, кілттерді және мекенжайды қайтар.
Алғашқы депозит: неге non-bounceable UQ-мекенжайға жіберу керек
Әмиян жасағаннан кейінгі ең жиі кездесетін әрі ең өкінішті қате — алғашқы депозитті жоғалту. Механикасы мынадай: жаңа ғана жасалған әмиян әлі блокчейнге деплой болмаған — кодын орналастыратын алғашқы аударым келмейінше, сол мекенжайда контракт физикалық түрде болмайды.
TON-да мекенжайдың «bounceable» жалаушасы бар:
- EQ (bounceable) — мекенжайда тірі контракт болмаса, желі аударымды жіберушіге кері «қағып» (bounce) қайтарады. Жаңа әмиян үшін бұл дәл сіздің жағдайыңыз.
- UQ (non-bounceable) — контракт әлі орналастырылмаған болса да, аударым мекенжайға «жабысып» қалады. Дәл алғашқы депозит үшін керегі осы.
Ереже қарапайым: жаңа әмиянды толықтыратын алғашқы аударымды UQ-мекенжайға жіберіңіз. EQ-ге жіберсеңіз, ол кері қайтады да, сіз баланстың неге бос екенін түсінбей әуре боласыз. Әмиян алғашқы шығыс транзакциясын жасап, деплой болғаннан кейін bounceable-форманы емін-еркін пайдалана бересіз.
UQ-форманы сенімді түрде қалай алуға болады? Офлайн-құрал parse_address арқылы — ол желіге шықпай-ақ EQ/UQ/raw форматтарын конвертациялайды әрі тексереді:
parse_address арқылы осы мекенжайды алғашқы депозитке
арналған non-bounceable UQ-формаға аудар
Толықтырғаннан кейін күйді get_account_state арқылы тексеріңіз — ол аккаунт статусын (uninitialized / active), жалаушаларды және соңғы транзакцияны көрсетеді:
UQ… үшін get_account_state-ті тексер — әмиян деплой болды ма
және балансы қандай
Контракт белсенді болмай тұрғанда, күй депозиттің әмиянды әлі «көтермегенін» айтып береді. Форматтардың толық талдауы — EQ/UQ/raw мекенжай форматтары туралы мақалада.
Highload-әмиян: subwallet_id мен timeout-ты өзіңіз бекітіңіз
highload_v3 алғандарға арналған бөлек ескерту. Мұнда жұмыс істейтін әмиянды дұрыс қалпына келтіріп, оның мінез-құлқын қайталау үшін бір ғана мнемоника жеткіліксіз. Highload-контрактінің кілттен басқа, жасау кезінде берілетін және оның бастапқы деректеріне (state init) кіретін тағы екі параметрі бар:
subwallet_id— қосалқы әмиянның идентификаторы (бір seed-фразадан бірнеше түрлі мекенжай алуға мүмкіндік береді);timeout— сыртқы хабарламалардың өмір сүру терезесі,query_idмен мерзімнің өту логикасы соған сүйенеді.
Маңыздысы: generate_wallet мнемониканы, кілттерді және мекенжайды қайтарады, ал subwallet_id пен timeout-ты highload-әмиянды құрастыру параметрлері ретінде өзіңіз таңдап, өзіңіз бекітесіз. Әмиян қандай мәндермен жасалғанын жазып алу — дәл сіздің жауапкершілігіңіз.
Highload-әмиян қай хабарламалардың әлі «тірі» екенін timeout негізінде қадағалайды. Егер әмиянды тек seed-фраза бойынша, subwallet_id пен timeout-сыз қалпына келтірсеңіз:
- мүлде басқа мекенжай аласыз —
subwallet_idде,timeoutта state init-ке кіреді, сондықтан кез келгенін өзгерту контрактінің бастапқы деректерін, демек мекенжайын да өзгертеді; - хабарламалардың мерзімі өту мен дедупликациясының дұрыс логикасын қайталай алмайсыз — сөйтіп шығыс аударымдардың есебін бұзып алу қаупі бар.
Практикалық ереже: highload_v3 үшін subwallet_id пен timeout-ты сақтау қоймаңызда мнемониканың қасына, әмиян туралы бір жазбаның бөлігі ретінде салып қойыңыз. Бұл — қосымша, міндетті емес метадерек емес, әмиянның өзін анықтайтын деректің бір бөлігі.
# құпияның псевдо-жазбасы
mnemonic: "word1 word2 … word24"
version: "highload_v3"
subwallet_id: <жасау кезінде өзіңіз берген мән>
timeout: <жасау кезінде өзіңіз берген мән>
v3r2/v4/v5r1 үшін мұндай талап жоқ — онда мнемоника мен нұсқаны білу жеткілікті.
Кастодиалды емес: сервер кілттерді сақтамайды әрі оларға қол қоймайды
Әмиян «сервердің бір жерінде» жасалғанда туындайтын басты сұрақ: түптеп келгенде, кілттерді кім иеленеді? Бұл сұрақтың жауабы бірмағыналы.
generate_wallet — қатаң түрде кастодиалды емес:
- сервер жеке кілттерді, мнемониканы және қаражатты ешқашан сақтамайды;
- сервер сіздің орныңызға транзакцияларға ешқашан қол қоймайды;
- генерацияланған әмиян — мнемоника, кілттер, мекенжай — жауапта толықтай сізге беріледі және сервер жағында сақталмайды.
Бөгде seed-фразалар сақталған база жоқ, сіздің орныңызға бірдеңеге қол қоятын operator-кілт те жоқ. Мәні бойынша generate_wallet — детерминистік генерацияның үстіндегі ыңғайлы қабықша: криптография орындалады, нәтиже сізге кетеді, серверде ештеңе қалмайды. Бұл — сервис кілтті (немесе оның бір бөлігін) ұстап, транзакцияларға өзі қол қоятын кастодиалды агент-әмияндардан түбегейлі айырмашылық. Айырманы бөлек талдаймыз: кастодиалды және кастодиалды емес MCP.
Практикалық қорытынды: generate_wallet жауабын өз қауіпсіз сақтау орныңызға бірден сақтап қойыңыз. Дәл сол әмиянды сервер сізге екінші рет «шығарып бермейді» — ол оны есінде ұстамайды, ал «қолдау қызметі арқылы» қалпына келтіру мүмкін болмайды. Бұл — баг емес, фича.
Қалай қосып, алғашқы әмиянды жасау керек
Қосу — бір минуттық шаруа. @tonnode/mcp пакетін npx арқылы жергілікті түрде әрі тегін көтересіз; оқуға арналған құралдардың толық жинағы кілтсіз қолжетімді.
MCP-клиенттің конфигі (Claude Desktop, Cursor, кез келген MCP-клиент):
{
"mcpServers": {
"ton": {
"command": "npx",
"args": ["-y", "@tonnode/mcp"]
}
}
}
@tonnode/mcp пакеті — open source (MIT), npm мен GitHub-та (tonnode/mcp) жатыр әрі агентіңіз бен желі арасында аралық HTTP-қабаттарсыз, TON-ның нативті ADNL-протоколы бойынша жұмыс істейді. Клиентті қайта іске қосыңыз — сонда 16 құралдың бәрі, оның ішінде generate_wallet, parse_address және get_account_state, агентке қолжетімді болады. Оны нақты клиентке қалай жалғау керегі — Claude мен Cursor-ды TON-ға қосу нұсқаулығында.
generate_wallet 16 құралдың бәрінің құрамына кіреді әрі барлық тарифте, оның ішінде тегін Hobby-де де қолжетімді — минутына 60 сұрау, картасыз. Тегін кілт жүйеге кіргеннен кейін бірден беріледі. Сіз құралдарға қолжетімділік үшін емес, тек өткізу қабілеті үшін төлейсіз.
Әрі қарай — «жасау және қауіпсіз толықтыру» сценарийін толық жабатын үш құрал:
generate_wallet— керекті нұсқадағы әмиянды жасау, мнемониканы, кілттерді, мекенжайды алу.parse_address— алғашқы депозитке арналған мекенжайдың UQ-формасын алу (офлайн).get_account_state— депозиттің контрактіні орналастырғанына көз жеткізу.
Агентке берілетін толық промпт мысалы:
generate_wallet арқылы v5r1 әмиянын жаса. Содан кейін
parse_address арқылы алғашқы толықтыруға оның UQ-мекенжайын бер.
Мен монета салғаннан кейін get_account_state арқылы
әмиянның деплой болғанын тексер.
Hosted-кілт қашан керек
Жергілікті npx арқылы іске қосу жалпыға ортақ конфигті пайдаланады әрі әзірлеуге тамаша келеді. Жүктеме кезінде кепілдендірілген өткізу қабілеті керек болса (дәл сол highload арқылы жасалатын жаппай төлемдер), өз кілтіңізбен hosted-эндпоинтті қосыңыз:
{
"mcpServers": {
"ton": {
"type": "http",
"url": "https://mcp.tonnode.io/mcp",
"headers": { "Authorization": "Bearer tn_live_…" }
}
}
}
Қорытынды
generate_walletTON-әмиянды бір шақыруда жасап, мнемониканы, жеке/ашық кілттерді және мекенжайды қайтарады — бұл SDK-ны қолмен жинау емес, нұсқаны таңдап жасалатын бір ғана шақыру.- Жаңа жобаға әдепкі нұсқа — v5r1; жаппай төлемдер үшін — highload_v3; v4 — плагиндер үшін; v3r2 — қарапайым әмиян керек болғанда.
- Алғашқы депозитті non-bounceable UQ-мекенжайға жіберіңіз, әйтпесе ол кері қағып қайтады; UQ-форманы
parse_addressбереді, ал күйдіget_account_stateтексереді. - Highload үшін
subwallet_idменtimeout-ты өзіңіз бекітіп, мнемоникамен бірге сақтаңыз — екеуі де state init-ке кіреді әрі мекенжайға әсер етеді. - Сервер кастодиалды емес: кілттер мен қаражатты сақтамайды әрі оларға қол қоймайды — кілттер сіздікі.
Тегін Hobby кілтін алып, generate_wallet арқылы алғашқы әмияныңызды бірер минутта жасаңыз — tonnode.io/dashboard?plan=hobby.
Агентіңізге TON-ға қолжетімділік беріңіз
16 MCP-құрал: оқу, кастодиалды емес сваптар, кроссчейн және әмияндар. Тегін тариф — 60 сұрау/мин, карта керек емес.