diff --git a/docs/dApps.md b/docs/dApps.md deleted file mode 100644 index 3e4f61ad1..000000000 --- a/docs/dApps.md +++ /dev/null @@ -1,12 +0,0 @@ -# Decentralized applications (dApps) - -One of the main features of blockchains is the _decentralization_: each transaction sent is verified by multiple nodes and its validation process does not rely on a single trusted third party. -Decentralized applications (dApps or Dapps) take advantage of these features to create applications that are independent, transparent, and trustless. - -In general, dApps have two parts: - -- An on-chain component that consists of one or more smart contracts -- An off-chain component that can act as a user interface to simplify interaction with the on-chain component, run off-chain processing, and get information from the outside world - -The off-chain component can be nearly any kind of program, including a web application, mobile or desktop app, or command-line interface. -It relies on wallets to interact with the smart contract on behalf of a user's Tezos account. diff --git a/docs/dApps.mdx b/docs/dApps.mdx new file mode 100644 index 000000000..f8f808787 --- /dev/null +++ b/docs/dApps.mdx @@ -0,0 +1,52 @@ +--- +title: Decentralized applications (dApps) +authors: Benjamin Pilia, Tim McMackin +last_update: + date: 12 January 2024 +--- + +import LucidDiagram from '@site/src/components/LucidDiagram'; + +One of the main features of blockchains is _decentralization_: each transaction is verified by multiple nodes and its validation process does not rely on a single trusted third party. +Decentralized applications (dApps or Dapps) take advantage of these features to create applications that are independent, transparent, and trustless. + +In general, dApps have these parts: + +- **Frontend**: An off-chain component that can act as a user interface to simplify interaction with the on-chain component, run off-chain processing, and get information from sources that are not available to the on-chain component +- **Middleware**: Optionally, an [indexer](./developing/information/indexers) to interpret the backend information and provide it in a more convenient format for the front-end component +- **Backend**: An on-chain component that consists of one or more [smart contracts](./smart-contracts) + +The off-chain component can be nearly any kind of program, including a web application, mobile or desktop app, or command-line interface. +It relies on wallets and tools to interact with the smart contract on behalf of a user's Tezos account. + + + +Some of these tools that allow an off-chain component to interact with smart contracts include: + +- [Taquito](./dApps/taquito), an SDK for JavaScript/TypeScript applications +- The [Tezos SDK for Unity](./unity), a toolkit for Unity applications +- [Taqueria](https://taqueria.io/), a development platform for dApps + +## Sample dApps + +For example dApps, see [Sample dApps](./dApps/samples). + +## Best practices + +Good programming and design practices make dApps easier to use and provide a better user experience. +See [Best practices and avoiding flaws](./dApps/best-practices). + +## dApp tasks + +For information on typical tasks that dApps do, see: + +- [Connecting to wallets](./dApps/wallets) +- [Sending transactions](./dApps/sending-transactions) + +## Tutorials + +These tutorials cover dApps of different complexities: + +- For a simple dApp, see [Build your first app on Tezos](./tutorials/build-your-first-app) +- For a dApp that mints NFTs, see [Mint NFTs from a web app](./tutorials/create-an-nft/nft-web-app) +- For a large dApp that allows users to buy and sell NFTs, see [Build an NFT marketplace](./tutorials/build-an-nft-marketplace) diff --git a/sidebars.js b/sidebars.js index f7382e384..dae502ddc 100644 --- a/sidebars.js +++ b/sidebars.js @@ -176,10 +176,10 @@ const sidebars = { { type: 'category', label: 'Decentralized applications (dApps)', - // link: { // TODO - // id: 'dApps', - // type: 'doc', - // }, + link: { + id: 'dApps', + type: 'doc', + }, items: [ // 'dApps/first-dapp', // TODO 'dApps/samples',