solana_kit_address

Coverage website

The Address extension type, its codecs, a base58 collation comparator, and public key conversion helpers for the Solana Kit Dart SDK.

Use this package when you need a validated base58-encoded Solana address as a typed value, or when you need to serialize addresses into on-chain data. Most apps reach this through the solana_kit umbrella or solana_kit_addresses.

Installation

Install the package directly:

dependencies:
  "solana_kit_address": ^0.9.1

If your app uses several Solana Kit packages together, you can also depend on the umbrella package instead:

dart pub add solana_kit

Inside this monorepo, Dart workspace resolution uses the local package automatically.

Usage

import 'package:solana_kit_address/solana_kit_address.dart';

void main() {
  // Create a validated address.
  final addr = address('11111111111111111111111111111111');

  // Check if a string is a valid address without throwing.
  final valid = isAddress('11111111111111111111111111111111');
  print('Valid: $valid');

  // Encode and decode addresses as fixed-size 32-byte values.
  final codec = getAddressCodec();
  final bytes = codec.encode(addr);
  final decoded = codec.decode(bytes);
  print('Round trip: ${decoded.value}');

  // Compare addresses using base58 collation order.
  final comparator = getAddressComparator();
  final addresses = [
    address('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'),
    address('11111111111111111111111111111111'),
  ];
  addresses.sort(comparator);
  print(addresses.map((a) => a.value).toList());

  // Convert between public key bytes and addresses.
  final publicKeyBytes = getPublicKeyFromAddress(addr);
  final addrFromKey = getAddressFromPublicKey(publicKeyBytes);
  print('From key: ${addrFromKey.value}');
}

Key APIs

API Description
Address Extension type wrapping a validated base58 string
address() Factory that validates and creates an Address
assertIsAddress() Throws if the string is not a valid address
isAddress() Returns true/false without throwing
getAddressCodec() Returns a fixed-size codec for encoding/decoding
getAddressEncoder() Returns an encoder that produces exactly 32 bytes
getAddressDecoder() Returns a decoder that reads 32 bytes into an Address
getAddressComparator() Returns a base58 collation-order Comparator<Address>
getAddressFromPublicKey() Converts 32-byte Ed25519 public key to Address
getPublicKeyFromAddress() Converts an Address to 32-byte Ed25519 public key

Libraries

solana_kit_address
Core Address extension type, codecs, comparator, and PublicKey utilities for the Solana Kit Dart SDK.