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 main
option. This can be found by clicking theCode
button, then navigating to theCodespaces
tab. - Upon codespace preparation,
algokit
will automatically startLocalNet
and present a prompt with the next steps. Executingalgokit init
will initiate the interactive wizard.