Appearance
Local Setup
This page walks through installing every tool you need for Zink program development and configuring your environment to talk to Zink clusters. Because Zink runs an unmodified SVM, the toolchain is identical to Solana development.
Rust
Install the Rust toolchain via rustup:
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shStarframe currently requires Rust 1.84.1+. Some programs pin a specific toolchain for reproducible builds — check the project's rust-toolchain.toml if one exists.
Verify:
bash
rustc --version
cargo --versionSolana CLI
Install the Solana CLI tools. The recommended method uses the official Anza install script:
bash
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"This installs solana, solana-keygen, solana-test-validator, cargo build-sbf, and related binaries into ~/.local/share/solana/install/active_release/bin/. Make sure that directory is on your PATH.
Verify:
bash
solana --version
cargo build-sbf --versionUpstream-compatible
The Solana CLI distributed by Anza is the same binary used for Zink. No fork or custom build is required — just point it at a Zink RPC endpoint.
Configure the CLI for Zink
bash
# Current public Zink Testnet endpoint
solana config set --url https://testnet-rpc.z.ink
# For unpublished or operator-only environments, use the URL supplied by the Zink team
solana config set --url https://your-operator-provided-zink-rpc.exampleZink-specific
https://testnet-rpc.z.ink is the currently published public Zink Testnet endpoint. For any unpublished environment, use the onboarding URL the Zink team gives you. You can also pass --url per command if you work across multiple clusters.
Confirm the connection:
bash
solana config get # shows current config
solana cluster-version # should return the Zink cluster's validator version
solana block-height # confirms you can fetch ledger dataStarframe CLI
Install the Starframe CLI and verify the sf binary:
bash
cargo install star_frame_cli
sf --helpIf you need the latest source version instead of the registry release:
bash
cargo install --git https://github.com/staratlasmeta/star_frame star_frame_cli --lockedCreate a scaffolded program:
bash
sf new hello_zink
cd hello_zink
cargo build
cargo build-sbf
cargo testStarframe projects use the standard Solana CLI configuration for deployment. Point solana config at the intended Zink cluster, build with cargo build-sbf, and deploy with solana program deploy.
Node.js
Node.js is optional for on-chain program development, but useful if you generate TypeScript clients from Codama IDLs or build browser/server clients against Zink RPC endpoints. Install Node.js 20+ from nodejs.org or via a version manager like nvm:
bash
nvm install 20
nvm use 20Verify:
bash
node --version
npm --versionWallet and keypair setup
Generate a new keypair
bash
solana-keygen new -o ~/.config/solana/id.jsonThis creates a file-system wallet at the default path the Solana CLI and most client tooling look for.
Import an existing keypair
If you have an existing private key (for example, from a hardware wallet export or another environment):
bash
solana-keygen recover -o ~/.config/solana/id.jsonFund your wallet
For local validator work, you can use a local airdrop:
bash
solana config set --url http://127.0.0.1:8899
solana airdrop 2For Zink Testnet, do not assume a public faucet exists. Switch back to the intended cluster and fund the wallet through the operator or environment-specific workflow you were given:
bash
solana config set --url https://testnet-rpc.z.ink
solana balanceZink-specific
The current public docs publish the Zink Testnet RPC endpoint, not a universal faucet flow. If you need testnet funds, use the onboarding path or funding workflow provided for your environment.
Verify your balance
bash
solana balanceVerifying your full setup
Run through this checklist to confirm everything is ready:
bash
# Toolchain versions
rustc --version # should be 1.84.1+
solana --version # should match the target cluster's Solana line
cargo build-sbf --version
sf --help
node --version # optional, should be 20+ for generated clients
# CLI configuration
solana config get # should show Zink RPC URL and your keypair path
solana cluster-version # should return the cluster's Solana version
solana balance # should show funds on the selected cluster
# Build test
mkdir -p /tmp/zink-test && cd /tmp/zink-test
sf new hello_zink
cd hello_zink
cargo build
cargo build-sbf
cargo testIf those commands succeed, your environment is ready for Zink program development.
Editor setup (optional)
For Rust development, rust-analyzer provides IDE support in VS Code, Neovim, and other editors. The star_frame crate works with rust-analyzer like a normal Rust dependency.
If rust-analyzer shows errors related to SBF target resolution, add this to .cargo/config.toml in your project root:
toml
[build]
target = "sbf-solana-solana"This is only for IDE ergonomics — cargo build-sbf handles target resolution for on-chain builds.
Next steps
- Quickstart — build and deploy your first program
- Starframe — framework concepts and examples
- Clusters & Environments — full list of Zink RPC endpoints
- Testing & Localnet — local validator setup and test strategies