---
title: Overview
description: Choose the right workflow for authoring, validating, deploying, and
  debugging ABI-driven program development.
source_url:
  html: https://thru.org/docs/abi/overview/
  md: https://thru.org/docs/abi/overview.md
---

# Overview

Use this section when you are writing ABI YAML by hand, validating that it round-trips correctly, and deploying it alongside a program.

> **Caution:**
>
> 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](https://thru.org/docs/abi/authoring-guide.md): Write ABI YAML with the right metadata, imports, dynamic fields, and practical guardrails for handwritten schemas.
- [Examples](https://thru.org/docs/abi/examples.md): Start from real ABI snippets for primitives, token instructions, flattened program ABIs, and advanced proof structures.
- [Explorer Compatibility](https://thru.org/docs/abi/explorer-compatibility.md): Publish root types that let explorer tooling reflect instruction, account, and event bytes correctly from the on-chain ABI.
- [Validation and roundtrip testing](https://thru.org/docs/abi/validation-and-roundtrip-testing.md): Use analyze, codegen, reflect, and real payload roundtrips to prove that the ABI actually works before deployment.
- [Publishing and Iteration](https://thru.org/docs/abi/deployment-and-program-testing.md): Publish the ABI with the program seed, verify the on-chain artifact, and iterate safely when the schema changes.
- [Specification](https://thru.org/docs/abi/specification.md): 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 page | Common CLI follow-up |
| - | - | - |
| Start from real ABI shapes | [Examples](https://thru.org/docs/abi/examples.md) | [ABI Codegen](https://thru.org/docs/cli-reference/abi-codegen.md) |
| Make explorer reflection work with the published ABI | [Explorer Compatibility](https://thru.org/docs/abi/explorer-compatibility.md) | [ABI Account](https://thru.org/docs/cli-reference/abi-account.md) or [Explorer MCP](https://thru.org/docs/api-ref/explorer-mcp/overview.md) |
| Write or refactor ABI YAML safely | [Authoring Guide](https://thru.org/docs/abi/authoring-guide.md) | [ABI Analyze](https://thru.org/docs/cli-reference/abi-analyze.md) |
| Prove the ABI actually works | [Validation and roundtrip testing](https://thru.org/docs/abi/validation-and-roundtrip-testing.md) | [ABI Analyze](https://thru.org/docs/cli-reference/abi-analyze.md) or [ABI Reflect](https://thru.org/docs/cli-reference/abi-reflect.md) |
| Publish or upgrade the ABI artifact on-chain | [Publishing and Iteration](https://thru.org/docs/abi/deployment-and-program-testing.md) | [ABI Account](https://thru.org/docs/cli-reference/abi-account.md) |
| Reason about layout and binary rules | [Specification](https://thru.org/docs/abi/specification.md) | [ABI Analyze](https://thru.org/docs/cli-reference/abi-analyze.md) |

## Progressive Workflow

1. Start with [Examples](https://thru.org/docs/abi/examples.md) or the [Authoring Guide](https://thru.org/docs/abi/authoring-guide.md) so you do not invent schema shapes from scratch.
2. Use [Explorer Compatibility](https://thru.org/docs/abi/explorer-compatibility.md) if the ABI must be reflected correctly from the published on-chain artifact.
3. Use [Validation and roundtrip testing](https://thru.org/docs/abi/validation-and-roundtrip-testing.md) to run the local proof loop before deployment.
4. Move to [Publishing and Iteration](https://thru.org/docs/abi/deployment-and-program-testing.md) only once the ABI roundtrips correctly.
5. Open [Specification](https://thru.org/docs/abi/specification.md) only when you need deeper rules about layout, imports, or dynamic parameters.

> **Tip:**
>
> 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.
