https://github.com/algorandfoundation/algokit-typescript-template
Official AlgoKit template for smart contract development project using Algorand TypeScript.
https://github.com/algorandfoundation/algokit-typescript-template
algokit algokit-template algorand algorand-blockchain algorand-smart-contract typescript
Last synced: 17 days ago
JSON representation
Official AlgoKit template for smart contract development project using Algorand TypeScript.
- Host: GitHub
- URL: https://github.com/algorandfoundation/algokit-typescript-template
- Owner: algorandfoundation
- Created: 2025-01-09T10:42:35.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-25T20:49:53.000Z (25 days ago)
- Last Synced: 2025-03-25T21:32:09.871Z (25 days ago)
- Topics: algokit, algokit-template, algorand, algorand-blockchain, algorand-smart-contract, typescript
- Language: Jinja
- Homepage:
- Size: 235 KB
- Stars: 2
- Watchers: 3
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-algorand - algokit-typescript-template - Official AlgoKit's Algorand TypeScript template provides a production-ready baseline for developing and deploying smart contracts in TypeScript. (Core Resources / AlgoKit Templates)
README
---
This template provides a beta template for developing and deploying [Algorand TypeScript](https://github.com/algorandfoundation/puya-ts) smart contracts.
To use it [install AlgoKit](https://github.com/algorandfoundation/algokit-cli#readme) and then either pass in `-t typescript` to `algokit init` or select the `typescript` template.
This is one of the official templates used by AlgoKit to initialize an Algorand smart contract project. It's a [Copier template](https://copier.readthedocs.io/en/stable/).
## Features
This template supports the following features:
- Compilation of multiple [Algorand TypeScript](https://github.com/algorandfoundation/puya-ts/) contracts to a [predictable folder location and file layout](template_content/smart_contracts) where they can be deployed; [docs](https://github.com/algorandfoundation/puya-ts/), [examples](https://github.com/algorandfoundation/puya-ts/tree/main/examples)
- Deploy-time immutability and permanence control
- [NPM](https://www.npmjs.com/) for TypeScript packaging and dependency management
- [TypeScript](https://www.typescriptlang.org/) for strongly typed programming language that builds on JavaScript
- [ts-node-dev](https://github.com/wclr/ts-node-dev) for TypeScript deployment script execution
- [Prettier](https://prettier.io/) for code formatting
- [ESLint](https://eslint.org/) for linting
- [vitest](https://vitest.dev/) for automated testing (unit test and end-to-end)
- [better-npm-audit](https://github.com/jeemok/better-npm-audit#readme) for dependency vulnerability scanning
- [pre-commit](https://pre-commit.com/) for managing and maintaining multi-language pre-commit hooks
- VS Code configuration (linting, formatting, breakpoint debugging)
- dotenv (.env) files for configuration
- [Output stability](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/articles/output_stability.md) tests of the TEAL output
- CI/CD pipeline using GitHub Actions## Getting started
Once the template is instantiated you can follow the [README.md](template_content/README.md.jinja) file to see instructions for how to use the template.
### Interactive Wizard
**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:
1. Go to the [algokit-base-template](https://github.com/algorandfoundation/algokit-base-template) repository.
2. Initiate a new codespace by selecting the `Create codespace on main` option. This can be found by clicking the `Code` button, then navigating to the `Codespaces` tab.
3. Upon codespace preparation, `algokit` will automatically start `LocalNet` and present a prompt with the next steps. Executing `algokit init` will initiate the interactive wizard.