{"id":21529214,"url":"https://github.com/everx-labs/debots","last_synced_at":"2025-04-09T23:51:13.094Z","repository":{"id":40943482,"uuid":"345950745","full_name":"everx-labs/debots","owner":"everx-labs","description":"Debots","archived":false,"fork":false,"pushed_at":"2023-05-14T06:51:27.000Z","size":635,"stargazers_count":18,"open_issues_count":8,"forks_count":21,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-09T23:51:07.014Z","etag":null,"topics":["blockchain","debots","everscale","smart-contracts"],"latest_commit_sha":null,"homepage":"","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/everx-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-03-09T09:25:11.000Z","updated_at":"2024-02-22T18:04:16.000Z","dependencies_parsed_at":"2024-04-16T15:43:05.564Z","dependency_job_id":null,"html_url":"https://github.com/everx-labs/debots","commit_stats":null,"previous_names":["everx-labs/debots"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2Fdebots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2Fdebots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2Fdebots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2Fdebots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/everx-labs","download_url":"https://codeload.github.com/everx-labs/debots/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248131455,"owners_count":21052819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","debots","everscale","smart-contracts"],"created_at":"2024-11-24T01:56:15.693Z","updated_at":"2025-04-09T23:51:13.068Z","avatar_url":"https://github.com/everx-labs.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/tonlabs/debots\"\u003e\u003cimg src=\"assets/debot-circle.svg\" height=\"60\"/\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eDeBots\u003c/h1\u003e\n\u003cp align=\"center\"\u003eNext gen DApps where you don't need to develop your frontend\u003c/p\u003e\n\n# Table of Content\n- [Table of Content](#table-of-content)\n- [What is a DeBot?](#what-is-a-debot)\n  - [Basic terms](#basic-terms)\n  - [DeBot interfaces](#debot-interfaces)\n- [Prerequisites](#prerequisites)\n    - [everdev](#everdev)\n    - [Tonos-cli](#tonos-cli)\n- [DeBots](#debots)\n- [How to try DeBot](#how-to-try-debot)\n- [Write your first DeBot](#write-your-first-debot)\n  - [How to build DeBot](#how-to-build-debot)\n  - [How to deploy](#how-to-deploy)\n    - [Deploy to TON OS SE](#deploy-to-ton-os-se)\n- [How to Run](#how-to-run)\n  - [Run DeBot in Surf](#run-debot-in-surf)\n    - [DevNet](#devnet)\n    - [Free TON](#free-ton)\n  - [Run DeBot in tonos-cli](#run-debot-in-tonos-cli)\n    - [TON OS SE](#ton-os-se)\n    - [DevNet](#devnet-1)\n    - [Free TON](#free-ton-1)\n    - [DEBUG Mode](#debug-mode)\n- [Further Reading](#further-reading)\n\n# What is a DeBot?\n\nDeBot (Decentralized Bot) is an intuitive, no-prior-knowledge-required interface for smart\ncontracts on TON Blockchain.\n\nBlockchain technology is complex and can be hard to learn for users without experience in the field or a technical background. With DeBots we aim to simplify the interactions required to achieve a user’s goals on the blockchain, and streamline the development process of blockchain-based services, while maintaining the level of security expected of such products.\n\nAt its most basic a DeBot is a secure chat-based interface that allows a user to interact with a smart contract on the blockchain and access its various functions in the form of a dialogue.\n\n## Basic terms\n\n- **DeBot** - a smart contract facilitating conversation-like flow communication with a target smart contract.\n- **Target smart contract** - a smart contract for which DeBot is created. DeBot is an interface to this smart contract.\n- **DeBot browser** - a program that executes DeBot and parses its answer using DeBot protocol.\n- **DeBot protocol** - a set of rules describing the communication between browser and DeBot: how to call DeBot functions and how to interpret its answers.\n\nDeBot is deployed to the blockchain. DeBot browser runs on client. It downloads DeBot code and runs it inside the engine.\n\n## DeBot interfaces\n\nTo fulfill their functions as a user interface DeBots must be able to facilitate a number of interactions between the user, the user's device and the target smart contract on the blockchain:\n\n- receive input from users;\n- query info about other smart contracts;\n- query transactions and messages;\n- receive data from external subsystems (like file system) and external devices (like NFC, camera and so on);\n- call external function libraries that allow to do operations that are not supported by VM. For example, work with json, convert numbers to string and vice versa, encrypt/decrypt/sign data.\n\nThese needs are covered in various DeBot Interfaces (DInterfaces) which can be used in DeBots and which must be supported in DeBot Browsers.\n\nTo use an interface DeBot should import source file with DInterface declaration and call its methods as any other smart contract methods in TON - by sending internal messages to interface address, which is unique and explicitly defined for every interface.\n\nEvery DInterface must be discussed and accepted by DeBot Interface Specifications (DIS) Consortium before it can be used in DeBots. All accepted interfaces are published in the repo:\n\n[https://github.com/tonlabs/DeBot-IS-consortium](https://github.com/tonlabs/DeBot-IS-consortium)\n\n# Prerequisites\n\n### everdev\n\nTo build DeBots install [`everdev`](https://github.com/tonlabs/everdev):\n\n```bash\nnpm install -g everdev\n```\n\n### Tonos-cli\n\nTo run and debug debots install [`tonos-cli`](https://github.com/tonlabs/tonos-cli):\n\nNote: minimal required version \u003e= 0.11.4.\n\nInstall using `everdev`:\n\n```bash\neverdev tonos-cli install\n```\n\nOr download binaries from here:\n\n- `linux` [http://sdkbinaries.tonlabs.io/tonos-cli-0_11_4-linux.zip](http://sdkbinaries.tonlabs.io/tonos-cli-0_11_4-linux.zip)\n- `macos` [http://sdkbinaries.tonlabs.io/tonos-cli-0_11_4-darwin.zip](http://sdkbinaries.tonlabs.io/tonos-cli-0_11_4-darwin.zip)\n- `windows` [http://sdkbinaries.tonlabs.io/tonos-cli-0_11_4-win32.zip](http://sdkbinaries.tonlabs.io/tonos-cli-0_11_4-win32.zip)\n\n\n# DeBots\n\n- [`helloworld`](https://github.com/tonlabs/debots/tree/main/helloworld) - Hello World DeBot. Can be used as a template for new DeBots.\n- [`multisig`](https://github.com/tonlabs/debots/tree/main/multisig) - DeBot for multisignature wallet. Uses several basic DeBot interfaces: Terminal, AddressInput, AmountInput, ConfirmInput. It supports all functions of the multisig wallet contract, such as submitting and confirming transactions and viewing wallet information.\n\n# How to try DeBot\n\nYou can start by trying out [`multisig`](https://github.com/tonlabs/debots/tree/main/multisig) DeBot. It's already deployed to [net.ton.dev](http://net.ton.dev) and can be called through any DeBot browser that supports it.\n\nTo try it out in TON Surf, go to https://beta.ton.surf/\n\nTo try it out in `tonos-cli` call:\n\n```bash\n./tonos-cli --url net.ton.dev debot fetch 0:09403116d2d04f3d86ab2de138b390f6ec1b0bc02363dbf006953946e807051e\n```\n\nIf you do not have a multisig wallet to try it out with, you can use the following test wallet address and seed phrase:\n\n```bash\naddress: 0:5d3d540ebeb545be95ad05e22efc0ad3cb2e0172884fba2cedfde445ef16ebf9\nseed phrase: final axis aware because grace sort giant defy dragon blouse motor virus\n```\n\n\u003e Please don't empty out its balance, so others can try it out too.\n\n# Write your first DeBot\n\nYou can start from the [`helloworld`](https://github.com/tonlabs/debots/tree/main/helloworld) DeBot. It can be used as a template for new DeBots.\n\nIt uses only the Terminal interface (prints string, receives string from user and prints the received value).\n\nTo use any additional interfaces, their source files have to be imported along with Terminal. Accepted interfaces can be found [here](https://github.com/tonlabs/DeBot-IS-consortium).\n\n## How to build DeBot\n\nDeBot can be built as any other smart contract using [`everdev`](https://github.com/tonlabs/everdev):\n\n```bash\neverdev sol compile debot.sol\n```\n\n## How to deploy\n\n### Deploy to TON OS SE\n\nStart [`TON OS SE`](https://docs.ton.dev/86757ecb2/p/19d886-ton-os-se):\n\n    `everdev se start`\n\n(docker required)\n\nRun deploy script inside DeBot folder:\n\n```bash\ndeploy_debot.sh\n```\n\n# How to Run\n\n## Run DeBot in Surf\n\n### DevNet\n\nOpen the link: `https://uri.ton.surf/debot?address=\u003caddress\u003e\u0026net=devnet`\n\n### Free TON\n\nOpen the link: `https://uri.ton.surf/debot?address=\u003caddress\u003e`\n\n\n## Run DeBot in tonos-cli\n\n### TON OS SE\n\n```bash\n./tonos-cli --url http://127.0.0.1 debot fetch \u003caddress\u003e\n\n```\n\n### DevNet\n\n```bash\n./tonos-cli --url net.ton.dev debot fetch \u003caddress\u003e\n\n```\n\n### Free TON\n\n```bash\n./tonos-cli --url main.ton.dev debot fetch \u003caddress\u003e\n\n```\n\n### DEBUG Mode\n\n```bash\n./tonos-cli debot --debug fetch \u003caddress\u003e\n\n```\n\nNote: debug mode generates a lot of terminal output.\n\n# Further Reading\n\nDeBot specifications can be found here: [https://docs.ton.dev/86757ecb2/p/72f1b7-debot-specifications](https://docs.ton.dev/86757ecb2/p/72f1b7-debot-specifications)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feverx-labs%2Fdebots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feverx-labs%2Fdebots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feverx-labs%2Fdebots/lists"}