Quick start
Create and test a contract
Section titled “Create and test a contract”labcoat init hello-alkanecd hello-alkanelabcoat testRun labcoat init without a name to enter it interactively. Initialization
always creates a new folder and refuses an existing destination.
Every project starts with a fixed Counter contract. Add another minimal contract package and matching host test from anywhere inside the project:
labcoat new tokenThe generated project contains Rust contract sources, native integration tests, public configuration, deployment state, and agent instructions.
Start the local chain
Section titled “Start the local chain”labcoat uplabcoat statuslabcoat wallet initlabcoat wallet addressesFund the displayed P2TR address and confirm it:
labcoat fund <address>labcoat mine 1labcoat wallet utxosBuild and deploy
Section titled “Build and deploy”labcoat build counterlabcoat deploy counter --dry-runlabcoat deploy counterDeploy selects and recompiles the exact Cargo package before creating the
commit/reveal envelope and recording the resulting Alkanes ID in
labcoat.lock. Use --wasm <path> only for an external raw Wasm artifact.
Interact and inspect
Section titled “Interact and inspect”labcoat simulate counter get_countlabcoat call counter incrementlabcoat trace <txid> --waitMethod names resolve against the deployed contract. A matching generated ABI
avoids an indexer metadata request; if the local build differs, Labcoat warns
and uses deployed metadata. Numeric opcodes remain available when you need to
provide raw cellpack arguments. Simulation always uses deployed code and live
indexed state; use labcoat test counter for an undeployed local build.
Finish by stopping the shared Labcoat Network:
labcoat down