All skills

Develops Algorand smart contracts in Python using PuyaPy — covers syntax, decorators, storage, transactions, types, testing with pytest, deployment, AlgoKit Utils, ARC-4/ARC-56 standards, and error troubleshooting. Use when writing algopy contracts, using @arc4.abimethod decorators, working with GlobalState or BoxMap in Python, testing with AlgorandClient, deploying or calling contracts from Python, or diagnosing PuyaPy compiler and transaction errors.

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

This session only. Nothing lands on disk.

SKILL.md

≈119 tokens always: the name and description. ≈804 when used: this file. ≈24k more on demand in 7 files.

Algorand Python

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

Quick Start

# Create Python project
algokit init -n my-project -t python --answer preset_name production --defaults

# Development cycle
cd my-project
algokit project run build    # Compile contracts with PuyaPy
algokit project run test     # Run pytest tests
algokit localnet start       # Start local network
algokit project deploy localnet  # Deploy

Critical Rules

  • Understand AVM constraints first — see algorand-core skill for the foundational mental model
  • NEVER use PyTEAL or Beaker — use Algorand Python (PuyaPy) with algopy imports
  • Use @arc4.abimethod for public ABI methods, @arc4.baremethod for bare calls
  • Always search docs first — use Kapa MCP or web search before writing contract code
  • Always include tests — use pytest with AlgoKit Utils
  • Fund app account before box operations — box storage requires MBR funding
  • Always .copy() mutable values — call .copy() when appending to or storing mutable types: ARC-4 (arc4.Struct, arc4.DynamicArray) and native (algopy.Array, algopy.FixedArray, algopy.Struct)

Reference Guide

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

Contract Syntax

  • syntax-types.md — AVM types (arc4.UInt64, arc4.String, Bytes, UInt64), ARC-4 encoding, native vs ARC-4 conversions
  • syntax-storage.md — GlobalState, LocalState, Box, BoxMap, BoxRef, MBR funding patterns
  • syntax-methods.md — @arc4.abimethod, @arc4.baremethod, @subroutine, lifecycle methods, visibility, ARC4Contract vs Contract
  • syntax-transactions.md — Inner transactions (itxn), group transactions, fee pooling

Testing

  • testing.md — Pytest patterns, AlgorandClient setup, typed client testing, box funding, multi-user tests

Deployment and Client Interaction

  • deploy-interaction.md — CLI commands, typed client factory, method calls, state reading, AlgorandClient API, accounts, transactions, groups, amount helpers

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/python-examples/smart_contracts/ (HelloWorld, BoxStorage, etc.)
  • algorandfoundation/puya — Compiler examples in examples/ (hello_world_arc4, voting, amm)
  • algorandfoundation/algokit-python-template — AlgoKit project template
  • algorandfoundation/algokit-utils-py — AlgoKit Utils Python 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

1 warning1mo3 checks · Risk SAFE
  • Gen Agent Trust Hub1mo

    This skill provides a comprehensive guide for developing Algorand smart contracts using Python. It includes documentation for the PuyaPy framework, testing with pytest, and project management with AlgoKit. No high-risk security issues were identified; however, the skill's role in processing and compiling user-provided code constitutes a standard development attack surface.

  • Socket1mo

    No alerts

  • Snyk1mo

    Risk: MEDIUM · 1 issue

Signed by skilld at 774f8a8. 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 6 months ago

README badge

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