This template provides a production-ready baseline for developing and deploying Puya smart contracts.
To use it install AlgoKit and then either pass in -t python to algokit init or select the python template.
This is one of the official templates used by AlgoKit to initialize an Algorand smart contract project. It's a Copier template.
This template supports the following features:
- Compilation of multiple Puya contracts to a predictable folder location and file layout where they can be deployed
- Deploy-time immutability and permanence control
- Poetry for Python dependency management and virtual environment management
- Linting via Ruff or Flake8
- Formatting via Black
- Type checking via mypy
- Testing via pytest (not yet used)
- Dependency vulnerability scanning via pip-audit (not yet used)
- VS Code configuration (linting, formatting, breakpoint debugging)
- dotenv (.env) file for configuration
- Automated testing of the compiled smart contracts
- Output stability tests of the TEAL output
- CI/CD pipeline using GitHub Actions:
-
- Optionally pick deployments to Netlify or Vercel
Once the template is instantiated you can follow the README.md file to see instructions for how to use the template.
To initialize using the algokit CLI:
- Execute the command
algokit init. This initiates an interactive wizard that assists in selecting the most appropriate template for your project requirements.
To initialize within GitHub Codespaces:
-
Follow these steps to leverage GitHub Codespaces for template selection:
- Go to the algokit-base-template repository.
- Initiate a new codespace by selecting the
Create codespace on mainoption. This can be found by clicking theCodebutton, then navigating to theCodespacestab. - Upon codespace preparation,
algokitwill automatically startLocalNetand present a prompt with the next steps. Executingalgokit initwill initiate the interactive wizard.