Syntax rules and patterns for Algorand TypeScript (PuyaTs) smart contracts. Use when writing TypeScript contract code, encountering Puya compiler errors, asking about AVM types or value semantics, needing guidance on storage patterns (GlobalState, BoxMap), or asking about clone(), arrays, or inner transactions. Strong triggers include "Puya compiler error", "How do I use uint64?", "What is clone() for?", "BoxMap not working", "AVM type error", "GlobalState not updating".
Write, test, deploy, and troubleshoot Algorand TypeScript smart contracts.
algokit init -n my-project -t typescript --answer preset_name production --defaults
cd my-project
algokit project run build # Compile .algo.ts → ARC-56 + typed client
algokit project run test # Run Vitest tests
algokit localnet start # Start local network
algokit project deploy localnet # Deploy
.algo.tsnumber: Use uint64 and Uint64() for all numeric values in contractsclone() storage reads/writes: clone(this.box(k).value) — see syntax-types.md decision tablefee: Uint64(0) on all inner transactions: Prevents app account drain; caller covers via fee poolingalgorandFixture for E2E integration testsalgorand-core skill for the foundational mental modelRead the specific reference file for your task. Each file is self-contained.
uint64, bytes, bigint), number rules, clone(), value semantics, union type workarounds, array rulesGlobalState, LocalState, BoxMap, Box, MBR funding patterns, @contract decorator for dynamic keys, choosing storage typespublic/private), @abimethod/@readonly decorators, transaction-type parameters, lifecycle methods, emit() events, assertMatch with comparison operatorsgtxn typed access, ABI method transaction parameters, itxn inner transactions, itxnCompose/itxn.submitGroup, fee pooling, asset creationTestExecutionContextnewGroup() chaining, .simulate(), struct-as-tuple returns, box references, populateAppCallResources, coverAppCallInnerTransactionFees, amount helpers, .addr.toString() gotchaSearch these repositories for real-world code examples:
algorandfoundation/devportal-code-examples — Primary examples in projects/typescript-examples/contracts/ (HelloWorld, BoxStorage, LocalStorage, StructInBox, etc.)algorandfoundation/puya-ts — Compiler examples in examples/ (hello_world_arc4, voting, amm)algorandfoundation/algokit-typescript-template — AlgoKit project templatealgorandfoundation/algokit-utils-ts — AlgoKit Utils TypeScript SDKalgorand-core skill first for AVM mental modelalgorand-project-setup skillalgorand-frontend skillnpx skills add algorand-devrel/algorand-typescript下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer