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 core 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';
Program packages are intentionally imported explicitly. For example, install solana_kit_system,
solana_kit_token, or other program clients directly when your app depends on those programs.
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
# Enforce risk-tier package coverage floors
coverage:check
# Run doc-comment snippet checks extracted from synchronized library docs
test:doc-snippets
# Validate markdown templates, Dart doc comments, and generated docs
# (also runs mdt doctor and workspace docs drift checks)
docs:check
# Regenerate documentation template consumers, Dart doc comments, 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
# Compare selected Dart behaviors against the tracked @solana/kit release
upstream:parity
# Audit current Dart and pnpm lockfiles for known vulnerabilities
audit:deps
# 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 and site snippets synchronized. The current
mdt release still does not discover .dart consumers directly in this repo, so the same provider blocks are also projected into
/// library doc comments through dart run scripts/sync_dart_doc_comments.dart.
Use:
docs:updateto regenerate Markdown consumers and synchronized Dart doc comments-
docs:checkto verify Markdown and Dart doc consumers are current in CI or before committing -
test:doc-snippetsto analyze fenced Dart examples extracted from synchronized library doc comments mdt:infoto inspect providers, consumers, and cache reusemdt:doctorto diagnose template drift or config problems