Skip to main content
Use this section when you are writing ABI YAML by hand, validating that it round-trips correctly, and deploying it alongside a program.
Thru ABIs are handwritten today. They do not automatically stay in sync with the program the way macro-generated IDLs do in some other ecosystems, so agent workflows should always validate the ABI explicitly before publishing it.

Start Here

Authoring Guide

Write ABI YAML with the right metadata, imports, dynamic fields, and practical guardrails for handwritten schemas.

Examples

Start from real ABI snippets for primitives, token instructions, flattened program ABIs, and advanced proof structures.

Validation and roundtrip testing

Use analyze, codegen, reflect, and real payload roundtrips to prove that the ABI actually works before deployment.

Publishing and Iteration

Publish the ABI with the program seed, verify the on-chain artifact, and iterate safely when the schema changes.

Specification

Learn the ABI model: deterministic layout, little-endian encoding, import rules, dynamic parameters, and flexible array members.

Choose The Right Page

If your task is…Open this pageCommon CLI follow-up
Start from real ABI shapesExamplesABI Codegen
Write or refactor ABI YAML safelyAuthoring GuideABI Analyze
Prove the ABI actually worksValidation and roundtrip testingABI Analyze or ABI Reflect
Publish or upgrade the ABI artifact on-chainPublishing and IterationABI Account
Reason about layout and binary rulesSpecificationABI Analyze

Progressive Workflow

  1. Start with Examples or the Authoring Guide so you do not invent schema shapes from scratch.
  2. Use Validation and roundtrip testing to run the local proof loop before deployment.
  3. Move to Publishing and Iteration only once the ABI roundtrips correctly.
  4. Open Specification only when you need deeper rules about layout, imports, or dynamic parameters.
The CLI reference is the source of truth for exact flags and command shapes. This section focuses on the workflow and authoring model so agents do not have to load every CLI detail too early.