All skills

Develops Algorand smart contracts in TypeScript using Algorand TypeScript (PuyaTs). Covers contract syntax, AVM types, storage patterns, transactions, ABI methods, testing, deployment, and AlgoKit Utils. Use when: (1) writing or modifying .algo.ts smart contracts, (2) using uint64, bytes, GlobalState, BoxMap, LocalState, itxn, gtxn in contracts, (3) testing contracts with algorandFixture/Vitest, (4) deploying or calling contracts with typed clients, (5) migrating from TEALScript or Algorand TypeScript beta, (6) troubleshooting Puya compiler errors or AVM transaction errors, (7) using AlgorandClient, AppFactory, or generated app clients in TypeScript.

Use this Skill: https://skilld.dev/gh/algorand-devrel/algorand-agent-skills/algorand-typescript

This session only. Nothing lands on disk.

SKILL.md

β‰ˆ170 tokens always: the name and description. β‰ˆ976 when used: this file. β‰ˆ19k more on demand in 9 files.

Algorand TypeScript

Write, test, deploy, and troubleshoot Algorand TypeScript smart contracts.

Quick Start

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

Critical Rules

  • File extension: Contract files MUST use .algo.ts
  • NEVER use number: Use uint64 and Uint64() for all numeric values in contracts
  • Always clone() storage reads/writes: clone(this.box(k).value) β€” see syntax-types.md decision table
  • fee: Uint64(0) on all inner transactions: Prevents app account drain; caller covers via fee pooling
  • Fund app account before box operations: Box storage requires MBR funding
  • NEVER use PyTEAL, Beaker, or raw TEAL: Only use Algorand TypeScript (PuyaTs)
  • Always search docs first: Use Kapa MCP or web search before writing contract code
  • Always include tests: Use algorandFixture for E2E integration tests
  • Understand AVM constraints: See algorand-core skill for the foundational mental model

Reference Guide

Read the specific reference file for your task. Each file is self-contained.

Contract Syntax

  • syntax-types.md β€” AVM types (uint64, bytes, bigint), number rules, clone(), value semantics, union type workarounds, array rules
  • syntax-storage.md β€” GlobalState, LocalState, BoxMap, Box, MBR funding patterns, @contract decorator for dynamic keys, choosing storage types
  • syntax-methods.md β€” Method visibility (public/private), @abimethod/@readonly decorators, transaction-type parameters, lifecycle methods, emit() events, assertMatch with comparison operators
  • syntax-transactions.md β€” gtxn typed access, ABI method transaction parameters, itxn inner transactions, itxnCompose/itxn.submitGroup, fee pooling, asset creation

Testing

  • testing.md β€” E2E test examples (HelloWorld, BoxStorage, LocalStorage, StructInBox) + unit testing with TestExecutionContext

Deployment and Client Interaction

  • deploy-interaction.md β€” Factory deployment, typed client calls, newGroup() chaining, .simulate(), struct-as-tuple returns, box references, populateAppCallResources, coverAppCallInnerTransactionFees, amount helpers, .addr.toString() gotcha

Migration

Troubleshooting

  • errors.md β€” Contract errors (assert, opcode budget, box MBR, inner txn) + transaction errors (overspend, asset not opted in, account not found)

Canonical Example Repos

Search 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 template
  • algorandfoundation/algokit-utils-ts β€” AlgoKit Utils TypeScript SDK

Cross-References

  • New to Algorand? Read algorand-core skill first for AVM mental model
  • Project scaffolding and CLI: See algorand-project-setup skill
  • React frontends: See algorand-frontend skill

Source: SKILL.md on GitHub

No alerts16d4 checks Β· Risk SAFE
  • Gen Agent Trust Hub16d

    The skill provides comprehensive documentation and code examples for developing Algorand smart contracts using TypeScript (PuyaTs). No security issues were detected; the skill uses standard ecosystem tools and follows best practices for smart contract development.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW Β· No issues

  • Runlayer7mo

    6 files scanned Β· No issues

Signed by skilld at 35d7e65. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 weeks ago.

Activeupdated 2 months ago

README badge

README badge for algorand-devrel/algorand-agent-skills/algorand-typescript