Compile, deploy, call · ≈ 6 min

Compile

Turn source into an artifact with a code hash. This is also your first real correctness check.

animica contract compile ./mycontract/contract.py

A successful compile prints something like:

Compile succeeded
Contract:     Counter
Artifact:     ~/.animica/contracts/artifacts/Counter-27c4af9f.avm
Code hash:    0x27c4af9f2a21fb6805fc20d2a91219e6d1421c4a81fe1e10b476adb6cc8fe5f6
ABI:          ~/.animica/contracts/artifacts/Counter-27c4af9f.abi.json

The code hash identifies your bytecode exactly. Two people compiling the same source get the same hash — that is what lets anyone verify that a deployed contract really is the code you published.

You may see this line:

[vm-compile] runtime loader path unavailable: forbidden import: __future__

That is a warning, not an error — the compiler's strict loader rejects from __future__ import annotations, then falls back to another path and compiles successfully. Every shipped Animica contract, including the token standard, is written this way. If the line above is followed by Compile succeeded, you are fine.

Useful neighbours:

animica contract list-artifacts        # everything you have compiled
animica contract inspect <artifact>    # read back the ABI
animica contract estimate-gas ...      # what a call will cost

Stuck? Ask

Answered by Animica's own free inference network. It is donated GPU capacity, so give it 20-30 seconds.