Мир сегодня с "Юрий Подоляка"
Мир сегодня с "Юрий Подоляка"
Труха⚡️Україна
Труха⚡️Україна
Николаевский Ванёк
Николаевский Ванёк
Мир сегодня с "Юрий Подоляка"
Мир сегодня с "Юрий Подоляка"
Труха⚡️Україна
Труха⚡️Україна
Николаевский Ванёк
Николаевский Ванёк
TON Dev News avatar

TON Dev News

Short announces with new services, tools, libraries and their features. Request a post: https://t.me/tondev_news/33
TGlist reytingi
0
0
TuriOmmaviy
Tekshirish
Tekshirilmagan
Ishonchnoma
Shubhali
Joylashuv
TilBoshqa
Kanal yaratilgan sanaГруд 14, 2022
TGlist-ga qo'shildi
Черв 05, 2024

"TON Dev News" guruhidagi so'nggi postlar

🎉 Tact v1.6.6 is released!

The final patch release of this v1.6 series is upon us, and it brings a significant tooling improvement, amongst other things. Meet the official Tact formatter — a new tool that ensures consistent code style across your Tact projects. It ships with Tact v1.6.6, and you can run it in your projects via npx tact-fmt or by invoking a format command in your editor. You'd need to install the Tact's language server or the VSCode extension for that — see the tact-language-server repo for details.

The v1.6.* series of patches has been a journey of refinement and polish, setting the stage for what's coming next. As we close this chapter, we're already working hard on exciting new features for the future.

For now, let's explore the Tact v1.6.6 release:

🧰 Standard library additions and changes

• Added compute phase exit code constants reserved by the Tact compiler, such as TactExitCodeNullReferenceException (128) and many others.

• Added the SignedBundle struct and the corresponding verifySignature method.

• Added sendRawMessage and sendRawMessageReturnForwardFee functions as replacements for their deprecated counterparts.

• Optimized the sha256() function to about ~270 less gas used per call and added the keccak256() function that works with arbitrarily long slices.

🛠 Bug fixes

There were a lot of those. Remember that last time we started fuzzing the compiler with LLMs to root out bugs? Well, we found many bugs that way and fixed even more — many error messages got way more informative and useful. Some bug fixes allowed for seemingly unrelated UX improvements too.

One nice example of a second-order fix would be that the require() function now supports constants as its second parameter. You no longer need to provide identical string literals everywhere — define a string constant somewhere and reuse it!

See the full release notes for a long list of bugs squished and error messages improved.

✍️ Documentation updates

• Added a "Learn Tact in Y minutes" page, which gives a whirlwind code-first tour of the Tact language.

• Any AI vibe coders out there? The docs now generate llms.txt, llms-full.txt and llms-small.txt files for you to use with your AIs. The small version is particularly interesting as it fits in the 200k context.

• The "gas best practices" page got updated with new recommendations, such as specialized math functions or the BasechainAddress struct and related functions.

• Lots of examples fixed, with more fixes to arrive as we speak.

🧳 Formatter!

You can run it via npx tact-fmt in your projects — it supports checking the formatting via the --check flag, applying fixes via the --write flag, and can check both individual files and directories of files.

Furthermore, it also ships with our official language server and VSCode extensions. See the tact-language-server's README.md for installation details.

📜 See the full release notes for Tact v1.6.6
📥 And upgrade Tact in your projects

In about 4 days from now, on April 21 at 12:00 (UTC+3), the Tact Smart Battle will begin! It is the ultimate smart contract challenge powered by Tact and organized by TON Studio & Codeforces. The prize pool is $20,000 in Toncoin, and the top 128 participants will receive exclusive Soulbound Tokens (SBTs). Moreover, the best battlers will be invited for job interviews at TON Studio.

And all participants with valid solutions would also receive a Participant SBT.

👉 Register, if not already: Codeforces
• Here's the registration guide, just in case: Notion
• Hop in the community chat to ask questions, receive support and have fun learning and using Tact: @tact_smart_battle

🍲 flint and tact
♨️ @tact_kitchen from the @ton_studio
Repost qilingan:
TON Contests avatar
TON Contests
🧠 Tact Smart Battle 🤜

Join the ultimate smart contract challenge powered by Tact, organized by TON Studio & Codeforces

🏅 Prize Pool — $20,000 in Toncoin!

🎯 Challenge Tasks:
1. Simple Voting — basic voting system.
2. Serial Voting — multiple proposals via a master contract.
3. Scalable Voting — support up to 4 billion voters.
4. Voting with Refunds — refunds to voters.
5. Gas-Managed Voting — fully optimized contracts.

🏆 Rewards:
- Top 128 participants share the prize pool and receive exclusive Soulbound Tokens (SBTs).
- All participants with valid solutions also receive a Participant SBT.
- SBTs include embedded on-chain developer reputation.

⭐️ Additional Perks:
- Top participants will be invited for job interviews at TON Studio.

Duration: 7 days

🗓️ Start Date: April 21, 12:00 (UTC+3)
🛑 Deadline: April 28, 12:00 (UTC+3)

Registration:
👉 Challenge Link (Codeforces)

Registration guide:
👉 Notion link

Community & Support:
👉 Telegram Challenge Chat

Good luck and may your contracts be efficient and bug-free! 🚀🔥
🎉 Welcome Challenge: A Tact Developers Competition!

DivaTech is launching TON Contests — a platform for hosting competitions for TON smart contract developers.

To celebrate the launch, we’re kicking off our first contest — Welcome Challenge with a $1000 prize pool!

You’ll face 5 easy-to-medium-level tasks in Tact smart contract development, with 6 hours to solve them.

📅 When: April 13, 3:00 PM – 9:00 PM (GMT+3)
🌍 Where: Online at toncontests.com

🏆 Prizes:
🥇 Top 5: $100 each
🥈 Next10: $35 each
🥉 Next 15: $10 each

Registration for the Welcome Challenge is now open
Repost qilingan:
BotNews avatar
BotNews
Bot API 9.0

Announcing the largest Bot API update of 2025 (so far 😈)

🏪 Telegram Business 2.0
Bots can now fully customize the branding of Business Accounts – managing their name, username, bio and profile pictures.
Introduced support for managing Paid Gifts 🎁, including conversions, transfers and upgrades.
• Bots can now check ⭐️ Telegram Star balances and transfer Stars from managed businesses.
Bots can now easily mark Business messages as read or delete them.
• Added extensive support for managing stories on Business accounts – featuring photos, videos and interactive elements like links, locations, reactions, weather info and even Gifts.
• All stories posted by bots can also be edited or deleted.
Introduced granular Business permissions, giving users even finer control over connected bots.

🗃️ Mini App Storage
Mini Apps can now store data locally on the user's device.
Sensitive tokens can be safely persisted in a specialized secure storage.

🎁 Telegram Gifts
Introduced support for unique Gifts – with detailed model, symbol and backdrop info.
Bots can also check which Gift types are accepted by users and chats.

⭐️ Paid Messages
Bots can now track how many Stars users paid to send a message.
• This includes out-of-the-box support for paid messages in both groups and business accounts.

⭐️ Telegram Premium
Bots can now gift a Telegram Premium subscription paid in Stars.

And more, see the full changelog for details:

https://core.telegram.org/bots/api-changelog#april-11-2025
Repost qilingan:
Ton Console avatar
Ton Console
📝 Sign Arbitrary Data with TON Connect

The latest update to our TON Connect implementation introduces a powerful new feature: the ability to sign arbitrary data — from plain text and binary blobs to BOC (cell) format.

This unlocks new use cases in the TON ecosystem: secure off-chain flows, verifiable signatures, and advanced on-chain logic — all through the familiar TON Connect interface.

Now supported in the latest versions of Tonkeeper on iOS and Android.

Explore the guide and start building →
Repost qilingan:
TL
TOLK lang
🫧 Tolk v0.11: type aliases, union types, and pattern matching

This update might confuse you at first. You may wonder: "Why do we need this? How will it be useful?". But in the end, you'll see how everything comes together bringing seamless and generalized message handling.

✅ Notable changes in Tolk v0.11:

1. Type aliases type NewName =
2. Union types T1 | T2 | ...
3. Pattern matching for types
4. Operators is and !is
5. Pattern matching for expressions
6. Semicolon for the last statement in a block can be omitted

PR on GitHub with detailed info.

✔ Type aliases

Tolk now supports type aliases, similar to TypeScript and Rust.



An alias creates a new name for an existing type but remains interchangeable with it. No performance overhead — a compile-time feature.

✔ Union types `T1 | T2 | ...`

They now allow a variable to hold multiple possible types.



Nullable types T? are now formally T | null.

At the TVM level, union types work as tagged unions — similar to Rust enums but more flexible.

✔ Pattern matching

The only way to work with union types is matching them:



Matching is based on smart casts — inside each branch, the variable is automatically narrowed to the matched type.
 
It can also be used as an expression:



So, `match` + smart casts are our way for union types. You may notice that it's close to enums in Rust. But we don't have enum. Union types are more general and powerful.

✔ `match` for expressions



As you see, match also works for constant expressions, similar to switch in other languages.

✔ Union types and TL/B `Either`

T1 | T2 will be directly mapped to TL-B (Either T1 T2).
Look how clean this is: (Either SmallPayload LargePayload) becomes



No need to manually handle bits from the slice — it's naturally expressed in the type system!

✔ Union types and TL/B constructors

T1 | T2 | ... is a typed way to describe multiple constructors from TL/B. Generally, they can be used anywhere inside a storage or a message.

Moreover — handling incoming messages is beautifully expressed with union types.

✔ Union types and future structures

The ultimate goal? You'll describe each incoming message as a struct, create a union type for them, parse a slice, and just match over variants:



🌳 So, union types (that perfectly work with tensors) will seamlessly work with structures. With union types, you will declare both Either and different kinds of messages. Combined with intN and other types, they will allow to express (almost) any practical TL/B construction. They are not limited to message routing — in other words, message routing does not differ from handling any field, any storage, or any cell in general.
Repost qilingan:
Toncenter API avatar
Toncenter API
Toncenter API supported hash of a normalized external message

API V3 (Index):

- hash_norm field added to the Message structure. If the field is not present, it means this message not an external message, or the normalized hash_norm is equal to the regular hash.

- All methods with msg_hash parameter search also by normalized hash.

API V2:

- api/v2/sendBocReturnHash returns the normalized hash in addition to the normal hash.
Repost qilingan:
Ton Console avatar
Ton Console
Tracking Transactions on TON Just Got Easier! 🎉

Tracking external transactions (external-in) on the TON blockchain was challenging for all of us due to minor metadata differences.

Now TonAPI solves this with the normalized hash. With this method, tracking transactions is simple and reliable.

We've prepared clear examples to get you started:
- Tracking transactions from TonConnect for dApps
- Tracking manually constructed external messages

See code examples →

We’re excited to share this improvement, and soon more ecosystem tools will support it too!
🎉 Tact v1.6.5 is released!

Back with another round of refinements! While we're working on many exciting things in the background, we're committed to fixing every bug that the community might discover so that Tact can provide a flawless developer experience.

Furthermore, we now actively employ AI and large language model (LLM) fuzzing techniques, such as documentation-driven approaches where LLMs are given only the Tact language documentation and access to the compiler. Then, LLM agents generate potentially problematic code snippets, compile them, and analyze results. They further iterate and provide new, interesting bug reports — resolving those makes both Tact compiler and Tact documentation better at the same time!

Check out this awesome article from one of the team members to learn more: Documentation-Driven Compiler Fuzzing with Large Language Models.

And now, let's see what's new in Tact v1.6.5, starting with the most prominent part of this patch release:

🛠 Bug fixes

• Ternary operator ?: now correctly works with structs and null values
• New parser now properly handles the code that wasn't completed at the end of the file
• The error for assembly functions and the get attribute is now correctly shown
• Now, when you call the dump() function with an argument of the unsupported StringBuilder type, the error will always be shown even if the debug mode is disabled
• Improper whitespace between the operator and the equals sign is no longer allowed
• The &&= and ||= augmented assignment operators are now properly short-circuited
• Get methods now can return an optional contract state
• The Struct.fromSlice(), Message.fromSlice(), and similar functions now work properly if the slice has been parsed entirely and the last field of the struct had the serialization annotation as remaining
• The wildcard symbol _ is prohibited for struct and message struct fields, function names, contract, and trait names
• The contract's state is now properly saved on early return statements in the receiver functions

🧳 Miscellaneous improvements

• Whenever you access context().sender, it now calls the sender() function instead to optimize the gas usage
• The internalExternalReceiversOutsideMethodsMap option and its respective receiver order optimization were reworked to ensure compatibility with explorers and user wallets
• The SendPayGasSeparately constant was deprecated in favor of SendPayFwdFeesSeparately — they're functionally identical, but the latter better expresses the intent and action that this optional flag makes when sending messages
• The Stoppable trait now throws the exit code 133 instead of the exit code generated by the require() function from the "Contract stopped" message

📜 See the full release notes for Tact v1.6.5
📥 And upgrade Tact in your projects

LLMs are great, but we value our community no less. It's great being around a bunch of talented, passionate, and bright engineers who make a future of safe and scalable ⚡️ Tact smart contracts on TON possible for everyone. Thank you for everything you do and for the feedback you give!

A special shoutout goes to the RSquad team @rsquadlife for their early adoption of Tact features, thoughtful suggestions, and bug reports. If punk were code, they'd be its maintainers 🤘

🍲 ghibli deez bugs
♨️ @tact_kitchen from the @ton_studio
Repost qilingan:
TonTech avatar
TonTech
🔨 TON Connect SDK Update

We're excited to announce a new release of the TON Connect SDK with significant enhancements for dApp developers.

We kindly request all dapp developers to update to the latest version to ensure optimal performance and user experience.

👥 @tonconnect/{sdk,ui,ui-react}
• New wallet feature requirements API
• Extra currencies in transactions
• React 19 compatibility

📁 New package versions
• @tonconnect/protocol 2.2.7
• @tonconnect/sdk 3.1.0
• @tonconnect/ui 2.1.0
• @tonconnect/ui-react 2.1.0

⬇️ To update, run npm install @tonconnect/ui-react@latest or npm install @tonconnect/ui@latest

💡 To learn more, visit the GitHub page at https://github.com/ton-connect/sdk.

💬 Encountered issues? Please report them on GitHub at https://github.com/ton-connect/sdk/issues.

⭐️ Special thanks to the Tonkeeper team for their contribution to this release!

🎁 Your feedback and usage examples are crucial. Share your experiences to help us evolve the SDK!
Repost qilingan:
📀 TON Data Hub avatar
📀 TON Data Hub
Build a Dashboard for DeDust
——————> Win up to $3000

Welcome to our first data contest where we reward for making TON data more transparent.

Build a Dune dashboard for DeDust and win:
🥇 1st place: $3000
🥈 2nd place: $2000
🥉 3rd place: $1000


📅 Deadline: Mar, 24

Read more:
👉 [ Rules & Guidelines ] 👈
(bonus task for onchain detectives inside)

Got questions? Ask in our chat: @tondatachat
Repost qilingan:
TL
TOLK lang
🫧 Tolk v0.10: preparing for serialization — intN, bytesN, coins

This update lays the foundation of future auto-packing to/from cells by solving one critical question:
How should fields be serialized?

✅ Notable changes in Tolk v0.10:

1. Fixed-size integer types: int32, uint64, etc.
2. Type coins and function ton("0.05")
3. Types bytesN and bitsN (backed by slices at TVM)
4. Replace "..."c postfixes with stringCrc32("...") functions
5. Trailing comma support

PR on GitHub with detailed info.

❓ Fixed-size integers? In TVM? What?

Imagine Tolk already has structures, and we define an incoming message:


A client sends this message following the TL/B schema:

counterIncrement
counter_id:int32
inc_by:int64
= CounterIncrement;


But how do we tell the compiler that counter_id is int32 and inc_by is int64? This information is missing in the struct definition.

✖ Rejected approaches: why they fail

Several syntax ideas were considered:



Each of these quickly breaks down when handling more complex cases.

For example, how would we handle TL-B Maybe int32? Would we write:


And what about TL/B Both (Maybe int32) int64?


With every new case, the syntax becomes more complex, ambiguous, and error-prone.

✔ The solution: `int32` as a first-class type



No annotations. No confusing as syntax. No ambiguity.

This scales perfectly:


These are distinct types. A variable can be int32 and similar:


This makes serialization predictable, structured, and error-free.

✔ What about overflow?

A reasonable question: what happens if a value exceeds the limit?


Answer: no runtime overflow or clamping! It's just int at TVM.

* arithmetic works normally – v becomes 256
* no extra gas cost – no runtime bounds checks
* overflow will only happen at serialization



✔ Why is this the best approach?

Think of smart contracts as a black box:
- inputs are encoded (int32, uint64, etc.)
- inside the contract, arithmetic uses full 257-bit precision
- outputs are serialized again — overflow happens only at this stage

This is similar to how mulDivFloor(x,y,z) uses 513-bit precision internally. Your contract keeps precision internally and only enforces constraints at the border with an outside world.

🌳 Tolk will follow a type-based philosophy

This post covered the foundation of automatic serialization. The right way is to have a rich type system. Having nested types, having generics, having aliases — will allow to describe every practical TL/B case, but at a language level.

In v0.10, we introduce intN (fixed integers), bytesN (definite slices), coins (variadic integers), and some more additions. Read the details in the PR.

How will Either L R and even more complex TL/B structures be expressed?
Stay tuned for the next update...
🖥 Help Improve the Developer Experience in TON!

We're conducting a focused study on TON API providers to identify key challenges and unlock new opportunities for innovation. Our mission is to make the TON ecosystem more powerful, seamless, and developer-friendly.

💡 Your insights matter! Help us enhance the tools you use by sharing your experience in this short survey:
👉 Survey link

Your feedback drives real improvements—let’s build the best developer experience together! 💙
✈️ The First AI Developer Community in TON is Here! 🚀

A new developer community TON AI Narrative has been launched in TON! This is a place where we explore the synergy of AI + Web3 + Telegram and build the future of AI agents in TON.

💡What’s in TON AI Narrative?

📌 AI tutorials for TON
📌 Technologies and tools for AI agents
📌 Events and challenges for developers

🔥 TON AI Plugin – The First Step Toward TON AI SDK

Our community has built the first AI tool for TON – TON AI Plugin in the ElizaOS framework.

The goal is simple: any developer should be able to create an AI agent on TON in just 15 minutes.

💡 AI agents can’t get bank accounts, but they can get crypto wallets.

Now, AI can hold and manage crypto, make transactions, and interact with smart contracts – unlocking.

Example:

💬 “I have $5000 and want to invest in DeFi”

👉 Agent builds the transaction for you, distributing funds across Dedust, Storm, Eva, and other DeFi protocols on TON. All you need to do is review and sign the transaction.

But this is just the beginning! TON AI Plugin is the first step toward a full TON AI SDK, which will provide tools for AI agent development, Web3 integration, and Telegram interaction.

🐞 Join the Bug Bounty – Test the TON AI Plugin!

We are looking for enthusiasts who want to explore AI’s potential in Web3 and help improve this tool.

💵 The top 3 bug reporters will receive a cash reward!

🔗 Full details and participation rules:
👉 BUG-BOUNTY.md

📣 Join TON AI Narrative and help build the future of AI on TON!

🗣 Chat: TON AI Narrative Chat
📢 Channel: TON AI Narrative
During the last year all dTON services were running on kubernetes cluster without HA build. Sometimes when we lost servers, we faced complex problems.

To improve the stability and availability of the service we developed high availability dTON cluster that will continue to work even if some of the servers are unavailable. Additionally, we've got setup complex monitoring and alerting system on services and data consistency.

Today we managed to switch all our services to HA cluster.

In our article we want to share our experience of HA cluster on top of bare-metal servers in three parts:

- dTON Kubernetes High Availability Transition
- dTON LiteServers High Availability Transition
- dTON GraphQL High Availability Transition

Second and third part will be posted exclusively on @dtontech with promo codes on dTON API usage.

https://blog.dton.io/dton-kubernetes-high-availability-transition-part-1/

Rekordlar

16.08.202423:59
74.9KObunachilar
06.02.202504:25
1400Iqtiboslar indeksi
25.09.202423:59
199.9KBitta post qamrovi
25.09.202423:59
199.9KReklama posti qamrovi
16.04.202523:59
6.28%ER
25.09.202423:59
272.72%ERR

Rivojlanish

Obunachilar
Iqtibos indeksi
1 ta post qamrovi
Reklama posti qamrovi
ER
ERR
ЛИП '24ЖОВТ '24СІЧ '25КВІТ '25

TON Dev News mashhur postlari

🎉 Tact v1.6.6 is released!

The final patch release of this v1.6 series is upon us, and it brings a significant tooling improvement, amongst other things. Meet the official Tact formatter — a new tool that ensures consistent code style across your Tact projects. It ships with Tact v1.6.6, and you can run it in your projects via npx tact-fmt or by invoking a format command in your editor. You'd need to install the Tact's language server or the VSCode extension for that — see the tact-language-server repo for details.

The v1.6.* series of patches has been a journey of refinement and polish, setting the stage for what's coming next. As we close this chapter, we're already working hard on exciting new features for the future.

For now, let's explore the Tact v1.6.6 release:

🧰 Standard library additions and changes

• Added compute phase exit code constants reserved by the Tact compiler, such as TactExitCodeNullReferenceException (128) and many others.

• Added the SignedBundle struct and the corresponding verifySignature method.

• Added sendRawMessage and sendRawMessageReturnForwardFee functions as replacements for their deprecated counterparts.

• Optimized the sha256() function to about ~270 less gas used per call and added the keccak256() function that works with arbitrarily long slices.

🛠 Bug fixes

There were a lot of those. Remember that last time we started fuzzing the compiler with LLMs to root out bugs? Well, we found many bugs that way and fixed even more — many error messages got way more informative and useful. Some bug fixes allowed for seemingly unrelated UX improvements too.

One nice example of a second-order fix would be that the require() function now supports constants as its second parameter. You no longer need to provide identical string literals everywhere — define a string constant somewhere and reuse it!

See the full release notes for a long list of bugs squished and error messages improved.

✍️ Documentation updates

• Added a "Learn Tact in Y minutes" page, which gives a whirlwind code-first tour of the Tact language.

• Any AI vibe coders out there? The docs now generate llms.txt, llms-full.txt and llms-small.txt files for you to use with your AIs. The small version is particularly interesting as it fits in the 200k context.

• The "gas best practices" page got updated with new recommendations, such as specialized math functions or the BasechainAddress struct and related functions.

• Lots of examples fixed, with more fixes to arrive as we speak.

🧳 Formatter!

You can run it via npx tact-fmt in your projects — it supports checking the formatting via the --check flag, applying fixes via the --write flag, and can check both individual files and directories of files.

Furthermore, it also ships with our official language server and VSCode extensions. See the tact-language-server's README.md for installation details.

📜 See the full release notes for Tact v1.6.6
📥 And upgrade Tact in your projects

In about 4 days from now, on April 21 at 12:00 (UTC+3), the Tact Smart Battle will begin! It is the ultimate smart contract challenge powered by Tact and organized by TON Studio & Codeforces. The prize pool is $20,000 in Toncoin, and the top 128 participants will receive exclusive Soulbound Tokens (SBTs). Moreover, the best battlers will be invited for job interviews at TON Studio.

And all participants with valid solutions would also receive a Participant SBT.

👉 Register, if not already: Codeforces
• Here's the registration guide, just in case: Notion
• Hop in the community chat to ask questions, receive support and have fun learning and using Tact: @tact_smart_battle

🍲 flint and tact
♨️ @tact_kitchen from the @ton_studio
Repost qilingan:
TON Contests avatar
TON Contests
15.04.202509:01
🧠 Tact Smart Battle 🤜

Join the ultimate smart contract challenge powered by Tact, organized by TON Studio & Codeforces

🏅 Prize Pool — $20,000 in Toncoin!

🎯 Challenge Tasks:
1. Simple Voting — basic voting system.
2. Serial Voting — multiple proposals via a master contract.
3. Scalable Voting — support up to 4 billion voters.
4. Voting with Refunds — refunds to voters.
5. Gas-Managed Voting — fully optimized contracts.

🏆 Rewards:
- Top 128 participants share the prize pool and receive exclusive Soulbound Tokens (SBTs).
- All participants with valid solutions also receive a Participant SBT.
- SBTs include embedded on-chain developer reputation.

⭐️ Additional Perks:
- Top participants will be invited for job interviews at TON Studio.

Duration: 7 days

🗓️ Start Date: April 21, 12:00 (UTC+3)
🛑 Deadline: April 28, 12:00 (UTC+3)

Registration:
👉 Challenge Link (Codeforces)

Registration guide:
👉 Notion link

Community & Support:
👉 Telegram Challenge Chat

Good luck and may your contracts be efficient and bug-free! 🚀🔥
Repost qilingan:
BotNews avatar
BotNews
11.04.202515:37
Bot API 9.0

Announcing the largest Bot API update of 2025 (so far 😈)

🏪 Telegram Business 2.0
Bots can now fully customize the branding of Business Accounts – managing their name, username, bio and profile pictures.
Introduced support for managing Paid Gifts 🎁, including conversions, transfers and upgrades.
• Bots can now check ⭐️ Telegram Star balances and transfer Stars from managed businesses.
Bots can now easily mark Business messages as read or delete them.
• Added extensive support for managing stories on Business accounts – featuring photos, videos and interactive elements like links, locations, reactions, weather info and even Gifts.
• All stories posted by bots can also be edited or deleted.
Introduced granular Business permissions, giving users even finer control over connected bots.

🗃️ Mini App Storage
Mini Apps can now store data locally on the user's device.
Sensitive tokens can be safely persisted in a specialized secure storage.

🎁 Telegram Gifts
Introduced support for unique Gifts – with detailed model, symbol and backdrop info.
Bots can also check which Gift types are accepted by users and chats.

⭐️ Paid Messages
Bots can now track how many Stars users paid to send a message.
• This includes out-of-the-box support for paid messages in both groups and business accounts.

⭐️ Telegram Premium
Bots can now gift a Telegram Premium subscription paid in Stars.

And more, see the full changelog for details:

https://core.telegram.org/bots/api-changelog#april-11-2025
Repost qilingan:
TL
TOLK lang
08.04.202509:35
🫧 Tolk v0.11: type aliases, union types, and pattern matching

This update might confuse you at first. You may wonder: "Why do we need this? How will it be useful?". But in the end, you'll see how everything comes together bringing seamless and generalized message handling.

✅ Notable changes in Tolk v0.11:

1. Type aliases type NewName =
2. Union types T1 | T2 | ...
3. Pattern matching for types
4. Operators is and !is
5. Pattern matching for expressions
6. Semicolon for the last statement in a block can be omitted

PR on GitHub with detailed info.

✔ Type aliases

Tolk now supports type aliases, similar to TypeScript and Rust.



An alias creates a new name for an existing type but remains interchangeable with it. No performance overhead — a compile-time feature.

✔ Union types `T1 | T2 | ...`

They now allow a variable to hold multiple possible types.



Nullable types T? are now formally T | null.

At the TVM level, union types work as tagged unions — similar to Rust enums but more flexible.

✔ Pattern matching

The only way to work with union types is matching them:



Matching is based on smart casts — inside each branch, the variable is automatically narrowed to the matched type.
 
It can also be used as an expression:



So, `match` + smart casts are our way for union types. You may notice that it's close to enums in Rust. But we don't have enum. Union types are more general and powerful.

✔ `match` for expressions



As you see, match also works for constant expressions, similar to switch in other languages.

✔ Union types and TL/B `Either`

T1 | T2 will be directly mapped to TL-B (Either T1 T2).
Look how clean this is: (Either SmallPayload LargePayload) becomes



No need to manually handle bits from the slice — it's naturally expressed in the type system!

✔ Union types and TL/B constructors

T1 | T2 | ... is a typed way to describe multiple constructors from TL/B. Generally, they can be used anywhere inside a storage or a message.

Moreover — handling incoming messages is beautifully expressed with union types.

✔ Union types and future structures

The ultimate goal? You'll describe each incoming message as a struct, create a union type for them, parse a slice, and just match over variants:



🌳 So, union types (that perfectly work with tensors) will seamlessly work with structures. With union types, you will declare both Either and different kinds of messages. Combined with intN and other types, they will allow to express (almost) any practical TL/B construction. They are not limited to message routing — in other words, message routing does not differ from handling any field, any storage, or any cell in general.
Repost qilingan:
Ton Console avatar
Ton Console
📝 Sign Arbitrary Data with TON Connect

The latest update to our TON Connect implementation introduces a powerful new feature: the ability to sign arbitrary data — from plain text and binary blobs to BOC (cell) format.

This unlocks new use cases in the TON ecosystem: secure off-chain flows, verifiable signatures, and advanced on-chain logic — all through the familiar TON Connect interface.

Now supported in the latest versions of Tonkeeper on iOS and Android.

Explore the guide and start building →
Repost qilingan:
TonTech avatar
TonTech
25.03.202511:35
🔨 TON Connect SDK Update

We're excited to announce a new release of the TON Connect SDK with significant enhancements for dApp developers.

We kindly request all dapp developers to update to the latest version to ensure optimal performance and user experience.

👥 @tonconnect/{sdk,ui,ui-react}
• New wallet feature requirements API
• Extra currencies in transactions
• React 19 compatibility

📁 New package versions
• @tonconnect/protocol 2.2.7
• @tonconnect/sdk 3.1.0
• @tonconnect/ui 2.1.0
• @tonconnect/ui-react 2.1.0

⬇️ To update, run npm install @tonconnect/ui-react@latest or npm install @tonconnect/ui@latest

💡 To learn more, visit the GitHub page at https://github.com/ton-connect/sdk.

💬 Encountered issues? Please report them on GitHub at https://github.com/ton-connect/sdk/issues.

⭐️ Special thanks to the Tonkeeper team for their contribution to this release!

🎁 Your feedback and usage examples are crucial. Share your experiences to help us evolve the SDK!
Repost qilingan:
Toncenter API avatar
Toncenter API
31.03.202517:46
Toncenter API supported hash of a normalized external message

API V3 (Index):

- hash_norm field added to the Message structure. If the field is not present, it means this message not an external message, or the normalized hash_norm is equal to the regular hash.

- All methods with msg_hash parameter search also by normalized hash.

API V2:

- api/v2/sendBocReturnHash returns the normalized hash in addition to the normal hash.
🎉 Tact v1.6.5 is released!

Back with another round of refinements! While we're working on many exciting things in the background, we're committed to fixing every bug that the community might discover so that Tact can provide a flawless developer experience.

Furthermore, we now actively employ AI and large language model (LLM) fuzzing techniques, such as documentation-driven approaches where LLMs are given only the Tact language documentation and access to the compiler. Then, LLM agents generate potentially problematic code snippets, compile them, and analyze results. They further iterate and provide new, interesting bug reports — resolving those makes both Tact compiler and Tact documentation better at the same time!

Check out this awesome article from one of the team members to learn more: Documentation-Driven Compiler Fuzzing with Large Language Models.

And now, let's see what's new in Tact v1.6.5, starting with the most prominent part of this patch release:

🛠 Bug fixes

• Ternary operator ?: now correctly works with structs and null values
• New parser now properly handles the code that wasn't completed at the end of the file
• The error for assembly functions and the get attribute is now correctly shown
• Now, when you call the dump() function with an argument of the unsupported StringBuilder type, the error will always be shown even if the debug mode is disabled
• Improper whitespace between the operator and the equals sign is no longer allowed
• The &&= and ||= augmented assignment operators are now properly short-circuited
• Get methods now can return an optional contract state
• The Struct.fromSlice(), Message.fromSlice(), and similar functions now work properly if the slice has been parsed entirely and the last field of the struct had the serialization annotation as remaining
• The wildcard symbol _ is prohibited for struct and message struct fields, function names, contract, and trait names
• The contract's state is now properly saved on early return statements in the receiver functions

🧳 Miscellaneous improvements

• Whenever you access context().sender, it now calls the sender() function instead to optimize the gas usage
• The internalExternalReceiversOutsideMethodsMap option and its respective receiver order optimization were reworked to ensure compatibility with explorers and user wallets
• The SendPayGasSeparately constant was deprecated in favor of SendPayFwdFeesSeparately — they're functionally identical, but the latter better expresses the intent and action that this optional flag makes when sending messages
• The Stoppable trait now throws the exit code 133 instead of the exit code generated by the require() function from the "Contract stopped" message

📜 See the full release notes for Tact v1.6.5
📥 And upgrade Tact in your projects

LLMs are great, but we value our community no less. It's great being around a bunch of talented, passionate, and bright engineers who make a future of safe and scalable ⚡️ Tact smart contracts on TON possible for everyone. Thank you for everything you do and for the feedback you give!

A special shoutout goes to the RSquad team @rsquadlife for their early adoption of Tact features, thoughtful suggestions, and bug reports. If punk were code, they'd be its maintainers 🤘

🍲 ghibli deez bugs
♨️ @tact_kitchen from the @ton_studio
Repost qilingan:
TL
TOLK lang
20.03.202509:20
🫧 Tolk v0.10: preparing for serialization — intN, bytesN, coins

This update lays the foundation of future auto-packing to/from cells by solving one critical question:
How should fields be serialized?

✅ Notable changes in Tolk v0.10:

1. Fixed-size integer types: int32, uint64, etc.
2. Type coins and function ton("0.05")
3. Types bytesN and bitsN (backed by slices at TVM)
4. Replace "..."c postfixes with stringCrc32("...") functions
5. Trailing comma support

PR on GitHub with detailed info.

❓ Fixed-size integers? In TVM? What?

Imagine Tolk already has structures, and we define an incoming message:


A client sends this message following the TL/B schema:

counterIncrement
counter_id:int32
inc_by:int64
= CounterIncrement;


But how do we tell the compiler that counter_id is int32 and inc_by is int64? This information is missing in the struct definition.

✖ Rejected approaches: why they fail

Several syntax ideas were considered:



Each of these quickly breaks down when handling more complex cases.

For example, how would we handle TL-B Maybe int32? Would we write:


And what about TL/B Both (Maybe int32) int64?


With every new case, the syntax becomes more complex, ambiguous, and error-prone.

✔ The solution: `int32` as a first-class type



No annotations. No confusing as syntax. No ambiguity.

This scales perfectly:


These are distinct types. A variable can be int32 and similar:


This makes serialization predictable, structured, and error-free.

✔ What about overflow?

A reasonable question: what happens if a value exceeds the limit?


Answer: no runtime overflow or clamping! It's just int at TVM.

* arithmetic works normally – v becomes 256
* no extra gas cost – no runtime bounds checks
* overflow will only happen at serialization



✔ Why is this the best approach?

Think of smart contracts as a black box:
- inputs are encoded (int32, uint64, etc.)
- inside the contract, arithmetic uses full 257-bit precision
- outputs are serialized again — overflow happens only at this stage

This is similar to how mulDivFloor(x,y,z) uses 513-bit precision internally. Your contract keeps precision internally and only enforces constraints at the border with an outside world.

🌳 Tolk will follow a type-based philosophy

This post covered the foundation of automatic serialization. The right way is to have a rich type system. Having nested types, having generics, having aliases — will allow to describe every practical TL/B case, but at a language level.

In v0.10, we introduce intN (fixed integers), bytesN (definite slices), coins (variadic integers), and some more additions. Read the details in the PR.

How will Either L R and even more complex TL/B structures be expressed?
Stay tuned for the next update...
🎉 Welcome Challenge: A Tact Developers Competition!

DivaTech is launching TON Contests — a platform for hosting competitions for TON smart contract developers.

To celebrate the launch, we’re kicking off our first contest — Welcome Challenge with a $1000 prize pool!

You’ll face 5 easy-to-medium-level tasks in Tact smart contract development, with 6 hours to solve them.

📅 When: April 13, 3:00 PM – 9:00 PM (GMT+3)
🌍 Where: Online at toncontests.com

🏆 Prizes:
🥇 Top 5: $100 each
🥈 Next10: $35 each
🥉 Next 15: $10 each

Registration for the Welcome Challenge is now open
Repost qilingan:
Ton Console avatar
Ton Console
31.03.202517:46
Tracking Transactions on TON Just Got Easier! 🎉

Tracking external transactions (external-in) on the TON blockchain was challenging for all of us due to minor metadata differences.

Now TonAPI solves this with the normalized hash. With this method, tracking transactions is simple and reliable.

We've prepared clear examples to get you started:
- Tracking transactions from TonConnect for dApps
- Tracking manually constructed external messages

See code examples →

We’re excited to share this improvement, and soon more ecosystem tools will support it too!
Repost qilingan:
📀 TON Data Hub avatar
📀 TON Data Hub
21.03.202511:38
Build a Dashboard for DeDust
——————> Win up to $3000

Welcome to our first data contest where we reward for making TON data more transparent.

Build a Dune dashboard for DeDust and win:
🥇 1st place: $3000
🥈 2nd place: $2000
🥉 3rd place: $1000


📅 Deadline: Mar, 24

Read more:
👉 [ Rules & Guidelines ] 👈
(bonus task for onchain detectives inside)

Got questions? Ask in our chat: @tondatachat
Ko'proq funksiyalarni ochish uchun tizimga kiring.