https://github.com/metaplex-foundation/solana-project-template
A template for vanilla Solana programs and their clients
https://github.com/metaplex-foundation/solana-project-template
Last synced: 16 days ago
JSON representation
A template for vanilla Solana programs and their clients
- Host: GitHub
- URL: https://github.com/metaplex-foundation/solana-project-template
- Owner: metaplex-foundation
- License: other
- Created: 2023-04-28T17:21:11.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-10T16:44:41.000Z (about 1 month ago)
- Last Synced: 2025-05-08T19:12:12.908Z (16 days ago)
- Language: Rust
- Size: 320 KB
- Stars: 64
- Watchers: 5
- Forks: 21
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome - metaplex-foundation/solana-project-template - A template for vanilla Solana programs and their clients (Rust)
README
Solana Project Template
A template for vanilla Solana programs and their clients.
![]()
## Features
- **Generate IDLs** using [Shank](https://github.com/metaplex-foundation/shank)
- **Generate clients** for one or more programs using [Kinobi](https://github.com/metaplex-foundation/kinobi)
- Configure **local validators** using [Amman](https://github.com/metaplex-foundation/amman)
- **Build, test and lint** programs and clients using GitHub Actions.
- **Publish** your [Umi](https://github.com/metaplex-foundation/umi) JavaScript client and its TypeScript documentation by dispatching a GitHub workflow.
- **Publish** your Rust client SDK to [crates.io](https://crates.io) by dispatching a GitHub workflow.## Getting started
1. [Use this template](https://github.com/new?template_name=solana-project-template&template_owner=metaplex-foundation) to create a new repository.
2. Open the `init.sh` script and update the following variables.
```sh
NAME="mpl-project-name"
DESCRIPTION="My project description"
PUBLIC_KEY="MyProgram1111111111111111111111111111111111"
```
3. Run the `init.sh` script to initialize the project. This will find/replace the variable above, rename some files/folders, update the README and, finally, remove the `init.sh` script.
```sh
./init.sh
```
4. [Read the `CONTRIBUTING.md` file](./CONTRIBUTING.md) to learn more about how to use the project.