The Plutonomicon is a developer-driven guide to the Plutus smart contract language in practice.
Since this ecosystem is moving at a breakneck speed, we ask that ANY information posted that is not confirmed to work on chain be labelled as 🔧 work in progress
.
We currently provide the following resources, broadly organized by topic.
- The Fundamentals of Plutus, which gives a brief introduction to the Plutus language.
- Plutus from a Transaction Perspective, which gives another perspective to the environment Plutus runs in.
- Plutus Numeric Hierarchy, which gives an overview of the Plutus numerical type class stack, as well as the extensions to it provided by
plutus-numeric
. - User guide to
plutus-numeric
, which gives a more 'example-driven' explanation for how to do certain common tasks usingplutus-numeric
. - How Stake Validators Actually Work, which gives an explanation of 'Stake Validators'.
- Forward Minting Policy. Also described in another writeup. Some caution is required, as you may not wish to directly reference a script to obtain a hash used to identify the two scripts, as this method details.
- Come and Go Proof Tokens
- State Thread Token Pattern
- DistributedMap, describing an on-chain implementation of key-value mappings. This is naive, and mostly designed for conceptual illustration.
- Consistency of a Distributed Map, which explains some ways of operating on a distributed map.
- Stick Breaking Set, describing an on-chain method of proving presence or absence in a set.
- On-Chain Association List With Constant Time Insert-Removal, describing a pattern that can be used to replicate account-style maps without breaking transaction size limits. This is the optimized version of the naive version of that data structure.
- Transaction Tokens provide an method of deferring validation to minting policies for the purpose of validating entire transactions rather than the unlocking of individual UTxOs.
- The Transaction Token Pattern document introduces the pattern.
- The Transaction Token Protocol Architecture document introduces a conceptual and practical framework leveraging the pattern for specifying and implementing protocols.
- The Protocol Category Sketch document sketches a formalism to establish a formalism that places protocols described according the the Architecture into the language of symmetric monoidal categories, and works through some examples of how wiring diagrams and aid specification and implementation.
- Staying In Bounds, which describes the testing interface for Plutus on-chain size provided by
plutus-size-check
.
- Reducing Plutus Script Sizes
- Optimizations to reduce CPU and Mem consumption
- Shrinker (shrinker is currently unmaintained)
To discuss the projects and the content under the Plutonomicon umbrella, join our Discord: https://discord.gg/722KnTC8jF
If you'd like to run a live version of the website locally:
nix run
As you edit1 and save the Markdown files, the browser view should update instantly without requiring a manual refresh. Run nix build
to build the statically generated website. See Emanote guide for further information.
Please note the Markdown writing conventions:
- There must be zero or one level 1 heading (
# A heading
) as the first line.- If a level 1 heading is not specified, title will be derived from the filename.
- All other headings must be level 2 or greater.
Footnotes
-
Try Obsidian or VSCode with vscode-memo for editing. ↩