Solana Program Scaffold

This is a beta version of the Solana Toolkit, and is still a WIP. Please post all feedback as a GitHub issue here.

npx create-solana-program

create-solana-program initializes an in-depth workspace with everything you need for general Solana smart contract development. This scaffold allows you to write either native rust smart contracts or Anchor smart contracts.

Program Frameworks

After running this command, you'll have the option to choose between Shank and Anchor for the program framework:

  • Shank creates a vanilla Solana smart contract with Shank macros to generate IDLs. For more information on Shank, read its README.

  • Anchor creates a smart contract using the Anchor framework, which abstracts away many complexities enabling fast program development. For more information on the Anchor framework, read the Anchor book.

Anchor framework

For Anchor rust development, chose Anchor when asked which program framework to use. This will create a basic Anchor counter program with the following project structure for your program:

├── program.rs
   ├── src.rs
   ├── lib.rs
   ├── Cargo.toml
   ├── keypair.json
   ├── README.md

Native rust

For native rust development, make sure you chose Shank when asked which program framework to use. This will create a basic counter program with the following project structure for your program:

├── program.rs
   ├── src.rs
   ├── assertions.rs
   ├──entrypoint.rs
   ├──error.rs
   ├──instruction.rs
   ├──lib.rs
   ├──processor.rs
   ├──state.rs
   ├──utils.rs
   ├── Cargo.toml
   ├── keypair.json
   ├── README.md

Generated Clients

Next, you'll have the option to choose between a JavaScript client, a Rust Client, or both.

  • JavaScript Client creates a typescript library compatible with web3.js.

  • Rust Client creates a rust crate allowing consumers to interact with the smart contract.

For further workspace customization and additional information, check out the create-solana-program README.

Build

After answering the above prompts, the workspace will be generated. To get started, build your program and clients by running:

cd <my-program-name>
npm install
npm run generate

To update an existing Anchor project to have this scaffold, read this guide.

Additional Resources

On this page

Edit page