solana_kit_codecs_strings 0.9.1 copy "solana_kit_codecs_strings: ^0.9.1" to clipboard
solana_kit_codecs_strings: ^0.9.1 copied to clipboard

String codecs for the Solana Kit Dart SDK.

solana_kit_codecs_strings #

pub package docs website CI coverage

String and base-encoding codecs for Solana binary data in Dart. A port of @solana/codecs-strings from the Solana TypeScript SDK.

Installation #

Install the package directly:

dependencies:
  "solana_kit_codecs_strings": ^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.

Documentation #

For architecture notes, getting-started guides, and cross-package examples, start with the workspace docs site and then drill down into the package README and API reference.

Encode base58 and UTF-8 strings #

Use the string codecs for base58/base64/base16 conversions plus UTF-8 handling when a Solana API crosses between bytes and text.

import 'package:solana_kit_codecs_strings/solana_kit_codecs_strings.dart';

void main() {
  final codec = getBase58Codec();

  final encoded = codec.encode('11111111111111111111111111111111');
  final decoded = codec.decode(encoded);

  print(decoded);
}

These codecs are especially useful for addresses, signatures, blockhashes, and other values that appear as base-encoded strings at API boundaries.

For UTF-8 specifically, getUtf8Codec() preserves embedded null characters and rejects malformed byte sequences, so decoded values retain their exact text semantics.

Codec examples #

Base58 (Solana addresses, signatures, transaction hashes):

import 'package:solana_kit_codecs_strings/solana_kit_codecs_strings.dart';

void main() {
  final base58 = getBase58Codec();
  final addressBytes = base58.encode('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA');
  final decoded = base58.decode(addressBytes);
  print(decoded); // 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
}

Base64 (transaction payloads, account data):

import 'package:solana_kit_codecs_strings/solana_kit_codecs_strings.dart';

void main() {
  final base64 = getBase64Codec();
  final encoded = base64.encode('SGVsbG8gU29sYW5h');
  final decoded = base64.decode(encoded);
  print(decoded); // 'SGVsbG8gU29sYW5h'
}

UTF-8 with a length prefix (for instruction layouts):

import 'package:solana_kit_codecs_core/solana_kit_codecs_core.dart';
import 'package:solana_kit_codecs_strings/solana_kit_codecs_strings.dart';
import 'package:solana_kit_codecs_numbers/solana_kit_codecs_numbers.dart';

void main() {
  final utf8 = getUtf8Codec();
  final sizedUtf8 = addCodecSizePrefix(utf8, getU32Codec());
  final encoded = sizedUtf8.encode('memo text');
  // First 4 bytes: length as u32, remaining bytes: UTF-8 data
  print(encoded.length);
}

Base10 (decimal string amounts) and base16 (hex debugging) work the same way. For custom alphabets, use getBaseXCodec or getBaseXResliceCodec.

Key APIs #

Function Alphabet Typical use
getBase58Codec Base58 (Bitcoin) Addresses, signatures, blockhashes
getBase64Codec Base64 (RFC 4648) Transaction payloads, account data
getBase16Codec 0-9, a-f Debugging, hex dumps
getBase10Codec 0-9 Decimal string amounts
getUtf8Codec UTF-8 String data in instruction layouts
getBaseXCodec Custom alphabet Arbitrary base encodings
getBaseXResliceCodec Custom, bit-resliced Non-power-of-2 alphabets like base58

Example #

Use example/main.dart as a runnable starting point for solana_kit_codecs_strings.

  • Import path: package:solana_kit_codecs_strings/solana_kit_codecs_strings.dart
  • This section is centrally maintained with mdt to keep package guidance aligned.
  • After updating shared docs templates, run docs:update from the repo root.

Maintenance #

  • Validate docs in CI and locally with docs:check.
  • Keep examples focused on one workflow and reference package README sections for deeper API details.
0
likes
150
points
1.11k
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

String codecs for the Solana Kit Dart SDK.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

solana_kit_codecs_core, solana_kit_codecs_numbers, solana_kit_errors

More

Packages that depend on solana_kit_codecs_strings