Solana Kit supports two common setups:
-
Application usage — install
solana_kitor a smaller sub-package in your Dart or Flutter app. -
Workspace contribution — clone the monorepo and use
devenvto get the full toolchain, docs tooling, and reference repos.
Install in an app#
If you want the full SDK surface, install the umbrella package:
dart pub add solana_kit
Then import it in your application code:
import 'package:solana_kit/solana_kit.dart';
When to install a smaller package instead#
Prefer a smaller package when:
- you only need one feature area, such as addresses, codecs, RPC, or signers
- you are building a library and want a narrower dependency surface
- you want your package imports to reflect a specific architectural boundary
Examples:
dart pub add solana_kit_accounts
dart pub add solana_kit_codecs_core
dart pub add solana_kit_rpc
dart pub add solana_kit_signers
Set up the workspace for contribution#
Use the monorepo when you want to run tests, update docs, compare against upstream @solana/kit, or contribute changes across packages.
# Clone the repository
git clone https://github.com/openbudgetfun/solana_kit.git
cd solana_kit
# Load devenv
direnv allow
# Install binary tools and Dart dependencies
install:all
dart pub get
# Pull reference repositories used for compatibility checks
clone:repos
Verify the toolchain#
Run these commands from the repository root:
# Lint, docs drift, formatting, and analysis checks
lint:all
# Run all package tests
test:all
# Generate merged test coverage across all packages
test:coverage
# Validate markdown templates and generated docs
# (also runs mdt doctor and workspace docs drift checks)
docs:check
# Regenerate documentation template consumers and workspace docs
docs:update
# Inspect mdt provider/consumer state and cache reuse
mdt:info
# Run actionable mdt health checks
mdt:doctor
# Check tracked upstream compatibility metadata
upstream:check
# Run local benchmark scripts across benchmark-enabled packages
bench:all
# Fix formatting and lint issues where possible
fix:all
For day-to-day contribution work, the most important commands are lint:all, test:all,
docs:check, and docs:update.
Documentation tooling#
This workspace uses mdt to keep shared README blocks, site snippets, and selected source doc comments synchronized.
Use:
docs:updateto regenerate all consumer blocksdocs:checkto verify everything is current in CI or before committingmdt:infoto inspect providers, consumers, and cache reusemdt:doctorto diagnose template drift or config problems