Publishing and Iteration
Use this page when the ABI is locally validated and you are ready to publish or upgrade the ABI artifact that goes with a deployed program.
Publish With The Program Seed
Section titled “Publish With The Program Seed”The program and ABI should use the same seed.
thru program create my_program ./build/thruvm/bin/my_program_c.binthru abi account create my_program ./program.abi.yamlThat seed match matters because it is how downstream tooling can associate the deployed program with the ABI it should use for reflection.
ABI-Focused Flow
Section titled “ABI-Focused Flow”- validate the ABI locally first with Validation and roundtrip testing
- confirm the published artifact will be explorer-compatible with Explorer Compatibility
- if the ABI still depends on local imports, normalize it with ABI Prep for Publish
- create or upgrade the ABI account with ABI Account
- read the ABI back with
get --include-datato confirm the published artifact is the one you expected
Common ABI Publishing Gotchas
Section titled “Common ABI Publishing Gotchas”- publishing an ABI that was never roundtrip-tested
- publishing an ABI without
program-metadata.root-types - publishing only separate per-instruction structs instead of one discriminated instruction root
- publishing an ABI with a different seed than the deployed program
- forgetting that local imports need to be normalized before publication
- finalizing too early and losing the ability to upgrade or close the ABI account
Typical Follow-Up Commands
Section titled “Typical Follow-Up Commands”- ABI Prep for Publish
- ABI Account
- Explorer Compatibility
- Recommended Development Pattern for the broader deploy, test, and debug loop