diff --git a/docs/academy/academy-intro/academy-home.md b/docs/academy/academy-intro/academy-home.md index 1cd48bf441..eb8badda60 100644 --- a/docs/academy/academy-intro/academy-home.md +++ b/docs/academy/academy-intro/academy-home.md @@ -19,6 +19,11 @@ import ChallengesPlotFilters from '@site/static/img/academy/challenges-plot-filt import Pools from '@site/static/img/academy/pools.png'; import CreatingYourFirstPlot from '@site/static/img/academy/Intro2Farming.png'; +import PrimitivesOverview from '@site/static/img/academy/primitives.png'; +import NFTs from '@site/static/img/academy/nft.png'; +import CATs from '@site/static/img/academy/cat.png'; +import DIDs from '@site/static/img/academy/did.png'; + Welcome to Chia Academy, the scholarly hub for delving deep into Chia blockchain technology. In an age characterized by rapid digital transformation, this institution offers a comprehensive exploration of the Chia blockchain, dissecting its technical intricacies, real-world applications, and the nuances of its secure data handling. As a Chia Academy student, you will dive into the core concepts and functionalities of the Chia blockchain. ## Courses @@ -236,6 +241,71 @@ Below, you'll find several curated courses covering the everything from the basi --- +#### Primitives + + + +--- + ## How the courses work Check out the [Academy Overview](https://docs.chia.net/academy-overview) page for a breakdown on how the courses are presented and organized. diff --git a/docs/academy/primitives/academy-cat.md b/docs/academy/primitives/academy-cat.md new file mode 100644 index 0000000000..6fc35e8af5 --- /dev/null +++ b/docs/academy/primitives/academy-cat.md @@ -0,0 +1,97 @@ +--- +title: CATs +slug: /academy-cat +--- + +In this lesson, we talk about Chia Asset Tokens, and how they can be used. + +## Learning objectives + +- **Issuance**: Understand the basic types of issuance rules. + +--- + +## Content + +
+ +
+ +--- + +## Script + +
+ + Expand for the full script + +0:00 +A Chia Asset Token, or CAT, is a type of fungible token that can be minted from XCH. These tokens can take many different forms from a separate form of currency, to representing a collection of identical assets. + +0:20 +A CAT can have different properties, determined by it's TAIL, or Token Asset Issuance Limiter. This TAIL determines how the CAT is issued, how it can be subsequently spent, and whether it can be melted back into XCH. + +0:40 +A CAT wraps an inner puzzle that controls ownership of the coin. This is typically the standard transaction puzzle to facilitate sending the CATs to a Chia wallet. For the TAIL, there are 2 standard puzzles, Single-Issuance, and Multi-Issuance. +The Single-Issuance TAIL is more restrictive and is designed to make sure the supply is maintained. + +1:00 +With this TAIL, only the CATs minted at creation are valid, and they cannot be melted back into XCH. +The Multi-Issuance TAIL allows more identical CATs to be issued in the future, as long as the original issuance key is used. This is useful if the total number of tokens needed is unknown. + +1:20 +While these are the standard puzzles, a TAIL can be customized to allow any desired behavior. + +
+ +--- + +## Common gotchas + +- **Fungibility:** CATs are fungible, meaning they can be exchanged for each other at will. There are no editions, lot numbers, or anything else that would differentiate two CATs from the same issuance. +- **Melting:** Melting a CAT (if allowed by the TAIL) converts the underlying value of the CAT back to XCH which can then be used for other coins. A CAT can only ever be melted into the same amount of XCH used to create the CAT. + +--- + +## Knowledge check + +:::tip Question 1 - CATs vs. NFTs + +True or False; A CAT is a special type of NFT. + +::: + +
+ + Answer (expand when ready to see the answer) + +False. A CAT is fungible, whereas an NFT is non-fungible and represents a unique item. + +
+ +:::tip Question 2 - TAILs + +What are the standard types of TAILs? + +::: + +
+ + Answer (expand when ready to see the answer) + +Single-Issuance and Multi-Issuance. + +
+ +--- + +## Additional resources + +### Links + +- More about [primitives](https://docs.chia.net/guides/primitives/): guides for each primitive, and how to use them. +- In depth [CAT overview](https://docs.chia.net/guides/cat-creation-tutorial/): describing the CAT standard, and how to issue them. +- Chialisp [detailed documentation](https://chialisp.com/): detailed information on all aspects of chialisp. +- Support [in discord](https://discord.gg/chia): for further support join our discord server and ask in the #chialisp or #support channels. + +--- diff --git a/docs/academy/primitives/academy-did.md b/docs/academy/primitives/academy-did.md new file mode 100644 index 0000000000..e64365c719 --- /dev/null +++ b/docs/academy/primitives/academy-did.md @@ -0,0 +1,89 @@ +--- +title: DIDs +slug: /academy-did +--- + +This lesson is an overview of DIDs. + +## Learning objectives + +- **Identity Ownership**: Understand the differences in data ownership between decentralized and non-decentralized identities. + +--- + +## Content + +
+ +
+ +--- + +## Script + +
+ + Expand for the full script + +0:00 +DIDs, or decentralized identifiers, provide a way to identify users or organizations in a decentralized way. DIDs can be used as account identifiers. + +0:20 +For example, someone using a specific service would create a DID associated with that service that they control. They could use this DID to authorize access to the service, and manage assets the service may provide and permissions it may request. + +0:40 +In non-decentralized environments, the account information is controlled and owned by the service provider. With decentralized identities, the identity and the data associated with it, are controlled and owned by the user. This allows the user to use the DID with many different services and in many different contexts, and control the information associated with it. + +
+ +--- + +## Common gotchas + +- **DIDs are NFTs:** DIDs are actually a special type of NFT. This ensures uniqueness and that only one entitiy has control of any one DID. +- **DID limits:** A user can generate many DIDs and associate each one with different services or assets. + +--- + +## Knowledge check + +:::tip Question 1 - DID issuance + +True or False; A DID is issued by a service provider to identify a user. + +::: + +
+ + Answer (expand when ready to see the answer) + +False. The DID is created by the user, and associated with a service provider. This allows the user to use one DID for many different services. + +
+ +:::tip Question 2 - DID limits + +How many DIDs can a user have? + +::: + +
+ + Answer (expand when ready to see the answer) + +There is no practical limit to the number of DIDs a user can create. + +
+ +--- + +## Additional resources + +### Links + +- More about [primitives](https://docs.chia.net/guides/primitives/): guides for each primitive, and how to use them. +- In depth [DID guide](https://docs.chia.net/guides/nft-intro/): how to create a DID. +- Chialisp [detailed documentation](https://chialisp.com/): detailed information on all aspects of chialisp. +- Support [in discord](https://discord.gg/chia): for further support join our discord server and ask in the #chialisp or #support channels. + +--- diff --git a/docs/academy/primitives/academy-nft.md b/docs/academy/primitives/academy-nft.md new file mode 100644 index 0000000000..173960790d --- /dev/null +++ b/docs/academy/primitives/academy-nft.md @@ -0,0 +1,114 @@ +--- +title: NFTs +slug: /academy-nft +--- + +In this lesson, we talk about what an NFT is, and some examples of how it can be used. + +## Learning objectives + +- **Fungibility**: Understand what makes something fungible. +- **Uses and Value**: Understand the use of NFTs, and what makes something valuable. + +--- + +## Content + +
+ +
+ +--- + +## Script + +
+ + Expand for the full script + +0:00 +NFTs, or non-fungible tokens, can be used to provide proof of ownership, handle licenses and royalties, and ensure uniqueness for digital entities and even real-world items. + +0:20 +Let's start at the basics. An item is non-fungible if it can not be interchanged for another identical item. For example, an original painting, a driver's license, or even a family heirloom. These items are unique and can't be substituted for something of "equal value" since any other item would not have the same properties. + +0:40 +Since digital items can be inherently duplicated, we need to pair the item with something that isn't. An NFT is a token on the blockchain that represents an item. This item could be physical and the NFT is a sort of registry of ownership on the blockchain, or the item could be digital, with the NFT serving as the non-interchangeable component. + +1:00 +NFTs can be used to provide ownership provenance, such as the sale and resale of digital art. They can also provide a mechanism of distributing royalties to the original author upon resale. + +1:20 +NFTs can also provide a method of verifying and transferring more ethereal concepts such as digital memberships and ecosystem specific assets. +It's an important point that just because something is non-fungible, it is not inherently valuable. For example, a family heirloom is non-fungible, and may have emotional value to one person, + +1:40 +but it does not have true value outside of a specific context. NFTs are a tool that is useful for providing a new way to work with digital items. They do not themselves create value. + +
+ +--- + +## Common gotchas + +- **Size Limitations:** Because there is a limit to how large a single transaction can be, it is very rare to have the digital item itself embedded in the NFT. The token will instead contain a reference to the item that is hosted elsewhere. +- **NFTs are Data:** It is common to think of some type of image or art when thinking of NFTs. This is a very limited view. NFTs are essentially data objects that can contain references to other digital assets, or simply be the data object itself. The referenced asset may be a piece of digital art, but it could just as easily be a document, contract, application, etc. + +--- + +## Knowledge check + +:::tip Question 1 - Fungibility + +What makes something fungible? + +::: + +
+ + Answer (expand when ready to see the answer) + +Something is fungibile if it can be easily substituted for another item. + +
+ +:::tip Question 2 - Physical vs. Digital + +True or False; An NFT can really only represent digital assets. + +::: + +
+ + Answer (expand when ready to see the answer) + +False. An NFT can also represent physical assets, and serves as a registry on the blockchain. + +
+ +:::tip Question 3 - Value + +True or False; Minting and NFT makes the underlying asset valuable. + +::: + +
+ + Answer (expand when ready to see the answer) + +False. Simply being an NFT does not make it valuable. NFTs are a tool to handle digital assets in a new way. + +
+ +--- + +## Additional resources + +### Links + +- More about [primitives](https://docs.chia.net/guides/primitives/): guides for each primitive, and how to use them. +- In depth [NFT guide](https://docs.chia.net/guides/nft-intro/): how to mint an NFT. +- Chialisp [detailed documentation](https://chialisp.com/): detailed information on all aspects of chialisp. +- Support [in discord](https://discord.gg/chia): for further support join our discord server and ask in the #chialisp or #support channels. + +--- diff --git a/docs/academy/primitives/primitives-overview.md b/docs/academy/primitives/primitives-overview.md new file mode 100644 index 0000000000..1c0875d91a --- /dev/null +++ b/docs/academy/primitives/primitives-overview.md @@ -0,0 +1,106 @@ +--- +title: Primitives Overview +slug: /primitives-overview +--- + +In this lesson, we talk about what a primitive is, and how it can be used. + +## Learning objectives + +- **Primitives**: Recognize the basic Chia primitives. +- **Open-Source**: Understand how open-source improves Chia through community involvement. + +--- + +## Content + +
+ +
+ +--- + +## Script + +
+ + Expand for the full script + +0:00 +Primitives are what we call commonly used structures in Chialisp. They are essentially features that are specifically supported with native methods in our various libraries, and have defined structures to ensure compatibility. + +0:20 +These Primitives include features commonly found in other blockchains such as NFTs and DIDs, but also include unique features such as CATs, Offers, Clawback, and Verifiable Credentials. +These primitives are the building blocks to creating efficient blockchain powered applications. + +0:40 +Each primitive represents a Chialisp puzzle that adheres to the current standard for that feature. These standards are submitted and can be modified by the community through the CHIP process, whereby new features, or modifications to existing primitives can be submitted and reviewed by community members, in keeping with the open-source nature of the Chia Blockchain. + +1:00 +Many of our unique primitives have come out of this process and it ensures that as development matures, the blockchain will evolve to satisfy the needs of developers in a multitude of use-cases. + +
+ +--- + +## Common gotchas + +- **Primitives as Standards:** Primitives are pre-defined features that adhere to certain standards agreed upon by the community. That does not mean that custom bespoke features cannot be developed or used for a specific use-case, even if it is not widely used. Chialisp allows any developer to create custom puzzles that map to their specific use-case, if an existing primitive does not quite fit. + +--- + +## Knowledge check + +:::tip Question 1 - Features + +True or False; Primitives are standardized features of the Chia Blockchain. + +::: + +
+ + Answer (expand when ready to see the answer) + +True. Primitives are what we call features that have defined standards, as agreed upon by the community. + +
+ +:::tip Question 2 - CHIPs? + +What does CHIP stand for? + +::: + +
+ + Answer (expand when ready to see the answer) + +CHIP stands for CHia Improvement Proposal. It is a way for the community of developers to propose new features, or changes to existing features. + +
+ +:::tip Question 3 - Custom Features + +True or False; Developers should only use pre-defined primitives. + +::: + +
+ + Answer (expand when ready to see the answer) + +False. Primitives are meant to provide common and useful building blocks that are flexible to cover many use-cases. However, there may be instances where the existing primitives don't provide the needed functionality and a custom puzzle will be needed. + +
+ +--- + +## Additional resources + +### Links + +- More about [primitives](https://docs.chia.net/guides/primitives/): guides for each primitive, and how to use them. +- Chialisp [detailed documentation](https://chialisp.com/): detailed information on all aspects of chialisp. +- Support [in discord](https://discord.gg/chia): for further support join our discord server and ask in the #chialisp or #support channels. + +--- diff --git a/sidebars.js b/sidebars.js index 6fbbb5b831..60d4f98434 100644 --- a/sidebars.js +++ b/sidebars.js @@ -487,5 +487,24 @@ module.exports = { 'academy/blockchain-basics/security-basics', ], }, + { + type: 'category', + label: 'Primitives', + collapsible: true, + collapsed: true, + link: { + type: 'generated-index', + slug: '/academy/primitives', + title: 'Primitives', + description: + 'These lessons serve as an overview of the natively supported features available on the Chia Blockchain.', + }, + items: [ + 'academy/primitives/primitives-overview', + 'academy/primitives/academy-nft', + 'academy/primitives/academy-did', + 'academy/primitives/academy-cat', + ], + }, ], }; diff --git a/static/img/academy/cat.png b/static/img/academy/cat.png new file mode 100644 index 0000000000..7f22cc4897 Binary files /dev/null and b/static/img/academy/cat.png differ diff --git a/static/img/academy/did.png b/static/img/academy/did.png new file mode 100644 index 0000000000..c1409bb7a1 Binary files /dev/null and b/static/img/academy/did.png differ diff --git a/static/img/academy/nft.png b/static/img/academy/nft.png new file mode 100644 index 0000000000..9038fffa4c Binary files /dev/null and b/static/img/academy/nft.png differ diff --git a/static/img/academy/primitives.png b/static/img/academy/primitives.png new file mode 100644 index 0000000000..e5a1160d2d Binary files /dev/null and b/static/img/academy/primitives.png differ