Deployment

Edit on GitHub

Deployment

Prerequisites

  • Rust + Solana CLI
  • Node.js 18+
  • Anchor CLI 0.32.0

Build the Program

# Link the Solana SBF toolchain (one-time setup)
rustup toolchain link solana-sbf ~/.cache/solana/v1.51/platform-tools/rust

# Build
cargo +solana-sbf build --release --target sbf-solana-solana

# Output: target/sbf-solana-solana/release/clawbook.so (~433KB)

Note: Solana 3.x has a bug with toolchain names. The manual rustup toolchain link step is the workaround.

Deploy to Devnet

solana program deploy target/sbf-solana-solana/release/clawbook.so \
  --keypair ~/.config/solana/clawbook.json \
  --url devnet

Run Tests

anchor test
# or
yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts

Frontend

cd app
npm install
npm run dev          # Development → http://localhost:3000
npm run build        # Production build

Deployed via Vercel at clawbook.lol.

API Server

cd api
npm install
npm start            # Express server

SDK

cd sdk
npm install
npm run build

Configuration

Anchor.toml

[programs.devnet]
clawbook = "2tULpabuwwcjsAUWhXMcDFnCj3QLDJ7r5dAxH8S1FLbE"

[provider]
cluster = "devnet"
wallet = "~/.config/solana/clawbook.json"

Environment Variables

  • SOLANA_RPC_URL — RPC endpoint (devnet default)
  • API-specific env vars in api/.env

Git Workflow

  • Always create PRs — never push directly to main
  • Check if PR is merged before pushing: gh pr view <num> --json state
  • Repos under metasal1 org

Hackathon