๐ 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
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
โก7๐ฅ5๐4โคโ๐ฅ3
Forwarded from TON Contests
Media is too big
VIEW IN TELEGRAM
๐ง 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!๐ ๐ฅ
Join the ultimate smart contract challenge powered by Tact, organized by TON Studio & Codeforces
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.
- 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.
- Top participants will be invited for job interviews at TON Studio.
๐ Deadline: April 28, 12:00 (UTC+3)
Registration:
Registration guide:
Community & Support:
Good luck and may your contracts be efficient and bug-free!
Please open Telegram to view this post
VIEW IN TELEGRAM
โก8๐ฅ5๐3๐คฉ3๐ฟ2๐1
This media is not supported in your browser
VIEW IN TELEGRAM
๐ 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
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
โข Added the SignedBundle struct and the corresponding verifySignature method.
โข Added
โข Optimized the
๐ 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
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
โข The "gas best practices" page got updated with new recommendations, such as specialized math functions or the
โข Lots of examples fixed, with more fixes to arrive as we speak.
๐งณ Formatter!
You can run it via
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
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
๐ฅ15โค11๐7๐5โก2๐1
All tasks are now live.
The GitHub repo with setup, templates, and participation guide is here:
Dive in, build, and push your skills to the limit
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
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โฆ
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โฆ
๐ฅ9๐4โค1
For you all, JetBrains IDEs lovers: intelli-tact plugin release ๐ธ
๐ฒ got IDEA?
โจ๏ธ @tact_kitchen from the @ton_studio
๐ฒ got IDEA?
โจ๏ธ @tact_kitchen from the @ton_studio
Please open Telegram to view this post
VIEW IN TELEGRAM
๐ฅ18๐15โค2
Forwarded from TOLK lang
๐ซง Tolk v0.12: structures, generics, and methods
Finally! Or maybe not yet?
This update brings Tolk one step closer to its final form by introducing:
โ Notable changes in Tolk v0.12:
1. Structures
2. Generics
3. Methods
4. Stdlib with short naming
5. Fift output enhancements
PR on GitHub with detailed info.
โ Structures
Looks like TypeScript โ but works in TVM!
Key features:
- Compiler guesses what you mean โ automatically:
- Works with shorthand syntax
- Default values for fields are supported
- Nested objects are supported
- No overhead for single-field structs over a plain value
- Nullability, smart casts, union types, all language features โ everything works
โ Generics
They exist only at the type level (no runtime cost):
The type system becomes powerful enough to express complex scenarios:
โ Methods โ for any types
For structures:
Or extend built-in types:
Or โ tensors, unions, generics, even "any receiver". A method is just an extension function with predictable resolution rules.
โ stdlib โ with short methods naming
Even more โ some global functions are now static methods:
It looks pretty, and since IDE suggest only available methods after dot, it's extremely useful. For a full list of renamings, consider documentation.
โ A long-awaited bonus for Fift ninja
Look at the PR and enjoy how readable Fift assembler output is. Yes, it contains original .tolk lines as comments! And yes, it works perfectly.
๐ณ You now see how Tolk's features are aligning together towards automatic serialization, fully described by the type system. Cell references, constructor prefixes, message sending, and other use cases will be expressed with the features above.
Finally! Or maybe not yet?
This update brings Tolk one step closer to its final form by introducing:
โ Notable changes in Tolk v0.12:
1. Structures
2. Generics
3. Methods
4. Stdlib with short naming
5. Fift output enhancements
PR on GitHub with detailed info.
โ Structures
Looks like TypeScript โ but works in TVM!
struct Point {
x: int;
y: int;
}
fun calcMaxCoord(p: Point) {
return p.x > p.y ? p.x : p.y;
}
// declared like a JS object
var p: Point = { x: 10, y: 20 };
// called like a JS object
calcMaxCoord({ x: 10, y: 20 });
Point a just named tensor โ identical to (int, int) at the TVM level.Key features:
- Compiler guesses what you mean โ automatically:
fun loadData(): StoredInfo {
return {
counterValue: ...,
ownerAddress: ...,
}
}
- Works with shorthand syntax
{ x, y }- Default values for fields are supported
- Nested objects are supported
- No overhead for single-field structs over a plain value
- Nullability, smart casts, union types, all language features โ everything works
โ Generics
They exist only at the type level (no runtime cost):
struct Nullable<T> {
item: T? = null;
}
The type system becomes powerful enough to express complex scenarios:
struct Ok<TResult> { result: TResult }
struct Err<TError> { err: TError }
type Response<R, E> = Ok<R> | Err<E>;
match (r) {
Ok => { r.result }
Err => { r.err }
}
โ Methods โ for any types
For structures:
fun Point.getX(self) {
return self.x
}
fun Point.create(x: int, y: int): Point {
return { x, y }
}
Or extend built-in types:
fun slice.load32(mutate self): int32 {
return self.loadInt(32);
}
Or โ tensors, unions, generics, even "any receiver". A method is just an extension function with predictable resolution rules.
โ stdlib โ with short methods naming
// before
someCell.cellHash();
someTuple.tupleSize();
someBuilder.getBuilderBitsCount();
// now
someCell.hash();
someTuple.size();
someBuilder.bitsCount();
Even more โ some global functions are now static methods:
// before
getMyAddress();
setContractData(c);
getLogicalTime();
// now
contract.getAddress();
contract.setData(c);
blockchain.logicalTime();
It looks pretty, and since IDE suggest only available methods after dot, it's extremely useful. For a full list of renamings, consider documentation.
โ A long-awaited bonus for Fift ninja
Look at the PR and enjoy how readable Fift assembler output is. Yes, it contains original .tolk lines as comments! And yes, it works perfectly.
๐ณ You now see how Tolk's features are aligning together towards automatic serialization, fully described by the type system. Cell references, constructor prefixes, message sending, and other use cases will be expressed with the features above.
๐29๐ฅ13โคโ๐ฅ8โค5๐ฅฐ3
Forwarded from TOLK lang
๐ซง Tolk v0.13 (Release candidate): Auto-packing to/from cells
We've finally reached the point we've been working toward for the past six months: automatic (de)serialization of anything into cells. From simple structs to unions, generics, and even nested references โ it just works.
The goal? To replace TL/B entirely with declarative, type-safe definitions. The compiler takes care of packing, loading, estimating, error handling, and more.
โ Notable changes in Tolk v0.13:
1. Auto-packing to/from cells/slices/builders
2. Type
3. Lateinit variables, default parameters, and other minor features
PR on GitHub with detailed info.
โ Auto-serialization: short demo
Key features:
* supports all types: unions, tensors, nullables, generics, atomics, ...
* allows to specify prefixes (particularly, opcodes)
* allows to manage cell references and when to load them
* lets you control error codes and other behavior
* unpacks data from a cell or a slice, mutate it or not
* packs data to a cell or a builder
* warns if data potentially exceeds 1023 bits
* more efficient than manual serialization
* will seamlessly integrate with message sending/receiving in Tolk v1.0
โ Pack or unpack โ anywhere
โ Serialization prefixes and opcodes
They are not limited to 32 bits โ you can describe any TL/B constructors:
โ Typed cells
Typed cells give you full control over when content is unpacked โ nothing is loaded unless you call .load() manually:
// Yes,
โ Granular options
Accurately adjust serialization behaviour (for example, error codes):
โ Built-in type `address`
* integrated with auto-serialization, while still a slice under the hood
* comparable:
* introspectable: isInternal(), getWorkchain(), etc.
โ Some other features
Described in detail in the full changelog and mirrored in the documentation.
๐ณ We're just a couple of steps away from Tolk v1.0 โ with message sending and handling, gas optimizations, and one secret feature. There is still a lot of work ahead, but today we're closer to the release than ever before.
We've finally reached the point we've been working toward for the past six months: automatic (de)serialization of anything into cells. From simple structs to unions, generics, and even nested references โ it just works.
The goal? To replace TL/B entirely with declarative, type-safe definitions. The compiler takes care of packing, loading, estimating, error handling, and more.
โ Notable changes in Tolk v0.13:
1. Auto-packing to/from cells/slices/builders
2. Type
address3. Lateinit variables, default parameters, and other minor features
PR on GitHub with detailed info.
โ Auto-serialization: short demo
struct Point {
x: int8;
y: int8;
}
var value: Point = { x: 10, y: 20 };
// makes a cell containing "0A14"
var c = value.toCell();
// back to { x: 10, y: 20 }
var p = Point.fromCell(c);
Key features:
* supports all types: unions, tensors, nullables, generics, atomics, ...
* allows to specify prefixes (particularly, opcodes)
* allows to manage cell references and when to load them
* lets you control error codes and other behavior
* unpacks data from a cell or a slice, mutate it or not
* packs data to a cell or a builder
* warns if data potentially exceeds 1023 bits
* more efficient than manual serialization
* will seamlessly integrate with message sending/receiving in Tolk v1.0
โ Pack or unpack โ anywhere
T.fromCell, T.fromSlice, slice.loadAny<T>, builder.storeAny<T>, and other methods give both high-level and low-level API.
// low-level is allowed:
beginCell()
.storeUint(1, 32) // mix manual
.storeAny(myStruct) // with auto
โ Serialization prefixes and opcodes
struct (0x7362d09c) TransferNotification {
queryId: uint64;
...
}
They are not limited to 32 bits โ you can describe any TL/B constructors:
struct (0b001) AssetSimple { ... }
struct (0b100) AssetBooking { ... }
type Asset = AssetSimple | AssetBooking | ...;
โ Typed cells
struct A {
ref1: cell; // untyped ref
ref2: Cell<Inner>; // typed ref
ref3: Cell<int256>?; // maybe ref
}
Typed cells give you full control over when content is unpacked โ nothing is loaded unless you call .load() manually:
a.ref2.field // error
a.ref2.load().field // ok
// Yes,
point.toCell() really gives you Cell<Point>โ Granular options
Accurately adjust serialization behaviour (for example, error codes):
Point.fromSlice(s, {
assertEndAfterReading: false
})
โ Built-in type `address`
struct Wallet {
owner: address;
}
* integrated with auto-serialization, while still a slice under the hood
* comparable:
if (senderAddress == wallet.owner)* introspectable: isInternal(), getWorkchain(), etc.
โ Some other features
Described in detail in the full changelog and mirrored in the documentation.
๐ณ We're just a couple of steps away from Tolk v1.0 โ with message sending and handling, gas optimizations, and one secret feature. There is still a lot of work ahead, but today we're closer to the release than ever before.
โค9๐ฅ6๐ฅฐ3๐1
๐ Tact Language Server & VS Code Extension v0.8.0 are live!
Smarter code insight, TL-B support, fresh UI touches and a faster, quieter indexer โ all wrapped into v0.8.0 release!
๐ Headline features
Flexible toolchain picker โ point the extension at any local Tact toolchain and switch them on the fly.
TL-B first-class citizen โ syntax highlighting, completions, document symbols, go-to-references and inline highlighting inside Tact comments.
Next level navigation โ search for functions by type, easily navigate with code lenses with go-to places where messages were sent and received
Fresh inspections โ
๐ And that's not all ๐, check out our changelog to find all the improvements and fixes in the new release!
Also check out X/Twitter thread with announcement.
๐ฅ Upgrade now
Via VS Code marketplace
or Open VSX
Happy hacking! ๐ ๏ธโจ
๐ฒ intelli-tact, you're next
โจ๏ธ @tact_kitchen from the @ton_studio
Smarter code insight, TL-B support, fresh UI touches and a faster, quieter indexer โ all wrapped into v0.8.0 release!
๐ Headline features
Flexible toolchain picker โ point the extension at any local Tact toolchain and switch them on the fly.
TL-B first-class citizen โ syntax highlighting, completions, document symbols, go-to-references and inline highlighting inside Tact comments.
Next level navigation โ search for functions by type, easily navigate with code lenses with go-to places where messages were sent and received
Fresh inspections โ
CanBeInline (with quickfix), DeprecatedSymbolUsage, MissedMembersInContract (with quickfix), NamingConvention, OptimalMathFunctions.๐ And that's not all ๐, check out our changelog to find all the improvements and fixes in the new release!
Also check out X/Twitter thread with announcement.
๐ฅ Upgrade now
Via VS Code marketplace
or Open VSX
Happy hacking! ๐ ๏ธโจ
๐ฒ intelli-tact, you're next
โจ๏ธ @tact_kitchen from the @ton_studio
๐ฅ9๐7โค6๐4โก1
Forwarded from TOLK lang
๐ซง Tolk v0.99: universal message composition
This update introduces a high-level, type-safe way to compose and send messages to other contracts.
No more manual beginCell().storeUint(...).storeRef(...) boilerplate. Just describe the message in a literal, and let the compiler do the rest.
โ Notable changes in Tolk v0.99:
1. Universal
2. Universal
3. Sharding โ calculate addresses "close to another contract"
PR on GitHub with detailed info.
โ createMessage: short demo
Key features:
1. Supports extra currencies
2. Supports
3. Supports different workchains
4. Supports sharding (formerly splitDepth)
5. Integrated with auto-serialization of
6. Automatically detects "body ref or not"
โ Union types as the foundation
Almost every field is a union โ flexible API while staying strictly typed:
โ Body: inline or ref?
Don't think about refs โ the compiler does:
- small structs are inlined
- large ones are wrapped in a ref
- detected at compile-time โ no runtime checks
Don't need body? Just leave it out.
โ Deployment: a variant of "destination"
The beauty of TON is that it doesn't have a dedicated deployment mechanism. You just send a message to some void โ and if this void doesn't exist, but you've attached a way to initialize it โ it's initialized immediately, and accepts your message.
โ Sharding!
Built-in features to calculate an address "in the shard of contract B."
Perfect for optimized sharded jettons. All the hashing, StateInit packing, and bit-level work is done automatically.
โ๏ธ What about gas costs?
Even with all this flexibility,
โ v0.99? So, what's next?
Yes, it's the last version before the final release. Tolk now covers the entire initial roadmap and is ready for real-world use. On top of that, we'll add several compiler optimizations and rewrite standard contracts from FunC to Tolk โ to demonstrate how exactly everything ties together.
This update introduces a high-level, type-safe way to compose and send messages to other contracts.
No more manual beginCell().storeUint(...).storeRef(...) boilerplate. Just describe the message in a literal, and let the compiler do the rest.
โ Notable changes in Tolk v0.99:
1. Universal
createMessage โ control body, extra currency, stateInit, and more2. Universal
createExternalLogMessage โ emit logs efficiently3. Sharding โ calculate addresses "close to another contract"
PR on GitHub with detailed info.
โ createMessage: short demo
val reply = createMessage({
bounce: false,
value: ton("0.05"),
dest: senderAddress,
body: RequestedInfo { ... }
});
reply.send(SEND_MODE_REGULAR);
Key features:
1. Supports extra currencies
2. Supports
stateInit with automatic address computation3. Supports different workchains
4. Supports sharding (formerly splitDepth)
5. Integrated with auto-serialization of
body6. Automatically detects "body ref or not"
โ Union types as the foundation
Almost every field is a union โ flexible API while staying strictly typed:
// value: either tons, or tons + extra currencies
value: ton("1.5")
value: (ton("1.5"), extraDict)
// destination: various forms
dest: someAddress
dest: (workchain, hash)
โ Body: inline or ref?
Don't think about refs โ the compiler does:
- small structs are inlined
- large ones are wrapped in a ref
- detected at compile-time โ no runtime checks
// any serializable struct โ no toCell!
body: RequestedInfo { ... }
Don't need body? Just leave it out.
โ Deployment: a variant of "destination"
dest: {
workchain: BASECHAIN,
stateInit: { code, data },
}
The beauty of TON is that it doesn't have a dedicated deployment mechanism. You just send a message to some void โ and if this void doesn't exist, but you've attached a way to initialize it โ it's initialized immediately, and accepts your message.
โ Sharding!
Built-in features to calculate an address "in the shard of contract B."
dest: {
...
toShard: {
fixedPrefixLength: 8,
closeTo: ownerAddress,
}
}
Perfect for optimized sharded jettons. All the hashing, StateInit packing, and bit-level work is done automatically.
โ๏ธ What about gas costs?
Even with all this flexibility,
createMessage is not bloated. The compiler unfolds all union branches and constant conditions at compile time, producing flat, minimal code โ often more optimal than hand-crafted cell composition.โ v0.99? So, what's next?
Yes, it's the last version before the final release. Tolk now covers the entire initial roadmap and is ready for real-world use. On top of that, we'll add several compiler optimizations and rewrite standard contracts from FunC to Tolk โ to demonstrate how exactly everything ties together.
๐16โค7๐ฅ3โก2๐ฅฐ1๐ฏ1๐จโ๐ป1
Forwarded from TON Tech
๐จ Dev Tools Updates
Fresh updates are out for TON development tools! These releases bring enhanced reliability, a smoother developer experience, and stronger tooling performance. Make sure to upgrade and enjoy the latest improvements!
๐ @ton/blueprint v0.36.0 โ 2025-06-16
๐ @ton/sandbox v0.33.0 โ 2025-06-16
๐ @ton/test-utils v0.8.0 โ 2025-06-16
๐ฅ Noticeable changes
โข New Jest matcher: toThrowExitCode for validating exitCode in tests.
โข New Chai assertion: throwExitCode for similar exit code validation.
โข ExitCode enum: Introduced for standardizing exit codes
โข Added fetchConfig and setGlobalVersion utility functions
โข Added blockchain.randomSeed property to update random seed in transactions or get methods
โข Added support for updating blockchain config via loadConfig and updateConfig functions
โข Blockchain.now not updating in blockchain.sendMessageIter is resolved
โข Immutability fix: Blockchain.snapshot now returns copy, not reference
โข Switched to Dirent.parentPath from deprecated .path
โข Network Provider Enhancements. Added getConfig, getContractState and waitForLastTransaction methods
โข Added utility getNormalizedExtMessageHash functions
โฌ To update, run npm install @ton/blueprint@latest @ton/sandbox@latest @ton/test-utils@latest.
๐ก To learn more, visit GitHub pages: https://github.com/ton-org/blueprint, https://github.com/ton-org/sandbox and https://github.com/ton-org/test-utils.
๐ฌ Encountered issues? Please report them on GitHub at https://github.com/ton-org/blueprint/issues.
๐ Your feedback and usage examples are crucial. Share your experiences to help us evolve the SDK!
Fresh updates are out for TON development tools! These releases bring enhanced reliability, a smoother developer experience, and stronger tooling performance. Make sure to upgrade and enjoy the latest improvements!
โข New Jest matcher: toThrowExitCode for validating exitCode in tests.
โข New Chai assertion: throwExitCode for similar exit code validation.
โข ExitCode enum: Introduced for standardizing exit codes
โข Added fetchConfig and setGlobalVersion utility functions
โข Added blockchain.randomSeed property to update random seed in transactions or get methods
โข Added support for updating blockchain config via loadConfig and updateConfig functions
โข Blockchain.now not updating in blockchain.sendMessageIter is resolved
โข Immutability fix: Blockchain.snapshot now returns copy, not reference
โข Switched to Dirent.parentPath from deprecated .path
โข Network Provider Enhancements. Added getConfig, getContractState and waitForLastTransaction methods
โข Added utility getNormalizedExtMessageHash functions
Please open Telegram to view this post
VIEW IN TELEGRAM
๐4โค1
What Infrastructure do you need to ship faster on TON?
Weโre gathering feedback from the community about whatโs missing, whatโs needed, and what could unlock more building in the TON ecosystem! Fill out the short form:
https://forms.gle/9MMMXDxWha1R6qxN6
Please, take this survey seriously: your input will shape TON Foundation infrastructure strategy priorities for this year.
Please open Telegram to view this post
VIEW IN TELEGRAM
๐6๐คฃ2๐1
Forwarded from Tonkeeper News
This media is not supported in your browser
VIEW IN TELEGRAM
๐ปBuild with TONAPI โ YouTube Contest
Weโre inviting developers to create technical YouTube content that demonstrates how TONAPI, our powerful SaaS tools for building dApps, integrating smart contracts, and crafting custom blockchain solutions, enables real-world use cases.
TONAPI service allows developers to build decentralized applications on top of the TON blockchain without having to deal with the complexity of the underlying technology. Over 80% of projects in the TON ecosystem use TONAPI.
Submissions can include:
- Live coding or walkthroughs
- Deep-dive tutorials
- Project demos
- Comparisons with other tooling
๐ Top 5 videos will be selected. Total prize pool of 5,000 USDT (Bitrefill Gift Card).
Winning entries will also receive visibility on Tonkeeper social channels, TONAPI discount codes, potential dApp Browser integrations, and invitations to our exclusive mentorship program.
๐ Submit by emailing contest@tonkeeper.com with subject โTONAPI Contestโ
๐ Deadline: July 18
Submission guidelines
Weโre inviting developers to create technical YouTube content that demonstrates how TONAPI, our powerful SaaS tools for building dApps, integrating smart contracts, and crafting custom blockchain solutions, enables real-world use cases.
TONAPI service allows developers to build decentralized applications on top of the TON blockchain without having to deal with the complexity of the underlying technology. Over 80% of projects in the TON ecosystem use TONAPI.
Submissions can include:
- Live coding or walkthroughs
- Deep-dive tutorials
- Project demos
- Comparisons with other tooling
Winning entries will also receive visibility on Tonkeeper social channels, TONAPI discount codes, potential dApp Browser integrations, and invitations to our exclusive mentorship program.
๐ Submit by emailing contest@tonkeeper.com with subject โTONAPI Contestโ
๐ Deadline: July 18
Submission guidelines
Please open Telegram to view this post
VIEW IN TELEGRAM
๐15โค8๐1๐ฅ1๐1
๐ฃ TON Developers โ we need your feedback!
Help us shape the future of TON development. Weโve prepared a detailed survey to understand your experience with:
๐ง Smart contract languages (Tact, Func, Tolk)
๐ Documentation and education
๐ SDKs, IDEs, and tools
๐ค Telegram Mini Apps
๐ฌ Developer support and pain points
๐ As a thank you, weโll issue an SBT (Soulbound Token) to your wallet as proof of contribution to the ecosystem.
๐ Take the survey here:
https://docs.google.com/forms/d/e/1FAIpQLSfDm85Z7YxDw96nMeV9T-b2kmd2qAe8xt0_iag8ZqrgqKuCRw/viewform
๐ Takes 5 minutes. Every voice matters.
Letโs build a better TON together.
Help us shape the future of TON development. Weโve prepared a detailed survey to understand your experience with:
๐ง Smart contract languages (Tact, Func, Tolk)
๐ Documentation and education
๐ SDKs, IDEs, and tools
๐ค Telegram Mini Apps
๐ฌ Developer support and pain points
๐ As a thank you, weโll issue an SBT (Soulbound Token) to your wallet as proof of contribution to the ecosystem.
๐ Take the survey here:
https://docs.google.com/forms/d/e/1FAIpQLSfDm85Z7YxDw96nMeV9T-b2kmd2qAe8xt0_iag8ZqrgqKuCRw/viewform
๐ Takes 5 minutes. Every voice matters.
Letโs build a better TON together.
๐ฅ10โค6๐2๐1๐ฅฐ1
Forwarded from Tonutils News
โ ๏ธ If you are still using tonutils-go version below 1.13, you should update ASAP, because after mainnet update
This method is also used during wallet interraction and sending transactions.
GetAccount method becomes incompatible due to changes in blockchain account schema, so your service may stop working. This method is also used during wallet interraction and sending transactions.
๐3
Forwarded from gobicycle
https://github.com/gobicycle/bicycle/releases/tag/v0.10.1
Important update!
Changes will soon be applied to the Mainnet that will disrupt some services (including Bicycle). A new version v0.10.1 has been released to support these changes. To maintain the functionality of bicycle, it is recommended to update as soon as possible.
Important update!
Changes will soon be applied to the Mainnet that will disrupt some services (including Bicycle). A new version v0.10.1 has been released to support these changes. To maintain the functionality of bicycle, it is recommended to update as soon as possible.
โค7๐2
Forwarded from BotNews
Bot API 9.1
โ๏ธ Checklists
โข Introduced support for native checklists.
โข Out of the box, business bots can create and edit checklists.
โข Bots can now receive checklists and detect progress via service messages.
๐ Gifts, Stars and More
โข Improved gifts with details on their last sale and transfer cooldown.
โข Bots can now easily check their Telegram Star balance.
โข Mini Apps can now hide the on-screen keyboard.
โข Unlocked more poll options, allowing up to 12.
โข And more, see the full changelog for details:
https://torg.tg-me.sbs/bots/api-changelog#july-3-2025
โข Introduced support for native checklists.
โข Out of the box, business bots can create and edit checklists.
โข Bots can now receive checklists and detect progress via service messages.
โข Improved gifts with details on their last sale and transfer cooldown.
โข Bots can now easily check their Telegram Star balance.
โข Mini Apps can now hide the on-screen keyboard.
โข Unlocked more poll options, allowing up to 12.
โข And more, see the full changelog for details:
https://torg.tg-me.sbs/bots/api-changelog#july-3-2025
Please open Telegram to view this post
VIEW IN TELEGRAM
๐1๐ฅ1
Forwarded from TOLK lang
๐ซง Tolk v1.0: lazy loading, partial updating, AST inlining โ and extremely low gas fees
This is happening today.
I managed not only to finish up the compiler, but also to migrate standard contracts from FunC to Tolk.
I covered every contract with gas metrics to check whether it's more efficient than FunC or not. I didn't believe my eyes. I double-checked, triple-checked, but nothing changed. The results are correct. And now I am ready to present them to you.
๐งช Benchmarks!
Every contract has several metrics. For example, "basic jetton โ mint".
FunC: 19278. Tolk: 11611.
Gas savings: -39.77%
|โโโโโโโโโโโโโโโโโ-
| 01 โ Jetton (mint, transfer, burn, discover)
| -39.77% | -30.32% | -33.66% | -26.75%
|โโโโโโโโโโโโโโโโโ-
| 02 โ NFT (deploy, transfer, onchain get)
| -43.79% | -37.47% | -44.28%
|โโโโโโโโโโโโโโโโโ-
| 03 โ Notcoin
| -35.72% | -27.98% | ...
|โโโโโโโโโโโโโโโโโ-
| 04 โ tgBTC
| -23.94% | -26.99% | ...
|โโโโโโโโโโโโโโโโโ-
| 05 โ Wallet v5
| -21.66% | -22.92% | ...
|โโโโโโโโโโโโโโโโโ-
| 06 โ Vesting
| -45.30% | -29.61% | ...
|โโโโโโโโโโโโโโโโโ-
| 07 โ Telegram gifts
| -54.81% | -39.39% | ...
|โโโโโโโโโโโโโโโโโ-
I have migrated 7 contracts โ preserving the original behavior and passing the same tests.
All benchmarks are open. No cheating. Just a smart compiler โ and a language designed to be optimized.
โ Even wallet?! But it's very low-level and tricky!
Even wallet. You just express your thoughts without any tricks โ and it works automatically.
โ But how? How is it possible to achieve such numbers?
Of course, I've put a lot of smartness into the compiler. A strong type system. Automatic inlining. Built-in serialization. The magic
But first of all, Tolk is built for readability. These contracts aren't "just cleaner" than their FunC equivalents โ they're elegant. No magic. No low-level intrigues. Just clean, consistent logic โ whether it's a Jetton or a Wallet.
And gas savings? They are a consequence. I didn't micro-optimize. Each contract was rewritten in about a day โ just focusing on clarity. The core principle is simple: once you make it elegant, it automatically becomes efficient.
โ Notable changes in Tolk v1.0:
1. Lazy loading โ only read what you actually use
2. AST-based inlining โ zero-cost getters and methods
3. Peephole optimizations, TVM-11 โ smaller code, lower gas
PR on GitHub with detailed info.
Just take a look:
That's it. Lazy loading and partial updates (calculating immutable slices for writing) โ one magic
โ๏ธ The Release. What's inside
- JetBrains IDE plugin โ with completion, resolving, etc... โ done
- VS Code Extension โ with suggestions, stdlib integration, etc... โ done
- Language server โ for any LSP-compatible editor... โ done
- FunC-to-Tolk converter โ migrate a project in 10 seconds... โ done
- Documentation โ for smooth transition from FunC... โ done
And the TOLK language itself โ exactly as I've visioned it... 7 months ago
๐ The essence of Numbers
At this moment, abstract yourself from the text. Take a look at the calendar.
Today is 07/07/25 (I mean 2+5, of course).
After the TON Gateway, throughout all November, I was laying out the roadmap towards Tolk v1.0. On December 1, I started working. It means, that the journey till now took exactly 7 months 7 days. If you scroll this channel to the top, you'll see an announcement... Of Tolk v0.7
๐ช What's next?
I could have written about my plans โ for the language, TVM, ABI, TypeScript wrappers... but I won't.
Because today, instead of rushing into the future, maybe we can allow ourselves to look back.
To pause the endless race โ just for a moment.
To notice how many beautiful coincidences pass us by โ unnoticed in our constant hurry.
Just step outside.
Close your eyes.
Count to seven.
Feel it.
When you're ready โ
Let's Tolk
This is happening today.
I managed not only to finish up the compiler, but also to migrate standard contracts from FunC to Tolk.
I covered every contract with gas metrics to check whether it's more efficient than FunC or not. I didn't believe my eyes. I double-checked, triple-checked, but nothing changed. The results are correct. And now I am ready to present them to you.
๐งช Benchmarks!
Every contract has several metrics. For example, "basic jetton โ mint".
FunC: 19278. Tolk: 11611.
Gas savings: -39.77%
|โโโโโโโโโโโโโโโโโ-
| 01 โ Jetton (mint, transfer, burn, discover)
| -39.77% | -30.32% | -33.66% | -26.75%
|โโโโโโโโโโโโโโโโโ-
| 02 โ NFT (deploy, transfer, onchain get)
| -43.79% | -37.47% | -44.28%
|โโโโโโโโโโโโโโโโโ-
| 03 โ Notcoin
| -35.72% | -27.98% | ...
|โโโโโโโโโโโโโโโโโ-
| 04 โ tgBTC
| -23.94% | -26.99% | ...
|โโโโโโโโโโโโโโโโโ-
| 05 โ Wallet v5
| -21.66% | -22.92% | ...
|โโโโโโโโโโโโโโโโโ-
| 06 โ Vesting
| -45.30% | -29.61% | ...
|โโโโโโโโโโโโโโโโโ-
| 07 โ Telegram gifts
| -54.81% | -39.39% | ...
|โโโโโโโโโโโโโโโโโ-
I have migrated 7 contracts โ preserving the original behavior and passing the same tests.
All benchmarks are open. No cheating. Just a smart compiler โ and a language designed to be optimized.
โ Even wallet?! But it's very low-level and tricky!
Even wallet. You just express your thoughts without any tricks โ and it works automatically.
โ But how? How is it possible to achieve such numbers?
Of course, I've put a lot of smartness into the compiler. A strong type system. Automatic inlining. Built-in serialization. The magic
lazy keyword.But first of all, Tolk is built for readability. These contracts aren't "just cleaner" than their FunC equivalents โ they're elegant. No magic. No low-level intrigues. Just clean, consistent logic โ whether it's a Jetton or a Wallet.
And gas savings? They are a consequence. I didn't micro-optimize. Each contract was rewritten in about a day โ just focusing on clarity. The core principle is simple: once you make it elegant, it automatically becomes efficient.
โ Notable changes in Tolk v1.0:
1. Lazy loading โ only read what you actually use
2. AST-based inlining โ zero-cost getters and methods
3. Peephole optimizations, TVM-11 โ smaller code, lower gas
PR on GitHub with detailed info.
Just take a look:
val st = lazy Storage.load();
// the compiler skips everything and loads only what you access
return st.publicKey;
That's it. Lazy loading and partial updates (calculating immutable slices for writing) โ one magic
lazy keyword to rule them all.โ๏ธ The Release. What's inside
- JetBrains IDE plugin โ with completion, resolving, etc... โ done
- VS Code Extension โ with suggestions, stdlib integration, etc... โ done
- Language server โ for any LSP-compatible editor... โ done
- FunC-to-Tolk converter โ migrate a project in 10 seconds... โ done
- Documentation โ for smooth transition from FunC... โ done
And the TOLK language itself โ exactly as I've visioned it... 7 months ago
๐ The essence of Numbers
At this moment, abstract yourself from the text. Take a look at the calendar.
Today is 07/07/25 (I mean 2+5, of course).
After the TON Gateway, throughout all November, I was laying out the roadmap towards Tolk v1.0. On December 1, I started working. It means, that the journey till now took exactly 7 months 7 days. If you scroll this channel to the top, you'll see an announcement... Of Tolk v0.7
๐ช What's next?
I could have written about my plans โ for the language, TVM, ABI, TypeScript wrappers... but I won't.
Because today, instead of rushing into the future, maybe we can allow ourselves to look back.
To pause the endless race โ just for a moment.
To notice how many beautiful coincidences pass us by โ unnoticed in our constant hurry.
Just step outside.
Close your eyes.
Count to seven.
Feel it.
When you're ready โ
Let's Tolk
โค23๐ฅ9โคโ๐ฅ4๐2๐ฑ1
The Getgems team is launching its first public API โ now available in beta and free to use during this phase!
With this API, you can:
- Mint NFT collections programmatically
- Upload media directly to the TON blockchain and Getgems.io
- Integrate NFT minting into bots, tools, or other products
๐ Note: In this initial release, the API supports only NFTs created by the userโs own wallet. Access to global TON NFT data may be introduced in future versions.
If you're building with NFTs on TON, this is a great time to start experimenting and shaping the future with your feedback.
๐ Docs & full instructions:
Getgems API - GitHub
๐ฌ Feedback, bugs, or ideas? Join Getgems' dev chat:
@GetgemsTech
Please open Telegram to view this post
VIEW IN TELEGRAM
โค10๐8๐ฅ6๐4๐คฏ2๐1๐1
๐กHack THE TON โ the first wargame platform built on TON!
Ethereum has legendary wargames like Ethernaut and Damn Vulnerable DeFi โ tools that have onboarded thousands of developers into smart contract security.
TON had nothing like this. So the community built it.
๐ฎ How does it work?
Hack THE TON is a series of challenge levels, each represented by a smart contract written in Tact or Tolk.
Your goal is to hack the contract by triggering its hidden condition.
Use your knowledge of the TVM, analyze the logic, exploit vulnerabilities, and win!
๐ง Along the way, you'll learn to:
*๏ธโฃ Deepen your understanding of the TVM and TON architecture
*๏ธโฃ Read and understand Tact/Tolk contracts
*๏ธโฃ Analyze smart contract vulnerabilities in TON
*๏ธโฃ Write attack contracts and exploits
๐ Completing levels contributes to your profile and reputation in the ecosystem.
๐พ The first wave of levels is already live.
Join the core of TONโs hacker community โ and prove what you're capable of.
๐ Start now: https://www.hacktheton.com/
๐ฌ Join the chat: https://tg-me.sbs/hacktheton
๐ง New challenges are coming soon.
Ethereum has legendary wargames like Ethernaut and Damn Vulnerable DeFi โ tools that have onboarded thousands of developers into smart contract security.
TON had nothing like this. So the community built it.
๐ฎ How does it work?
Hack THE TON is a series of challenge levels, each represented by a smart contract written in Tact or Tolk.
Your goal is to hack the contract by triggering its hidden condition.
Use your knowledge of the TVM, analyze the logic, exploit vulnerabilities, and win!
๐ง Along the way, you'll learn to:
๐ Completing levels contributes to your profile and reputation in the ecosystem.
๐พ The first wave of levels is already live.
Join the core of TONโs hacker community โ and prove what you're capable of.
๐ Start now: https://www.hacktheton.com/
๐ฌ Join the chat: https://tg-me.sbs/hacktheton
๐ง New challenges are coming soon.
Please open Telegram to view this post
VIEW IN TELEGRAM
โค11๐1
Forwarded from TON Core
๐ Unified TON Extension for VS Code is here!
Following the single convenient JetBrains IDE plugin, we are now introducing a unified extension for TON development for VS Code that supports all necessary languages and technologies.
This is the first contribution from Petr, who recently joined the TON Core team to make life sweeter for TON developers.
๐ The extension provides advanced features for the main TON technologies: Tolk, FunC, TL-B, Fift Assembly, TASM, BoC, Blueprint! If you use the old extensions for Tolk or FunC, we recommend trying the new extension, as it offers better language support (we even support try/catch for FunC ๐).
๐ฅ Install now
- VS Code Marketplace
- Open VSX (if you use Cursor, Windsurf, etc.)
We thank the @tontech team for the FunC debugger which is now integrated into the extension, so you don't need to install a separate extension!
Happy hacking! ๐ ๏ธโจ
Following the single convenient JetBrains IDE plugin, we are now introducing a unified extension for TON development for VS Code that supports all necessary languages and technologies.
This is the first contribution from Petr, who recently joined the TON Core team to make life sweeter for TON developers.
๐ The extension provides advanced features for the main TON technologies: Tolk, FunC, TL-B, Fift Assembly, TASM, BoC, Blueprint! If you use the old extensions for Tolk or FunC, we recommend trying the new extension, as it offers better language support (we even support try/catch for FunC ๐).
๐ฅ Install now
- VS Code Marketplace
- Open VSX (if you use Cursor, Windsurf, etc.)
We thank the @tontech team for the FunC debugger which is now integrated into the extension, so you don't need to install a separate extension!
Happy hacking! ๐ ๏ธโจ
๐22โค6๐ฅ3๐1