Skip to content

App Ledger Tutorials

These tutorials are progressive, but each one can be used on its own. Every tutorial starts with its goal, what you will learn, what you need, and how long it takes. Most end with a Go deeper section for the trust, consensus, proof, or operational details.

Yano’s tooling calls an app ledger an app chain, so commands and file names say appchain.

TutorialLevelTimeWhat you end with
1. Your first app ledgerBeginner15 min, plus optional extrasThree members finalize the same event history
2. Registry and proofsBeginner15 minOwner-controlled data with an MPF proof
3. Stock state machinesBeginner to intermediate20 minThe smallest built-in application model for your use case
4. Evidence publicationIntermediate30 minS3, IPFS, and Kafka effects plus proofs and an anchor
5. Domain-role approvalsIntermediate to advanced30 minRole-gated approvals, then the evidence specialization
6. Webhook effectsIntermediate20 minA finalized decision invokes an external HTTP endpoint
7. Anchors and verificationIntermediate20 minAn application proof connected to a Cardano anchor
8. Plugins and compositesAdvanced30–60 minYano extended without rebuilding or forking the host
9. From demo to pilotAdvancedPlanning sessionA reviewed project and a deployment plan

Tutorial 4 and the evidence track of tutorial 5 use Docker Compose for their services. Tutorial 8 also needs a Java build tool.

Declarative bindings have their own track: connect existing state machines without Java. It is experimental and needs a Yano X build that includes the feature; its overview explains which build to use.

Every tutorial runs ./yano.sh from the top-level directory of an extracted Yano X JVM distribution, the one containing yano.sh and yano.jar. Use a release download, or build the distribution from source and extract the archive it produces. The commands are the same either way.

These guides follow the current source. A feature added after your release appears only after you build from source; when a command is missing, check ./yano.sh appchain help in your distribution.

  • Treat ./yano.sh as the product command. Use ./yano.sh appchain cluster ... for the bundled single-host cluster, and the same wrapper for appchain init, render, config, doctor, diff, and drift. The internal appchain-devtools executable is a packaging boundary, not a second CLI to learn.
  • Local devnet data is disposable. stop preserves it; clean deletes it.
  • The cluster’s member HTTP ports are 7070–7072, and the Evidence Explorer uses 7080. If the defaults are busy, launchers print the range they chose.
  • Demo credentials are known or generated locally. Never reuse them outside an isolated development environment.
  • A successful HTTP submission means “accepted for sequencing”, not “already final”. Wait for the block, or use the scenario verifier.
  • A finalized command that breaks a business rule is a deterministic no-op. Always check the resulting state, not only the HTTP response or block height.
  • Each tutorial marks the output to look for with ✓ You should see.
  • Shipped: present in the current branch and covered by module tests.
  • Demo-proven: exercised by the packaged multi-member demo and its connector and proof verification.
  • Preview: useful for devnet, testnet, or a tightly controlled pilot, with a named production-hardening boundary.
  • Experimental: not a production claim; follow its dedicated guide.

Use the release capability catalog to tell bundled, first-party optional, reference, and experimental features apart before you choose a tutorial path.

Return to the start-here hub.