Onboarding: Intermediate lectures (+ runnable Aiken and Mesh examples) - #1951
Merged
paulobressan merged 93 commits intoSep 4, 2026
Merged
Conversation
paulobressan
force-pushed
the
1921-onboarding-intermediate-lectures
branch
3 times, most recently
from
August 19, 2026 14:43
f68e9c6 to
1854fde
Compare
paulobressan
force-pushed
the
1921-onboarding-intermediate-lectures
branch
from
August 19, 2026 14:49
1854fde to
bd6aab8
Compare
paulobressan
marked this pull request as ready for review
August 20, 2026 17:35
rober-m
requested changes
Aug 24, 2026
rober-m
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed only until "what is a validator"
rober-m
requested changes
Aug 24, 2026
rober-m
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed only until "what is a validator"
rober-m
requested changes
Aug 26, 2026
rober-m
left a comment
Collaborator
There was a problem hiding this comment.
Checked until lecture 5 (inclusive)
rober-m
requested changes
Aug 26, 2026
rober-m
left a comment
Collaborator
There was a problem hiding this comment.
Checked until lecture 5 (inclusive)
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…alidator.md Co-authored-by: Robertino <github@roberm.com>
…-context.md Co-authored-by: Robertino <github@roberm.com>
…urposes.md Co-authored-by: Robertino <github@roberm.com>
…urposes.md Co-authored-by: Robertino <github@roberm.com>
…urposes.md Co-authored-by: Robertino <github@roberm.com>
Co-authored-by: Robertino <github@roberm.com>
Co-authored-by: Robertino <github@roberm.com>
Co-authored-by: Robertino <github@roberm.com>
Co-authored-by: Robertino <github@roberm.com>
Co-authored-by: Robertino <github@roberm.com>
…urposes.md Co-authored-by: Robertino <github@roberm.com>
…urposes.md Co-authored-by: Robertino <github@roberm.com>
…urposes.md Co-authored-by: Robertino <github@roberm.com>
…urposes.md Co-authored-by: Robertino <github@roberm.com>
…rdano-foundation/developer-portal into 1921-onboarding-intermediate-lectures # Conflicts: # docs/developers/onboarding/lectures/intermediate/7-parameters.md # docs/developers/onboarding/lectures/intermediate/8-validator-purposes.md
rober-m
requested changes
Sep 2, 2026
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
…tegration.md Co-authored-by: Robertino <github@roberm.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intermediate - Onboarding Section
Nine lectures taking a newcomer from "what is a smart contract" to a contract they wrote, compiled, tested, and ran on Preview. Same shape as the Beginner track: one idea per lecture, a diagram, and something you can run.
Intermediate Lectures (docs/developers/onboarding/lectures/intermediate/)
All nine build one worked example, a vault that releases funds only to the owner who signs.
On-chain vs off-chain: Your code prepares, the chain enforces.
Set up your tools: A language and a compiler, and the contract project the next six lectures fill.
What a validator is: A yes/no gatekeeper on a locked UTxO.
Datum & redeemer: The data you hand a contract.
The transaction context: Everything else a contract can look at before it decides.
Testing: Tracing, unit tests, and property-based tests, so the next two lectures can change a working contract safely.
Parameters: A value built into the contract itself, before it has an address.
Validator purposes: Spend and mint, under one script hash.
Off-chain and frontend integration: Script addresses, lock and unlock, collateral, execution units, then a wallet in the browser.
The contract comes first and it comes alone. Lectures 2 to 8 are on-chain only: you write the validator, compile it, test it, and finish it, with no app yet. The whole off-chain half of the track is lecture 9, where the vault gets an address, its transactions, offline tests, and a page that drives it.
Examples (examples/onboarding/lectures/intermediate/vault/)
The playground the lectures import from, so no snippet is pasted prose:
on-chain/aiken/ the vault validator, in the two states the lectures leave it in
off-chain/mesh/ a Mesh and React app that locks, unlocks, and mints, with offline tests that build and check each transaction without touching the network
The app proxies its Blockfrost key through a small backend instead of shipping it to the browser. At the end of lecture 8 the reader compares their own build hash with the one we publish.
Lectures 10 to 13, and the vesting, gift card, and oracle examples, follow in a separate PR.