We plan maintenance work today at 14:00 UTC for approximately less than an hour. The
tonconsole.com admin panel and analytics queries may be unavailable during this time. The functionality of the main API will not be affected.π16β€7π3π3
We apologize for the prolonged migration. The service has been restored.
π21β€6π6π1
Dear users,
Please note that on October 20, the liteserver error codes in the service at https://tonconsole.com/tonapi/liteservers will be updated.
Alongside the standard liteserver error codes (such as 651, -400, etc.), the service may return additional codes.
Specifically, error code 5556 will be REPLACED with 228 (rate limit exceeded) for consistency.
Proper handling of these error codes is crucial for maintaining stable operation of client applications.
To prevent rate limit errors, consider implementing a rate limiter on the client side, configured slightly below the plan's maximum threshold.
Please note that on October 20, the liteserver error codes in the service at https://tonconsole.com/tonapi/liteservers will be updated.
Alongside the standard liteserver error codes (such as 651, -400, etc.), the service may return additional codes.
Specifically, error code 5556 will be REPLACED with 228 (rate limit exceeded) for consistency.
Proper handling of these error codes is crucial for maintaining stable operation of client applications.
To prevent rate limit errors, consider implementing a rate limiter on the client side, configured slightly below the plan's maximum threshold.
β€49β20π18π₯5π’4πΎ3
Help us become better.
You probably use tonviewer.com, and you likely have ideas on how it could be improved or fixed. Weβd really appreciate it if you took our survey and helped us make it better.
Alternatively, you can share your feedback directly in the comments under this post.
You probably use tonviewer.com, and you likely have ideas on how it could be improved or fixed. Weβd really appreciate it if you took our survey and helped us make it better.
Alternatively, you can share your feedback directly in the comments under this post.
β€11π7π3π₯1
β οΈ Planned TON Console Update
When: 16 Feb, 06:30β08:30 UTC
Impact: Console may be unavailable for up to 2 hours during this window.
Services: Your products and APIs will continue running normally (no downtime expected).
Please plan accordingly β you wonβt be able to access Console to manage products while the migration is in progress
When: 16 Feb, 06:30β08:30 UTC
Impact: Console may be unavailable for up to 2 hours during this window.
Services: Your products and APIs will continue running normally (no downtime expected).
Please plan accordingly β you wonβt be able to access Console to manage products while the migration is in progress
β€6π₯4π1
π Billing Update: USDT Top-Ups
Weβve rolled out an update that makes USDT the primary way to top up your balance and pay for services in TON Console.
Whatβs new
β’ Top up in USDT and pay for services in USDT
β’ Improved charge history with CSV export
β’ Multiple UX improvements across the Console
π TON top-ups will still be available only for projects with an existing TON balance at the time of the update.. Also, charges are deducted from one balance type only β you canβt split a single charge between TON and USDT.
Weβve rolled out an update that makes USDT the primary way to top up your balance and pay for services in TON Console.
Whatβs new
β’ Top up in USDT and pay for services in USDT
β’ Improved charge history with CSV export
β’ Multiple UX improvements across the Console
π TON top-ups will still be available only for projects with an existing TON balance at the time of the update.. Also, charges are deducted from one balance type only β you canβt split a single charge between TON and USDT.
β€14π₯9π³7π4π€1
Help up become better.
We want to make TON Console better and more useful for everyone, and weβre currently collecting some feedback from users.
If youβve used the console, weβd love to hear:
- what you like about it
- what feels confusing or inconvenient
- what features you think are missing
You can share your feedback through this short form
or just leave a comment under this post.
Any thoughts or suggestions would be really helpful
Thanks!
We want to make TON Console better and more useful for everyone, and weβre currently collecting some feedback from users.
If youβve used the console, weβd love to hear:
- what you like about it
- what feels confusing or inconvenient
- what features you think are missing
You can share your feedback through this short form
or just leave a comment under this post.
Any thoughts or suggestions would be really helpful
Thanks!
β€30π₯11π10π3π2
Toncoin β Gram
Following the approved network changes, TONAPI and Tonviewer now support the new currency naming: Gram.
We have made every effort to preserve backward compatibility wherever possible.
List of Changes
1. Both Variants Are Accepted in Input Parameters
The /v2/rates/chart endpoint now supports a new currency value:
* https://tonapi.io/v2/rates/chart?token=usdt¤cy=ton&points_count=5
* https://tonapi.io/v2/rates/chart?token=usdt¤cy=gram&points_count=5
The response returns the currency name exactly as specified in the request parameters.
2. New Fields for Gram
Throughout the TONAPI response schema https://tonapi.io/api-v2, Gram support has been added to all fields that previously referenced TON.
For example, in the GET /v2/multisig/{account_id} endpoint, the field orders[].risk.gram has been added alongside orders[].risk.ton.
Similarly, corresponding Gram fields have been introduced across other endpoints, such as:
* ton_balance + gram_balance
* and other TON-related fields.
3. `token_name` Value Changes
The token_name field now contains the value Gram instead of TON.
4. Other User-Facing Fields
In structures where fields are primarily intended for user-facing display, references to Toncoin have been changed to Gram.
For example, in the Action structure (used by endpoints such as /v2/accounts/{account_id}/events, /v2/gasless/estimate/{master_id}, and others):
* simple_preview.name: "Ton Transfer" β "Gram Transfer"
* simple_preview.description, prefix.simple_preview.value: "5 TON" β "5 Gram"
Following the approved network changes, TONAPI and Tonviewer now support the new currency naming: Gram.
We have made every effort to preserve backward compatibility wherever possible.
List of Changes
1. Both Variants Are Accepted in Input Parameters
The /v2/rates/chart endpoint now supports a new currency value:
* https://tonapi.io/v2/rates/chart?token=usdt¤cy=ton&points_count=5
* https://tonapi.io/v2/rates/chart?token=usdt¤cy=gram&points_count=5
The response returns the currency name exactly as specified in the request parameters.
2. New Fields for Gram
Throughout the TONAPI response schema https://tonapi.io/api-v2, Gram support has been added to all fields that previously referenced TON.
For example, in the GET /v2/multisig/{account_id} endpoint, the field orders[].risk.gram has been added alongside orders[].risk.ton.
Similarly, corresponding Gram fields have been introduced across other endpoints, such as:
* ton_balance + gram_balance
* and other TON-related fields.
3. `token_name` Value Changes
The token_name field now contains the value Gram instead of TON.
4. Other User-Facing Fields
In structures where fields are primarily intended for user-facing display, references to Toncoin have been changed to Gram.
For example, in the Action structure (used by endpoints such as /v2/accounts/{account_id}/events, /v2/gasless/estimate/{master_id}, and others):
* simple_preview.name: "Ton Transfer" β "Gram Transfer"
* simple_preview.description, prefix.simple_preview.value: "5 TON" β "5 Gram"
Telegram
Gram of TON
Native Token Rename: Toncoin (TON) to Gram (GRAM)
The community vote on TON Vote has concluded. With 81.22% voting in favor, the native token of The Open Network is being renamed from Toncoin to Gram, with the ticker changing from TON to GRAM.
The changeβ¦
The community vote on TON Vote has concluded. With 81.22% voting in favor, the native token of The Open Network is being renamed from Toncoin to Gram, with the ticker changing from TON to GRAM.
The changeβ¦
π18π₯13β€11π©11π2
How to get all jettons? And what's changing in TONAPI?
In a nutshell
There are two main ways: TONAPI (the /v2/jettons method) and Tonconsole.com (CSV export).
When using the /v2/jettons method for pagination, it's recommended to use the cursor β the last_account_id parameter, which is taken from the previous response. It looks something like this:
% curl -s 'https://tonapi.io/v2/jettons?limit=10' | jq -r '.jettons | last | .metadata.address'
0:249936139b63719c0afc44f883f4d8c15fd53bc6f93b6244debcf92b3e6c3ce1
% curl -s 'https://tonapi.io/v2/jettons?limit=10&last_account_id=0:249936139b63719c0afc44f883f4d8c15fd53bc6f93b6244debcf92b3e6c3ce1' | jq -r '.jettons | last | .metadata.address'
0:31bb2214dca832dd8091d90adc313e9834782934263764810cb28fc7f8fb3878
In more detail
1. The /v2/jettons method allows you to get real-time data.
At the moment there are almost 1 million jettons on TON. One request lets you get 1000 data rows. Theoretically, on the Lite tier (10 RPS), you could download all jettons in about a minute and a half.
But this method had a problem β the offset parameter. Until recently, this method's execution time grew proportionally to the offset parameter. To maintain compatibility and ensure high performance, we carried out an optimization that uses a cached jetton list when offset is used. This list is updated once a day.
At the same time, we've added a new parameter β last_account_id. It provides a more correct and efficient way to paginate to the most up-to-date data.
2. For large exports like this, it may be more convenient to use Tonconsole.
For example, a query like SELECT d.account_id FROM getmethods.get_jetton_data d lets you get the full list of jettons. In Tonconsole you can enable scheduled export runs. The "Download CSV" link is stable, and you can quickly get a ready-made dataset with a single request from the backend (for the query above, that's 60 MB).
Feel free to ask question in comments βοΈ
In a nutshell
There are two main ways: TONAPI (the /v2/jettons method) and Tonconsole.com (CSV export).
When using the /v2/jettons method for pagination, it's recommended to use the cursor β the last_account_id parameter, which is taken from the previous response. It looks something like this:
% curl -s 'https://tonapi.io/v2/jettons?limit=10' | jq -r '.jettons | last | .metadata.address'
0:249936139b63719c0afc44f883f4d8c15fd53bc6f93b6244debcf92b3e6c3ce1
% curl -s 'https://tonapi.io/v2/jettons?limit=10&last_account_id=0:249936139b63719c0afc44f883f4d8c15fd53bc6f93b6244debcf92b3e6c3ce1' | jq -r '.jettons | last | .metadata.address'
0:31bb2214dca832dd8091d90adc313e9834782934263764810cb28fc7f8fb3878
In more detail
1. The /v2/jettons method allows you to get real-time data.
At the moment there are almost 1 million jettons on TON. One request lets you get 1000 data rows. Theoretically, on the Lite tier (10 RPS), you could download all jettons in about a minute and a half.
But this method had a problem β the offset parameter. Until recently, this method's execution time grew proportionally to the offset parameter. To maintain compatibility and ensure high performance, we carried out an optimization that uses a cached jetton list when offset is used. This list is updated once a day.
At the same time, we've added a new parameter β last_account_id. It provides a more correct and efficient way to paginate to the most up-to-date data.
2. For large exports like this, it may be more convenient to use Tonconsole.
For example, a query like SELECT d.account_id FROM getmethods.get_jetton_data d lets you get the full list of jettons. In Tonconsole you can enable scheduled export runs. The "Download CSV" link is stable, and you can quickly get a ready-made dataset with a single request from the backend (for the query above, that's 60 MB).
Feel free to ask question in comments βοΈ
π₯3β€1π€1
βοΈ`/v2/jettons/{addr}/holders` got pagination upgrade.
GetJettonHolders method was always returning holders sorted by their balance (starting from the top). It also had
This approach has two problems:
1) inconsistency. Obviously, balances change constantly. So scanning data with limit+offset will get a lot of gaps due to volatile ordering
2) performance. Request time grows with the offset, because of how databases usually work
We've just made optimization to speed this method β‘οΈ4x times!
ποΈIntroducing cursor
But O(n) is still O(n). So those who need real-time set of jetton holders can use new cursor-based pagination method, which has constant performance no matter what page it is.
So similarly to
Use
Use
Have the set of holders of your jettons in real-time with these high-performance updates!
offset parameter will be limited soon.GetJettonHolders method was always returning holders sorted by their balance (starting from the top). It also had
offset parameter that users can use to traverse the top 10k holders.This approach has two problems:
1) inconsistency. Obviously, balances change constantly. So scanning data with limit+offset will get a lot of gaps due to volatile ordering
2) performance. Request time grows with the offset, because of how databases usually work
We've just made optimization to speed this method β‘οΈ4x times!
ποΈIntroducing cursor
But O(n) is still O(n). So those who need real-time set of jetton holders can use new cursor-based pagination method, which has constant performance no matter what page it is.
So similarly to
/v2/jettons, we introduce two new parameters to the GetJettonHolders method: sort_by and last_account_id.Use
/holders like before to get top holders (sort_by=balance is default). Offset can't be more than 9000.Use
/holders?sort_by=address to scan through the whole holders set. Here is how it looks:
# get first page
% time curl -s 'https://tonapi.io/v2/jettons/EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs/holders?sort_by=address' | jq -r '.addresses | last | .address'
0:9dfaaafbc46bad3c46d9362d8e5d99f993e953034212c5f34689cac419ea9d2c
curl -s 0.02s user 0.02s system 5% cpu 0.670 total
# get second page
% time curl -s 'https://tonapi.io/v2/jettons/EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs/holders?sort_by=address&last_account_id=0:9dfaaafbc46bad3c46d9362d8e5d99f993e953034212c5f34689cac419ea9d2c' | jq -r '.addresses | last | .address'
0:b6a096bdc189790abde43c11041f1f5a72daa92fa0ed24e918e7187515dce53b
curl -s 0.01s user 0.01s system 4% cpu 0.533 total
Have the set of holders of your jettons in real-time with these high-performance updates!
π3π2β€1π1