CLI

Python Cloud is operated over its REST API — every operation is one curl away, and the idempotency-key header makes scripted retries safe. The pip-installed animica CLI covers the chain side: wallets, balances and transfers.

Honest status: a dedicated animica cloud subcommand does not ship yet — the REST workflows below are the supported terminal path today (they are exactly what the web console calls). The platform itself uses the animica CLI under the hood to sign and broadcast the on-chain anchor DEPLOY transactions.

Deploy from the terminal

deploy.sh
# deploy.sh — create once, then push versions. Plain REST; nothing to install but curl+jq.
BASE=https://animica.dev/api/cloud/v1
AUTH="authorization: Bearer $ANM_KEY"

# 1) create the function shell (idempotent with an idempotency-key)
FN_ID=$(curl -s "$BASE/functions" -H "$AUTH" -H 'content-type: application/json' \
  -H "idempotency-key: create-hello-1" \
  -d '{"slug":"hello","timeoutMs":10000,"memoryMb":128}' | jq -r '.function.id')

# 2) push source as the next immutable version and deploy it
jq -Rs '{source: ., entrypoint: "main"}' < handler.py | \
  curl -s "$BASE/functions/$FN_ID/versions" -H "$AUTH" \
       -H 'content-type: application/json' -d @- | \
  jq '{version: .version.version, status: .deployment.status, anchor: .deployment.anchorTxid}'

Operate from the terminal

logs, history, rollback, earnings
# day-2 operations, same pattern
curl -s "$BASE/functions/$FN_ID/executions?limit=20" -H "$AUTH" | jq       # history + money
curl -s "$BASE/functions/$FN_ID/logs?limit=100" -H "$AUTH" | jq            # redacted logs
curl -s "$BASE/functions/$FN_ID/rollback" -H "$AUTH" -X POST \
     -H 'content-type: application/json' -d '{"version": 1}' | jq          # roll back
curl -s "$BASE/me/earnings?days=30" -H "$AUTH" | jq                        # earnings

Chain-side: the animica CLI

wallets and balances
# the pip-installed animica CLI handles the CHAIN side: wallets, balances, transfers
pip install -U animica

animica wallet create --label me
animica wallet list
animica account balance anim1…            # check any address
# fund your platform balance by sending ANM to your deposit address (Developer Center)

Get an API key in the Developer Center. Keys are scoped (read, publish, …) — mint one per automation with only the scopes it needs, and rotate it there too.

Verify a deployment yourself

Every anchored deployment can be independently audited from any Animica node: fetch the DA blob by its id (da.get), SHA3-256 the bytes (they must equal the blob id), read the bundle's source and re-hash it against the sourceSha3 bound in the anchor transaction's manifest. No trust in the platform required — that is the point of anchoring.