01 Introduction to Scrypto 101
Glossary
dApps (decentralized Applications) - Decentralized Applications are applications built in a distributed ledger technology. Its decentralized aspects are noted by its permissionless attribute, allowing inclusive interaction with the application.
Decentralized Finance (DeFi) - Decentralized Finance, or “DeFi,” is a global marketplace of financial products, services, and assets that utilize Distributed Ledger Technology protocols to deliver them in a decentralized, autonomous, trustless, and permissionless manner.
Asset-Oriented - The term “Asset-Oriented” is a term that captures and centers the design philosophy developers should keep in mind when developing dApps. Since assets such as fungible or non-fungible tokens are primary concepts in DeFi, we have enabled assets as a platform feature. Developers should then orient their thinking as to how these assets should be utilized to create useful features.
Finite State Machine (FSM) - FSM's are computational models that have very strict and defined behaviours. Given a set of inputs only certain output states are possible.
Blueprint Catalog - Our on-chain cataloging feature allows developers to contribute to and access pieces of functionality that can be directly reused, configured, combined, and extended on-network. The network becomes a true shared computing environment, taking open source development into the decentralized era.
Developer Royalty - Contributions to the Blueprint Catalog provides Scrypto developers with a revenue source by rewarding reusability and useful code to others. In every transaction in which the Scrypto developer’s blueprint is used, the Scrypto developer receives a royalty fee determined by them.
Developer Experience - Having a DeFi engine that natively understands assets naturally embellishes developers with the freedom to focus on what they do best: developing great applications. When business logic and asset logic are decoupled, we can create a programming experience where the Radix Engine can handle the asset logic and most edge cases which leave the creative expressions of business logic to the developer. This significantly reduces the security overhead the developer has to think about and allows them to spend more time extending application features.
Atomic composability - Atomic Composability is the joining of both atomicity (idea that a single
transaction may contain many actions) and composability (ability to interoperate actions seamlessly together) . It’s the feature that makes it possible to combine any number of applications together in any shape or form and for all these parts to be combined atomically as a single transaction that either succeeds all together, or fails all together.
Resource - Resources, sometimes referred to as Tokens and/or Assets are native objects of the
platform. These objects can be made to be fungible or non fungible and are often used to attribute some utility or authority in a component.
Buckets - Buckets are Resource Containers and are used as a temporary storage for resources on the Radix platform. Unlike vaults which act like permanent storage, Buckets are transient, only exist within the duration of the transaction, and are primarily used to physically move resources.
Vaults - Vaults are Resource Containers and are used as permanent storage for resources on the Radix platform. All vaults must be stored within components.
Resource Containers - Resource Containers such as Buckets or Vaults are used to store and/or move resources.
Blueprints - Blueprints act like templates for components which define the logic and state of
components.
Components - Components are instantiated from blueprints and hold the state of the Blueprint - its data and resources. Once a component has been instantiated from a blueprint, it becomes active for use on the network by users or other components.
Package - Packages are a collection of blueprints. Often to build a full-stack dApp, requires multiple blueprints working together to define and structure the functionality of the dApp.
Resource Builder - Resource Builder is a utility used to build new resources on the Radix platform. It has the ability to create fungible or nonfungible resources and attribute Resource Flags to them such as the ability for the resource to be mintable, burnable, etc.
Resource Manager - Resource Manager is a type of resource used to manage resources on the Radix platform. It is used to set Resource Flags, review information, mint, and burn a particular resource.
Fungible Resource - Fungible Resource is a resource type in which many tokens can be minted from it, but all are interchangeable and identical to each other.
NonFungible Resource - NonFungible Resource is a resource type in which individually unique tokens can be minted. In addition to each token being unique, NonFungible Resource can be data that is attributed to them.
Resource Flags - Resource Flags are attributes given to resources. Examples of these attributes allow resources to be mintable, burnable, etc.
ResourceAddress - ResourceAddress is the identifier of a particular resource. It is used to target the particular Resource to perform some kind of action to it.
ComponentAddress - ComponentAddress is the identifier of a Global Component. It is used to target the Component to make method calls to it.
Local Component - Local Component or Child Component is a Component owned by a Parent
Component. Local Components are not globally addressable, lack a ComponentAddress, and therefore can only be called by the Parent Component.
Global Component - Global Components are components that are instantiated with a call to
`.globalize()`which makes the Component globally addressable and returns a ComponentAddress.
Access Rules - Access Rule is a Scrypto Resource used to define component level authorization.
Badge - A Badge is any type of resource used for authorization or authentication.
Proof - A Proof is a transient copy of a Resource that can only be used within the duration of the
transaction. Proofs are commonly used to prove ownership of a resource for authorization or
authentication.
Authorization Zone - The authorization zone is a layer above the transaction layer where it
temporarily stores a vector or collection of Proofs within the duration of the transaction. These Proofs are then used for authorization and/or authentication to satisfy conditions of an Access Rule. Proofs in the authorization zone can also be used by popping them from the authorization zone and passing the Proof directly to a method that accepts a Proof as an argument. This is called passing Proofs by intent.
Transaction Worktop - The transaction worktop is a space within the transaction layer where
resources are temporarily deposited into. The transaction worktop is a way for resources to be
accounted for before they are transferred to and stored inside a vault or burnt. A common usage of the transaction worktop is to assert that a number of tokens is available before it is deposited into a vault.
Transaction Manifest - The Transaction Manifest is a file that describes the set of instructions within a transaction to be submitted to the network. The set of instructions are specified to describe asset (or resource) movements and state changes.
Resim - This stands for Radix Engine SIMulator. It is the command-line tool you will use to interact with the local ledger simulator. Among other things, it allows you to configure accounts, call methods, and build transaction manifests.
Decentralized Finance (DeFi) - Decentralized Finance, or “DeFi,” is a global marketplace of financial products, services, and assets that utilize Distributed Ledger Technology protocols to deliver them in a decentralized, autonomous, trustless, and permissionless manner.
Asset-Oriented - The term “Asset-Oriented” is a term that captures and centers the design philosophy developers should keep in mind when developing dApps. Since assets such as fungible or non-fungible tokens are primary concepts in DeFi, we have enabled assets as a platform feature. Developers should then orient their thinking as to how these assets should be utilized to create useful features.
Finite State Machine (FSM) - FSM's are computational models that have very strict and defined behaviours. Given a set of inputs only certain output states are possible.
Blueprint Catalog - Our on-chain cataloging feature allows developers to contribute to and access pieces of functionality that can be directly reused, configured, combined, and extended on-network. The network becomes a true shared computing environment, taking open source development into the decentralized era.
Developer Royalty - Contributions to the Blueprint Catalog provides Scrypto developers with a revenue source by rewarding reusability and useful code to others. In every transaction in which the Scrypto developer’s blueprint is used, the Scrypto developer receives a royalty fee determined by them.
Developer Experience - Having a DeFi engine that natively understands assets naturally embellishes developers with the freedom to focus on what they do best: developing great applications. When business logic and asset logic are decoupled, we can create a programming experience where the Radix Engine can handle the asset logic and most edge cases which leave the creative expressions of business logic to the developer. This significantly reduces the security overhead the developer has to think about and allows them to spend more time extending application features.
Atomic composability - Atomic Composability is the joining of both atomicity (idea that a single
transaction may contain many actions) and composability (ability to interoperate actions seamlessly together) . It’s the feature that makes it possible to combine any number of applications together in any shape or form and for all these parts to be combined atomically as a single transaction that either succeeds all together, or fails all together.
Resource - Resources, sometimes referred to as Tokens and/or Assets are native objects of the
platform. These objects can be made to be fungible or non fungible and are often used to attribute some utility or authority in a component.
Buckets - Buckets are Resource Containers and are used as a temporary storage for resources on the Radix platform. Unlike vaults which act like permanent storage, Buckets are transient, only exist within the duration of the transaction, and are primarily used to physically move resources.
Vaults - Vaults are Resource Containers and are used as permanent storage for resources on the Radix platform. All vaults must be stored within components.
Resource Containers - Resource Containers such as Buckets or Vaults are used to store and/or move resources.
Blueprints - Blueprints act like templates for components which define the logic and state of
components.
Components - Components are instantiated from blueprints and hold the state of the Blueprint - its data and resources. Once a component has been instantiated from a blueprint, it becomes active for use on the network by users or other components.
Package - Packages are a collection of blueprints. Often to build a full-stack dApp, requires multiple blueprints working together to define and structure the functionality of the dApp.
Resource Builder - Resource Builder is a utility used to build new resources on the Radix platform. It has the ability to create fungible or nonfungible resources and attribute Resource Flags to them such as the ability for the resource to be mintable, burnable, etc.
Resource Manager - Resource Manager is a type of resource used to manage resources on the Radix platform. It is used to set Resource Flags, review information, mint, and burn a particular resource.
Fungible Resource - Fungible Resource is a resource type in which many tokens can be minted from it, but all are interchangeable and identical to each other.
NonFungible Resource - NonFungible Resource is a resource type in which individually unique tokens can be minted. In addition to each token being unique, NonFungible Resource can be data that is attributed to them.
Resource Flags - Resource Flags are attributes given to resources. Examples of these attributes allow resources to be mintable, burnable, etc.
ResourceAddress - ResourceAddress is the identifier of a particular resource. It is used to target the particular Resource to perform some kind of action to it.
ComponentAddress - ComponentAddress is the identifier of a Global Component. It is used to target the Component to make method calls to it.
Local Component - Local Component or Child Component is a Component owned by a Parent
Component. Local Components are not globally addressable, lack a ComponentAddress, and therefore can only be called by the Parent Component.
Global Component - Global Components are components that are instantiated with a call to
`.globalize()`which makes the Component globally addressable and returns a ComponentAddress.
Access Rules - Access Rule is a Scrypto Resource used to define component level authorization.
Badge - A Badge is any type of resource used for authorization or authentication.
Proof - A Proof is a transient copy of a Resource that can only be used within the duration of the
transaction. Proofs are commonly used to prove ownership of a resource for authorization or
authentication.
Authorization Zone - The authorization zone is a layer above the transaction layer where it
temporarily stores a vector or collection of Proofs within the duration of the transaction. These Proofs are then used for authorization and/or authentication to satisfy conditions of an Access Rule. Proofs in the authorization zone can also be used by popping them from the authorization zone and passing the Proof directly to a method that accepts a Proof as an argument. This is called passing Proofs by intent.
Transaction Worktop - The transaction worktop is a space within the transaction layer where
resources are temporarily deposited into. The transaction worktop is a way for resources to be
accounted for before they are transferred to and stored inside a vault or burnt. A common usage of the transaction worktop is to assert that a number of tokens is available before it is deposited into a vault.
Transaction Manifest - The Transaction Manifest is a file that describes the set of instructions within a transaction to be submitted to the network. The set of instructions are specified to describe asset (or resource) movements and state changes.
Resim - This stands for Radix Engine SIMulator. It is the command-line tool you will use to interact with the local ledger simulator. Among other things, it allows you to configure accounts, call methods, and build transaction manifests.