ton-society / grants-and-bounties Goto Github PK
View Code? Open in Web Editor NEWTON Foundation invites talent to imagine and realize projects that have the potential to integrate with the daily lives of users.
Home Page: https://ton.org/grants
TON Foundation invites talent to imagine and realize projects that have the potential to integrate with the daily lives of users.
Home Page: https://ton.org/grants
Right now, we have a big problem with newcomers that wants to start developing on TON.
I surveyed the community of ~5000 devs in four chats in June. And I got around 40 responses. But every one of those responses is from someone who has passed a series of hurdles and becomes a developer in the ecosystem. Even from these heroes, the most common problem I've heard of was "documentation."
Feel free to read the answers here:
And how many of these unfortunate souls didn't pass and settle in as dead listeners in dev chats? We don't know.
All who came from the development fields said where they have pain and what they need to fix. And how many of those people didn't come and were swept away by the complexity of the current TON ecosystem?
If we imagine that every newbie is Mario, then the lack of a clever way to learn blockchain is a hole that 99% of little Mario falls into.
When I want to START, on ton.org or in the current documentation, even "DOWNLOAD" a TON binaries is already a quest! It's a hole. Many tired after-work developers are buried here, and no one remembers their names.
The first thing I want to bring to the ecosystem is a GETTING STARTED project for anyone who wants to play with TON over the weekend.
I want to start tiny and put a "Download" button for the most tired, where Kahneman's "System 1" will carry a person on waves of automatisms to the "Wow, I get it! How cool is that? Where's that complicated blockchain?"
This is the pain that worries me personally. The lack of a competent, unfocused path that even a tired after-work developer will follow. The ideal result looks like that:
I want to be sure that the person won't get blown away, distracted, have 3 links to 5 repositories, 8 versions of binary that are all out of date, and that the guy won't fall into some whitepaper along the way, where he will die. This is what I want to do.
Total: $10800
We need to add FunC grammar to highlight.js so we can:
Later we can add more languages to the mix.
No response
Total: $1200
Develop smart contract for shuffling NFT's
We want to add some game mechanics to NFT's on TON.
One of the things that come up to mind is NFT ruffle mechanics.
Basic mechanics are pretty simple:
FYI: this grand is funded by Getgems & TON Frogs NFT
Detailed technical requirements could be found here: https://telegra.ph/NFT-raffle-contract-Product-Description--Technical-requirements-09-07
Total: $2600
Robust solution for distributing testnet TONs to developers.
Current faucet bot is under constant attempts to drain it and CAPTCHA solution affects user experience perspective.
Example article and supplementary code for launching a telegram bot capable of accepting payments in TON.
Bots are great for providing use cases for TON and we want to encourage people to build more of them. That's why we need a clear tutorial showing how to start accepting payments in TON.
[ ] Bot can be run from the code provided in the repository
[ ] Bot accepts payments on testnet
[ ] Bot accepts payments on mainnet
Total: $1100
We need to add syntax highlight of Fift
, FunC
, TL-B
to prism.js
so syntax on https://www.tonspace.co/develop/func/overview/ is highlighted.
No response
FunC
highlighterFift
highlighterTL-B
highlighterPR to prism.js
I am not going to commit to get this merged at this point, because, quoting https://github.com/PrismJS/prism
We are currently working on PrismJS/prism#3531 and will only accept security-relevant PRs for the time being.
Once work on Prism v2 is sufficiently advanced, we will accept PRs again. This will be announced on our Discussion page and mentioned in the PrismJS/prism#3531.
There's nothing I can do to get it merged right now. But, I will get this merged after v2 is released.
3 * 500$ = 1500$ worth of TON on the moment of footstep completion
Total: $1500
In its current form, there's no argument that FunC is difficult to work with. One of the primary reasons it's difficult for new developers is that its standard library is very low level and doesn't provide enough abstractions. This can be solved by creating a set of reusable libraries in FunC that will provide developers with common contract services with simple API. Think of these as optional extensions to the standard FunC library.
This concept is not new. In the Ethereum ecosystem https://www.openzeppelin.com/ provides a very similar service. Whenever a Solidity developer needs to implement some complex pattern, such as proxy contract for supporting code upgrades, they would not try to implement this from scratch. They would simply go to OpenZepplin, download a ready-made library in Solidity that contains the complex implementation and embed it in their project. You can say that OpenZeppelin abstracts away the complexities of the proxy pattern by wrapping it with simpler API.
We can do the same for common tasks that are complicated in FunC.
There's a common complaint in the TON ecosystem that FunC is too complicated. I see many developers comparing it to Solidity and asking why has TON chosen such a complex language for its smart contracts. To be honest, I disagree with this claim. FunC is not much more complicated than Solidity. I believe new developers get this feeling just because the FunC ecosystem is immature and this can be heavily improved by adding a few footsteps. This one for example.
I saw a proposal in the community to dance around FunC by creating a transpiler from JavaScript or Python to FunC that will allow new developers to write their smart contracts in "easy languages" like JavaScript and Python instead. Will such an idea really make contract development on TON much easier? I don't think so. FunC syntax is pretty much identical to regular C, and JavaScript syntax was taken from C as well. I don't think this is where the complexity comes from.
A lot of the complexity comes from the lack of abstractions in FunC. Consider the code needed to check if an incoming internal message is a bounced message:
int flags = cs~load_uint(4); ;; int_msg_info$0 ihr_disabled:Bool bounce:Bool bounced:Bool
if (flags & 1) {
;; handle bounced message here
}
In most contracts this piece of code appears as is, here's an example from Jetton official standard. What is a new developer supposed to understand from looking at this code?
Now imagine that there was a FunC common library for parsing internal messages with abstracted API that looks like this:
int flags = parse_message_flags(cs);
if (is_bounced(flags)) {
;; handle bounced message here
}
This would be so much easier to understand, because all the non-interesting implementation details like the const values of the flags or the bit structure of the incoming message are hidden away inside the library.
Now I'm pretty experienced with FunC and when I look at code that looks like this, I can't do much except scratch my head in wonder. WTF. This is not because FunC is complicated. It's because there are bunch of abstractions missing and I'm looking at internal encoding of messages that I don't really care about as a "regular" developer.
Abstractions are not a new idea. When we implemented TonWeb, we put a lot of abstractions in place to create readable API and hide message encoding details from most developers. Here's an example.
[ ] Deliverables part is delivered
Develop smart contract for selling NFT's for Jettons
Currently only smart-contract for NFT sales by TON's are available.
Since we already have standard for custom tokens on the network (Jettons) it would be great to develop smart contracts to allow users to buy NFT's for Jettons.
You can find detailed technical description here: https://telegra.ph/NFT-Sales-for-Jettons-contract-Product-Description--Technical-requirements-10-21
Note: this grand is funded by Getgems
Total: $4750
Call for TON Society (https://society.ton.org/) blog posts covering wide variety of topics.
Provide a platform for teams or independent devs to share insights or updates about their work on TON.
Increase visibility for teams or independent devs, increase insightful content in English, and incentivize knowledge sharing.
Write the post via markdown on Secret Github Gist and share the link via email ([email protected]) or Telegram (https://t.me/tonsociety_chat). If accepted, review committee will add it to TON Society Blog.
Shared Secret Github Gist link via email or Telegram channel.
TON Footstep NFT
Discretionary Toncoin reward for high developer value-add posts
The framework must support:
This framework will be very convenient for all creators of projects on TON, such as Games and Services.
This framework is critically needed. Current documentation and frameworks are very far behind similar on other networks. (for example, solana py)
Simplification and acceleration of work with the TON network when creating projects.
The task is considered completed after the creation of a working version of the framework that implements all the steps indicated above.
[ ] Repository created
[ ] Text files submitted
Standard TON Footstep NFT
Honor
Cover all the methods of browsing TON Sites:
Currently, there are no such article on Tonspace or any other source. Users can't easily find information about connecting to TON Proxy and browsing TON Sites.
Total: $170
We are developing a wrapped Toncoin (wTON) in a jetton format, which will serve as a universal intermediary for exchanging TON-based jettons (tokens) in any trading pairs on TON-based DEXs, and will be used in other TON-based applications.
Our next (and big) goal is not only to program a wTON smart contract, but to create the wTON everyone is happy with.
The benefits of a universally adopted wTON (compared to lots of different wTONs, which have been already created and/or will be created in the future) are as follows:
Implementation of a wrapped TON contract doesn't require a lot of effort. As a matter of fact, several implementations already exist. The problem is that numerous different wTONs created by different developers bare lots of risks:
The solution could be a standard, universally adopted, audited and certified wTON with a set of features that fits the needs of most developers. Of course, it won't prevent creating other wrapped TON contracts, but most likely developers will prefer to use a widely used, universally adopted and community-led wTON if there is one.
We have already implemented these features:
To create wrapped Toncoin, which will serve as a universal intermediary for exchanging TON-based jettons (tokens) in any trading pairs on TON-based DEXs, and will be used in other TON-based applications.
Our next (and big) goal is not only to program a wTON smart contract, but to create the wTON everyone is happy with.
Source code which will include these features:
GitHub repository with the source code.
5000$ in TON equivalent
Implement TON-specific lexer for pygments
, popular python library used for hightlighting syntaxes. This will enable syntax highlighting at learnxinyminutes.
No response
Learn FunC in 15 minutes page has a right syntax highlighting with local Pygments & learnxinyminutes repos
Total: $800
Provide a migration path for jettons to new contracts.
TEP-89 introduced discoverable jetton minters.
This means that previously deployed jettons are not discoverable and have to deploy an auxiliary contract for adding such capability.
We suggest to support a migration path such that non-discoverable jettons can be migrated to a new (discoverable) minter.
Such a migration solution will also serve further extensions to the jetton protocol in the future.
A migration contract will be deployed such that it is linked to a certain minter contract.
Holders of the outdated jetton can send their jettons to the migration contract and receive new jettons instead.
Come up with a full solution to the migration path, including a contract interface & implementation as well as a UI.
The contract is deployable and provides a migration path between minters
5000$ in TON equivalent paid out by these milestones:
This grant is funded by Orbs as part of its ecosystem grant program.
Cover the process of minting a fungible token on TON for new developers in the ecosystem.
I describe in the most detailed and simple way for mastering how to make your own token in the blockchain TON.
The description includes a multi-level explanation of the material in different ways of implementation.
Total: $160
We suggest delivering a clear article on how to calculate fees on TON.
It is unclear how fee works now and what happens when transactions are sent.
[ ] Person with no or little blockchain literacy able to understand how fees work on TON
Tokens that can be controlled by multiple parties without listing all those parties in token's contract (to decrease fees.
There are cases when the right of controlling NFT or jettons has to be granted to some smart-contract, but logically the token owner remains same. For example, in P2P exchanges without intermediaries people may wish to transfer their tokens not instantly but with some delay; in this case they may schedule a message on timer, but then they need to make token trust the timer. Transferring tokens to timer's contract is not safe because if timer breaks, token will become inaccessible.
I propose to create a new standard: ACT. Token owner would send an authorization message (its structure needs to be decided) to smart-contract he allows to control the token; when that smart-contract needs to send a message to token, it sends it along with Merkle proof of existence of that authorization message.
Evolve existing VS Code extension functionality.
We have existing extension, but it needs to be improved to support more use-cases and modern FunC syntax.
VS Code users should be able to easily write & refactor FunC code with help of this extension.
Work should be done in two month after start.
Total: $5600
I am trying to get nice ton domains, to be in a next future in good position for TON explorer…but if i get a good name, other people with with much more money can get it for auction.
I think the open network need innovative people that believe in platform but these people can lose hope and be angry, because other companies/person with ONLY money, get all they want…and get the idea of good ideas( dns) people.
My idea consist in give 1-5% in TON coin to the final price in auction to first person who got the “idea”.
Doing this i think that much many people would invest 10 TON in many “good names” …looking for some money.
The open network would get a lot of new dns names, and a lot of rich companies/persons to get it.
With more and more names, TON will be much bigger, and growing will be faster.
I trust in project and want to collaborate. Thanks.
Many people we are trying to get good ton domains, thinking a lot ant trying to be innovative…but many people only need to have money to adquire in auction all domains they want
Only idea
Idea
Idea
4000
TON might benefit from getting a cookbook with clear recipes for solving some common tasks.
Cookbooks are common in software development: these are collections of actionable and practical tips & tricks on how to execute certain concepts. This question on Quora contains a great explanation of what cookbook is.
Regarding the blockchain there are a couple of good examples: Ethereum and Solana ones.
Inspiration: examples from the community
To understand which exactly FunC examples developers need was launched a feedback form in google document for everyone from the community:
https://docs.google.com/document/d/1l5865CZ2IzjD1r054rYPaPkNCBaUVVt2iEy9bWJGZqA/edit#
Everyone is welcome! If you don't see necessary things just add them to the list.
https://ton.org/docs/develop/func/cookbook
Total: $1225 for 49 examples
Total: $450 for 9 examples
Enhancing TON Wallet by adding several key functionalities.
TON Wallet is the only cross-platform open source wallet on the TON blockchain, but it lacks important features such as jetton, NFT, staking, purchasing and biometric authentication. It needs much improvement to be comparable to the wallets of major blockchains such as Ethereum and Solana.
[ ] Update of official repositories and binary version.
Repeat #8 but in Node js
Bots are great for providing use cases for TON and we want to encourage people to build more of them. That's why we need a clear tutorial showing how to start accepting payments in TON.
[ ] Bot can be run from the code provided in the repository
[ ] Bot accepts payments on testnet
[ ] Bot accepts payments on mainnet
[ ] Article hosted on tonspace
Total: $1150
We need to add Fift language support to https://github.com/highlightjs/highlightjs-func
No response
highlight-func
npm packagehighlight-func
npm package released with Fift supportTotal: $1000
Let's be honest - to get into TON programming is quite a hustle. Documentation is great, but there is lack of hands-on tutorials and "speaking heads" when it comes to programming meaningful smartcontracts, NFTs or dApps for TON. I'm on my learning path, but I've decided to walk the extra mile and produce media content from my learning process. I will plan, produce and distribute a series of videos along with text tutorials that will get a new-comer into this programming field.
I'm quite an experienced developer in classical fields like backend and frontend developments. However, learning to program for TON is quite hard for me. I want to make this much more friendly. I'm also a person who needs to see the whole process end-to-end in order to make the first steps. Recording my footsteps into an organized series of materials can be a great resource for the community.
Self-onboarding series (currently planning on 10 videos)
In this series of videos, every video will contain a tutorial on a certain topic that I’ve recently learned as well as rising the questions that I’ve encountered during the learning process. Each tutorial video will be then followed by a Q&A session video with some experienced TON developer from the community, who will answer the questions and guide me further.
Average video length - 60-70 mins.
Every video tutorial is going to have a text version published on Medium.com
I plan to prepare and publish 1-2 videos per week. So overall project might take 2-3 months to finish.
Contentful series (currently planning on 5 videos)
As oppose to the Self-onboarding series, Contenfull videos are going to be much shorter (20-30 min) and each video is going to cover very focused information on specific topic. The content of this video will be basically a mix of what I’ve learned by myself and what I’ve learned from pro TON developers during Q&A sessions.
1. TypeScript vs ton-cli approaches
Pros & Cons, Resources, Tools
2. Authentification for dApps
TonHub, TonKeeper
3. Writing tests for TON smartcontracts
Outlining the importance of writing the tests, approaches
4. How to read the TON's whitepaper?
+Why is there so many WPs? Durov’s WPs vs Ton Foundation WP
+Outlining practical parts of the WP that are required to understand for programing for TON
+Outlining core conceptual parts of the WP
+Which parts of TON’s WP are already implemented and which are yet to come?
While preparing for this video I will have a series of conversations with experienced crypto folks to make sure my material is not superficial.
5. Usefull tools, APIs, Resources
15 videos according to topics announced in the Deliverables block, published on YouTube with text versions published on Medium.com and Dev.to
I'm setting up an expected reward based on my workload and salary at my main full-time job.
Preparing a single video takes me 1.5-3 days. I make approx. $ 200 / day at my job.
I think to count for example $300 (in TON equivalent) per video. $300 * 15 videos = $4,500. And of course we divide this by 3 as I'll deliver this over 3 months maximum.
So I would round it up to 4000 TONs ($5600 if the rate is $1.4/TON) then I could buy a good microphone, webcam and light, to provide a better quality of videos. But I'm open to your offers.
Suggested milestones:
All the videos will be produced and published in the order according to the list order above.
Smart contracts for Soulbound NFT's
So-called soulbound NFT’s are such NFT’s that are only owned by single person and should not be sold or transferred.
Original idea was described in this article from Vitalik Buterin http://vitalik.ca/general/2022/01/26/soulbound.html
I think TON needs this kind of NFT's to be on the cutting edge of crypto world.
FYI: this grand is funded by Getgems & ton punks
Technical requirements could be found here: https://telegra.ph/TON-SBT-Contract-Product--Technical-requirements-07-11
Total: $1200
Add TON support to the most popular hardware wallets: Ledger and Trezor.
Non-custodial wallets are extremely important to the ecosystem of any blockchain. In particular, cold wallets such as hardware wallets are fundamental missing pieces for TON.
Adding support for Ledger (open source plugins) and Trezor (open source wallet).
Support for production-ready hardware wallets.
[ ] Updating of official repositories. In the case of Ledger there is already a working plugin written by one of the TON core developers.
2500$ in TON equivalent (?)
Teach FunC smart contract developers how to manage gas in the contracts they're writing.
TON contract gas model is very unique and quite different from the EVM model. Contract developers must design a gas strategy. If they won't do this well, the contract can run out of TON balance for rent and be removed. Messages that the contract sends might not have enough gas and be rejected. This is an advanced topic, not an introductory one.
A markdown article in a form of a GitHub gist or GitHub repository
zero-knowledge proofs (zk-snark) protocol for private transactions on a workchain (private workchain).
Support private workchains for companies similar to Hyperledger, VeChain or Corda.
[] Working private workchain example.
TON Footsteps need to be connected with blockchain, thus a person responsible for helping TON to make a single footstep, will get a single NFT delivered to their TON address.
Cover the process of creating a simple Telegram WebApp that retrieves some information from the TON blockchain.
This tutorial was requested by ton.org/docs:
ton-community/ton-docs#20
Currently there are no simple and understandable tutorials for creating web apps in docs.
It may be too difficult for beginners to create their first web app interacting with the TON blockchain.
Cover the process of creating a simple Telegram WebApp that retrieves some information from the TON blockchain
We need to add Tlb language support to https://github.com/highlightjs/highlightjs-func
No response
highlight-func
npm packagehighlight-func
npm package released with Tlb supportTotal: $600
Tutorial allowing minting single NFT without help of 3rd parties, just with a bare CLIs and general environment for FunC / development on TON.
There is no tutorial on how to mint standalone NFT in TON without using help of any 3rd party. With this Footstep we suggest creating tutorial and / or corresponding repository with all the code and tools required to mint a single NFT on the mainnet and testnet.
[ ] Suggested tools allow minting standalone NFT following the instructions
[ ] Developers are able to find information on how to set up initial environment and to mint NFT
Total: $1250
Library that would be essential for TON projects that need production ready solution to index TON blockchain.
When it comes to working with data from the blockchain and you need a some way to store, parse, subscribe to a blocks, a transactions, a messages then your choices are pretty limited.
Here's the ways (at least the ones that I found):
The first option is not really an option for most of the developers. Cause you need to run a full node which you need to maintain and infrastructure costs are not cheap.
The second option's major drawback is that you need to trust the Liteserver you're connecting to. And service provider need to scale their infrastructure to support all the users.
And same goes for the third option. You need to trust the service you're using and service provider need to scale their infrastructure to support all the users.
That kind of problem faced by a team from Pagoda Indexer from NEAR ecosystem.
And they came up with a solution which involves AWS S3 and consists of a pair of libraries: NEAR Lake Indexer and NEAR Lake Framework.
NEAR Lake Indexer is a library that allows you to connect to the blockchain and store the data in AWS S3.
NEAR Lake Framework is a library companion to NEAR Lake Indexer that allows you to connect to the AWS S3 and parse the data.
What got me interested in this solution is that availability is handled by AWS S3 and with Requester Pays option cost would be fixated for the provider and end users by would pay by themselves for the data they're using.
[] TON Lake Indexer, which meets the goal requirement and open source
[] TON Lake Framework (Rust version), which meets the goal requirement, open source and crate available on crates.io: Rust Packages Registry
[] TON Lake Framework (JS/TS version), which meets the goal requirement, open source and package available on npm
Develop smart-contract for swapping NFT's
Sometimes users don’t want to sell their NFT but are ready to exchange it for other NFT(s).
This is exactly what we want to achieve here.
FYI: this grand is funded by Getgems & Tegro NFT
Technical requirements could be found here: https://telegra.ph/NFT-swap-Contract-Product-Description--Technical-requirements-08-24
Total: $3700
Write article about the most famous explorers in the community. Help the new developer decide which explorer is the best for him. At least we need:
No response
Total: $170
We need to create a project that can parse TL-B
files into abtract syntax trees.
This is needed for other tools:
ohm
libraryTotal: $2000
Spam is a hard problem to solve. Bad actors are taking advantage of TON's low transaction fees to exploit iconic mechanics of web3, such as NFT airdrops.
These unwanted NFTs often claim to give users a free gift/NFT if they click a link in the description. Clicking the link leads the users to a site where typically one of two things happen:
These scams are becoming increasingly more sophisticated. For instance, after a contract address and domain is identified as malicious, scammers can change the metadata of an NFT. It can feel like an endless game of whack-a-mole, but one we’re committed to winning.
To remove unwanted wallet spam, simply select the NFT you want to burn in the Collectables Tab, and select the Burn Token.
Protect users from unwanted nft spam. And the NFT with a broken smart contract.
Burn and "delete" - Introducing NFT Burning.
Create and integrate Smart contract - Burn NFTs.
100-1000 TON from our team. And up to 250-2500 TON, for integration into the Uniton wallet.
Timer smart-contract built natively on TON without any external messaging that will allow users of The Open Network to schedule messages to some time in future.
This service can be used by NFT creators to run presales and auctions reliably, or by DAOs wishing to conduct some elections or collect votes on a proposal (limiting token holders' time to vote but not forcing everyone to make decision).
Program sending external messages can break at any time (for example, if network connection is lost); this timer is going to work as long as TON itself.
There will be possibility to deploy one's own timer contract - for example, for purposes of debugging message chains (so others' messages don't fill up transactions list), or if other contracts almost run out of gas when trying to process messages. As the deployer is the one filling up contract's balance, ones who join the existing timer give that person a small reward.
Allow TON users to schedule arbitrary messages to some time in future.
EQDpVsvhlIxDGO3qZtPfrChaiKzlkVt6Rs-6J4Xd8BKIgQK7
schedule#_ fwd_nton:uint64 time:uint32 dest:^MsgAddressInt body:^Any = Msg;
stabletimer.ton
on mainnet)Total: $2000
Describe in «human» terms for a mass audience the upcoming TON blockchain plans with use cases.
The blockchain team has ambitious plans that are difficult for the non-tech person to understand — this creates a barrier to new users and projects, especially those coming from other blockchains.
CLI tool for fast and easy setup for TON smart-contract developers. The best analogy is the Hardhat from the Ethereum world.
At this stage there is no such tool for setting up a new smart contract project with easy deployment, testing and debugging using JS/TS, which are standard in crypto world. We have toncli which is a good product, but since its core philosophy is to use Fift & FunC for deploying scripts, testing, etc - it's not that easy for new developers to quickly jump in.
Developers are able to setup an environment for developing smart contracts in TON and start experimenting in less than 1 hour.
Website with stats about the mainnet.
TON now lacks a single website / project to report blockchain stats like Solana bench or Etherscan/charts.
[ ] Website is available online
[ ] Information on validators, transactions speed, volume etc. is displayed.
Total: $7500
Add information about toncoin to trust wallet assets repository https://github.com/trustwallet/assets/tree/master/blockchains
Trust Wallet assets repository is used to provide information about crypto coins for a large number of applications. Adding toncoin to this repository would allow these applications to use information about toncoin such as website domain, logo, name, symbol, etc.
Merge pull request with information about toncoin into trust wallet assets repository
An ability to see toncoin in trust wallet assets repository
[] Merged pull request with information about toncoin repository in trust wallet
Total: $340
A blockchain is designed to work extremely efficiently with its own internal data but is unaware of external data such as real world exchange rates, or other data not on the blockchain.
A blockchain cannot retrieve data from an external API, due to its internal processes. If nodes address an external API at different times, they may get different results and will never be able to reach consensus, since it is unclear which of these nodes should be trusted.
To resolve this issue, instead of the “pull” model (in which a blockchain reaches out to the real world for data) we can use the “push” model. Data suppliers write data to the blockchain for decentralized apps (dApps) to use.
Entities that save data to the blockchain are called blockchain oracles. But the problem is that all of them operate in a centralized way since they need to trust a single source of data. Overall, a system is only as decentralized as its most centralized element. Therefore, a decentralized app that uses data from a single oracle to make key decisions is in fact, highly centralized. Logically, by influencing the behavior of just one component, the oracle, you can influence the behavior of the entire app.
The idea of a decentralized oracle is an attractive solution, but there is no easy way to implement it.
Here are some solutions on how this issue could be resolved.
dAPP and smart-contracts
Simplest solution: multi-signature
The easiest solution is a multi-signature approach. Several users reach consensus and sign the same data. For instance, let’s say we want to receive data about the USD/EUR exchange rate and we have five oracles that need to agree on a consensus value (from outside the blockchain), sign the relevant transaction and send it to a blockchain account that will only accept it if it includes at least three signatures out of five.
But this approach has several issues:
If the oracles fail to reach consensus, the data simply won’t be sent to the blockchain
Data suppliers have no financial motivation
The oracle list is predetermined and limited.
To resolve these issues, we need to build a fully-fledged decentralized app, which operates as a marketplace for two kinds of participants:
Apps that need data
Oracles that can supply data for a reward.
Let’s formulate the main requirements for such a dApp and implement it using FUNC and the TON blockchain.
OracleRepresenter
A contract, which would be deployed by the service provider and would store "calculation result".
Rules
Contract can be in one of the five phases: idle, supply, showdown, calculation, rewarding
Phases can circulate or not
OracleParticipant would be rewarded depending on how far they from "calculation result"
OracleParticipant
A contract, which can deployed by anyone who wants to participate in future calculations.
Rules
Would be tied to the specific OracleRepresenter, meaning it can participate in calculations for the specified OracleRepresenter
In supply phase it should provide hash of the value
In showdown phase it should provide the actual value
repository with code and documentation
instructions on how to set up and test app locally
https://github.com/usdton/oracles
10000 USDL
Create a service for decentralized on-chain cheques
Cheques are a popular and in-demand feature. People use them every day for different purposes.
But the problem is that all existing services for cheques are centralized and usually hosted on Telegram bots. People can't be sure that their coins are safe and nobody from the administration of the service will claim it. Centralization also means that user must hold coins on service's wallet so there are risks of losing funds in case of some hack or attack on a service.
Another problem of centralized cheques is that they usually don't work with custom tokens (Jettons or NFTs), or even if they do, the Jetton must be listed on their service in order to be used.
Decentralized and secure cheques built on-chain would solve these problems, while still remaining easy-to-use and cheap.
Cover which wallet contract types are in the TON Ecosystem and why they exist.
Currently, Wallet contracts article on Tonspace.co is empty
Total: $150
Time limited TON adress for rent NFT
In real next future, museums, government or companies, will convert his fungible private art collections in NFT.
The real owners of NFT will lease or rent his NFT to any digital museums for expositions, but if you transfer NFT, now a day, you leave to be owner, if under contract you rent a contract, if there is problems, you cant recover your NFT.
If there are time limited adress, maybe we would be the first secure NFT transfer company…and exploring tranfers you can check the genuine NFT in museums or expositions. Maybe this idea can be good for biggest art owners who dont trust in NFT.
Idea
Idea
as you consider.
This proposal describes what we need to launch the TON Footsteps workflow.
Write a smart contract ("Verifier Registry") for forwarding signed messages to other contracts
We run computations on off-chain nodes that produce data which needs to be stored on chain in various contracts.
In order for these contracts to accept the data, they require it to be signed by the off-chain nodes, each of which has a public/private keypair.
The verifier registry holds the list of keypairs and verifies signatures of arbitrary data passed on to the contracts downstream.
Detailed spec can be found in this gist
Develop a smart contract ("Verifier Registry") for forwarding signed messages to other contracts
The contract can be integrated to the Ton Source project (a smart contract that accepts messages only from the verifier registry)
This grant is funded by Orbs as part of its ecosystem grant program.
Total: $2600
Explain to a new user in details how to run a TON Site from scratch.
Tutorial must cover these topics:
Currently, there are no detailed tutorials about running TON Sites. Many devs are asking questions in chats and forums because they are having some problems with running the site.
Total: $350
TON Dev Chat has many questions and complaints about smart-contract binaries (func, fift, lite-client). On every system binaries need their setup and dependencies to work appropriately (Windows, Debian, Ubuntu, MacOS x86, MacOS arm64). That provides complexity and tons of questions for new developers in the ecosystem and lower conversion to future smart-contracts developers.
Tal Kol already simplified the process with pre-built binaries. But it is still not enough to make your "first smart contract in one evening". If TON wants to provide a first-class experience for developers the process should be as simple as possible.
Tal Kol's experience could be used to make the releases versioning to split versions of TON binaries used by the one-line installer in the future. But today we could start from the MVP of the one-line installer.
To resolve this issue, other blockchains already have "one-line installer" solutions like Solana Install Tool:
Or Geth for Ethereum:
TON Installer Tool solution must provide a simple experience for anyone curious about TON and smart-contract development. It must help to avoid a problem where you have many binaries for many versions of OS, which you should update every 3 months!
master
branch of ton-blockchain
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.