Program
Use thru program when you are working with managed programs rather than raw uploader buffers.
Use This When
Section titled “Use This When”- you want to create or upgrade a managed program from a binary
- you need to pause, finalize, destroy, or inspect a managed program
- you need address derivation helpers such as
seed-to-hexor manager account derivation
Choose another family when:
- you want raw upload-buffer lifecycle commands: Uploader Commands
- you want to publish or inspect ABI accounts: ABI
Commands
Section titled “Commands”| Command | Use it for |
|---|---|
create | Upload a binary and create a managed program. |
upgrade | Upload a new binary for an existing managed program. |
set-pause | Pause or unpause a managed program. |
destroy | Destroy a managed program and its meta account. |
finalize | Make a managed program immutable. |
set-authority | Set a new authority candidate. |
claim-authority | Claim authority as the candidate. |
derive-address | Derive a program address from a program ID and seed. |
derive-manager-accounts | Derive both manager metadata and program accounts from a seed. |
seed-to-hex | Convert a UTF-8 seed into a zero-padded 32-byte hex string. |
derive-program-account | Derive the managed program account only. |
status | Inspect program and related manager accounts. |
High-Signal Flags
Section titled “High-Signal Flags”| Flag | Why it matters |
|---|---|
--manager | Override the configured manager program ID. |
--ephemeral | Switch derivation and lifecycle to ephemeral program mode. |
--authority | Optionally assert the configured authority key for program creation; it must resolve to the same public key as --fee-payer. |
--fee-payer | Select the configured key that signs every state-changing program transaction, including uploader stages. |
--chunk-size | Control upload chunk size for create and upgrade. |
Minimal Patterns
Section titled “Minimal Patterns”thru program seed-to-hex my_programthru program create my_program ./build/thruvm/bin/my_program_c.binthru program status my_program- For seed conversion, the correct command is
thru program seed-to-hex, not a top-levelseed-to-hex. - Start with
statuswhen you need to understand whether a seed already has live manager or program accounts. - Reach for
uploaderonly when you intentionally want the lower-level upload account flow. - A managed-program transaction contains only the fee-payer signature. On
create, an omitted--authoritydefaults to the fee payer; an explicitly supplied authority must match it.