Reputation
Badges 6
Editor Freshman 3 × Eureka! Newbie Enthusiast ScholarYes, you can find the related of code of NFTs in FunC here:
TON's "Infinite Sharding Paradigm" is a method for improving the blockchain's scalability.
The TON network can be split into multiple independent shardchains, which process transactions and smart contracts in parallel.
Each shardchain can dynamically split or merge based on the number of accounts it contains, optimizing performance.
The existence of multiple parallel workchains, each containing multiple shardchains, provides near-infinite scalability, allowing the TON network to...
1/ Is it realy so complicated to get parent message, or I missed some method or something else?
=> This is out of my knowledge.
2/ How much can I trust method getBlockByUtime? Is it possible that for some unix time I will (not get block)/(get next block)/(any options)?
=> getBlockByUtime
is a method used to fetch a block that was produced closest to a given Unix time. It's not 100% precise due to the fact that block times are not strictly enforced in the protocol, and there's...
Both the testnet and the mainnet are indeed decentralized systems, but their underlying purposes and uses are distinct. These differences might contribute to certain issues being more prevalent on the testnet than on the mainnet.
- Purpose of network: The mainnet is the primary network where real, live transactions occur, so stability and security are the top priorities.
The testnet, on the other hand, is for testing purposes. It allows developers to experiment and debug without fe...
The function run_ticktock
only operates in the masterchain and it's exclusive to the smart contracts whose addresses are specified in the corresponding config parameter.
Therefore, such smart contracts cannot work on a basechain.
Good question! Professionals in the industry often discuss wallets in the context of BIP32
(also known as Bitcoin Improvement Proposal), which underlies the process of how wallets are generated from mnemonics.
To put it simply, you can refer to this TypeScript file to understand how we can generate a wallet address:
https://github.com/toncenter/tonweb-mnemonic/blob/master/src/functions/mnemonic-to-seed.ts
As you can see, pbkdf2Sha512
appears to be a combination of PBKDF2 (Passwor...
Hi, so if you like, I highly recommend you using the NFT repo here that using Tact language for the NFT!
- It's more easy to learn.
- There is as simply as just pull the repo and run
yarn
to install library the deploy the contract.
Good question! Essentially, we are following the content from getgems.io, the largest NFT marketplace on TON. It suggests that we can use two specific addresses as dead addresses, similar to what we know from Ethereum:
1/ "EQD__________________________________________0vo"(https://dton.io/a/EQD__________________________________________0vo)
2/ "EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c"(https://dton.io/a/EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c)
By sending NFTs to ...
Hi, there are a few potential reasons here. Although I spend most of my time coding in Tact (https://tact-lang.org/), the process is nearly the same.
Primarily, it depends on your smart contract code design. But first and foremost, you need to deploy the contract code to the TVM, then trigger the initial parameter settings. This is essential, no matter what.
It seems like you've deployed your contract code and data, but haven't successfully initialized the contract on the blockchain. ...
Yes, you can.
Getgems.io shares a series of NFT contracts for fixed-sale, auction sale, and others, written in FunC code.
https://github.com/getgems-io/nft-contracts/tree/main/packages/contracts/sources
Good question. Essentially, you cannot do that if you're using another data source to store the metadata outside the TON Blockchain. This is because the metadata, which includes the content of each NFT, can be easily manipulated by the project team.
This repository (https://github.com/disintar/DTN/blob/main/notes/onchain-reveal.md) presents an alternative way to implement an on-chain method for revealing the NFT content, which is more transparent and fair.
You can also refer to the NFT ...
Good question. As a community contributor, I share this concern. The information I can provide is sourced from tonscan.org.
- TonFoundation Address (approx. $62M): https://tonscan.org/address/EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N
- TON DNS Address (approx. $7.6M): https://tonscan.org/address/EQC3dNlesgVD8YbAazcauIrXBPfiVhMMr5YYk2in0Mtsz0Bz
- TON Ecosystem reserve (approx. $947M): https://tonscan.org/address/EQAhE3sLxHZpsyZ_HecMuwzvXHKLjYx4kEUehhOy2JmCcHCT#transactions
I w...
To call a function from a smart contract using Python, you can use the tonsdk package available on PyPI.
This package provides a convenient way to interact with TON smart contracts using Python.
You can find more information and installation instructions on the package's official PyPI page: https://pypi.org/project/tonsdk/
To connect MyLocalTon
using TonWeb, you'll need to follow these steps:
-
Install your own instance of TonCenter by following the instructions in the TonCenter GitHub repository: https://github.com/toncenter/ton-http-api#building-and-running
-
Configure your TonCenter instance to use your local TON network configuration, so it can connect to your
LiteServer (LS)
. You can find the configuration instructions here: https://github.com/toncenter/ton-http-api#Configuration -
Finally,...
The discrepancies you are experiencing with the TON API endpoints could be due to querying the incorrect workchain. The address UQCzwxqIw1pt41DND9pgGfAOhJKtQQEgjVcpn0rHxv-4b8Ob
resides in the basechain (workchain=0), but you are looking for transactions in the masterchain (workchain=-1).
To find the correct transaction, follow these steps:
- Query the /getBlockTransactions endpoint with the correct workchain (workchain=0) and shard (-9223372036854775808) values:
https://t...
Calculating the gas price for get/set
operations on a Hashmap in the TON Virtual Machine (TVM) can be a bit challenging, as it is dynamic
and depends on the size of the dictionary
being manipulated.
Although there is no exact formula for determining the gas price, you can estimate it using the following approach:
Gas Price ≈ 600 * log2(SIZE)
Here, SIZE
represents the size of the dictionary. The gas price obtained using this formula is in the gas value unit, which mea...
To find information about the fines imposed on validators and the duration of the rounds in the TON blockchain, you can refer to the configuration parameter number 40.
In the Testnet, you can access this parameter through the following link:
https://test-explorer.toncoin.org/config?workchain=-1&shard=8000000000000000&seqno=10476790&roothash=6D2228626EC81D680F9CD0AAC0CDC78B8D0B63A88AAB95395576E46E65F4B5F9&filehash=C4F8F113C7B4F09BBA11D8EBB08E89E11E02172A11D6B5CA74339FFE548D98A5#configpara...
Hi Emmanuel, maybe you can take a reference here for help. Like it mentioned, maybe you will need a archive node since this might be a heavy seraching for the item_id
and the NFT Item Address
tho
https://docs.ton.org/develop/dapps/asset-processing/nfts#unordered-collection
You can take a look at the resources available at https://github.com/gobicycle/bicycle and https://docs.ton.org/develop/dapps/asset-processing/ to learn more about this.
Basically, you can track incoming transactions to a specific address.
Currently, popular TON wallet applications like TonKeeper
and TONHUB
do not support adding a passphrase to the mnemonic seed phrase when creating or restoring a wallet.
This means that if you develop a wallet application that allows users to generate a wallet using a mnemonic seed phrase and an additional passphrase, users may not be able to restore their wallets in TonKeeper or TONHUB directly.
However, you can still create your wallet application with the seed + passphrase featur...
One possible way to obtain a Wallet V3r2
address from a v4r2 address is to calculate it from the public key.
This can be done through several methods such as using a get-method
, reading from contract persistent data (depending on wallet version and code), or emulating the receipt of an external message and checking what key is used for signature verification.
That's a great question. If you check the repository URL for this NFT, which is the code in FunC
, Telemint, you'll see a line of code that reads throw_unless(err::not_enough_funds, bid >= initial_min_bid);
*1.
This line means that you need more funds in the NFT itself to trigger this kind of transaction in practice. In other words, "not enough funds" means that you should replenish the balance of the NFT smart contract so that there is more than 💎1.
*1: https://github.com/T...
Great news! You can now start your online FunC coding journey using https://ton-ide-nujan.vercel.app/. Although I hope they add support for Tact in the future, this platform is a great starting point for practicing your FunC skills.
If you encounter any issues or have questions, you can reach out to Nujan.io through their social media channels:
The maximum size of a smart contract deployed on the TON Network depends on the complexity of the contract and the number of cells it utilizes. In general, the size of a smart contract's Bag-of-Cells (BoC) representation should not exceed the size limit of a single shardchain block, which is 2 MB
. However, practical limits for smart contracts are much smaller.
A single cell in the TON Network can store up to 1023 data
bits and has 4 references to other cells
. The more complex the sma...
Before we start, you need to know the message itself is sending on Cell
data type in TON. Which means, each cell has a limit of 1023 bits
for storing data. This limit includes the data stored within the cell and any necessary headers or metadata.
Suppose you have a message body that is 900 bits long, and you want to store it in a cell along with its message header. The message header itself will also take up some bits for storing its fields, such as message type, address information,...
This is a great question! (Took me a long time to understand as well)
So basically, you are asking:
- Why do we store the uint(....) there?
- And why do we deal with int_msg_info over there?
1/ The message structure
To understand why we store the uint(...) in the message, you need to understand how TVM works for Message. In practice, the Message Layout shows that to "compress" the message we want to store, we must store it into a "Cell" and upload it to the smart contract a...
Both the source and destination addresses are important in a message for various reasons:
Traceability and Accountability
: The source address indicates the origin of the message, i.e., the account (smart contract) that created the message while processing a transaction. Having a fixed, unchangeable source address ensures that the origin of the message is known and cannot be tampered with. This helps establish a clear chain of actions within the network, making it possible to trace and au...
The TON blockchain is designed as a multi-chain architecture, with different workchains operating independently but also interacting with each other.
Account addresses in TON consist of two parts:
workchain_id
: A signed 32-bit big-endian integer that defines a workchain.account_id
: A 256-bit internal address or account identifier that defines an account within the chosen workchain.
The passage mentions that different workchains may use account identifiers (account_id) with vary...
The quoted text is describing the elliptic curve cryptography
(ECC) used in TON, specifically in the TON Blockchain and TON Network. ECC is a cryptographic approach that relies on the mathematics of elliptic curves to create secure key pairs for public-key cryptography.
The passage mentions two specific elliptic curve algorithms used in TON: Ed25519
and Curve25519
.
Ed25519
: This is an elliptic curve digital signature algorithm that provides high-security, fast performance, and ...