Skip to main content

Use this prompt to get started quickly.

Open in Cursor
These examples connect to signet so you can test for free. To go live, point the same configuration at Second’s mainnet endpoints from Connection details and select the mainnet network.

Prerequisites

  • Dart SDK 3.10+, or Flutter 3.38.1+
  • Rust, installed with rustup
  • protoc, the Protocol Buffers compiler, on your PATH
Install protoc for your platform:

Getting started

1

Install the SDK

In your project directory, run:
2

Create a wallet

Generate a BIP39 mnemonic, configure the signet endpoints, and open the wallet in a data directory. Wallet.open() creates the wallet on the first launch and reopens it on later ones.
Save this program as bin/main.dart:
The sample code stores the mnemonic in an unencrypted file so that the next launch reopens the same wallet. That is acceptable for signet tests only. In a production app, store the mnemonic in your platform’s secure storage. Also set up continuous wallet data backups, so users can restore their wallet without the Ark server’s cooperation.
3

Get a receiving address

Generate an Ark address to receive bitcoin. Add these lines at the end of main() in Dart. In Flutter, add them to main(), after wallet = await openWallet(); and before runApp():
Run the program from your project directory:
The first run compiles Bark’s Rust core, which can take about 15 minutes. Your terminal then shows the Ark address. Send some signet sats to this address using the faucet.
4

Check your balance

Bark syncs the wallet in the background while it’s open. Call sync_() when you need an up-to-date balance right away. Add these lines after the previous ones:
Run dart run bin/main.dart again.
Balance amounts are int values.The second run reopens the same wallet and prints your spendable balance in sats.

Next steps

Source code

Dart bindings source on GitLab.

How Ark works

Learn about the protocol powering your wallet.