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

  • The latest stable Rust with Cargo
  • protoc, the Protocol Buffers compiler
Install protoc for your platform:

Getting started

1

Install the SDK

In your project directory, run:
Then add Tokio and anyhow:
Import bitcoin and bip39 types from Bark’s re-exports, bark::ark::bitcoin and bark::bip39, instead of adding those crates.
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.
src/main.rs
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, before Ok(()):
Run cargo run to print the 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 address lines, before Ok(()):
Balance amounts are Amount values from bark::ark::bitcoin.Run cargo run again. The program reopens the same wallet and prints your spendable balance in sats.

Next steps

API reference

Full Rust API documentation on docs.rs.

How Ark works

Learn about the protocol powering your wallet.