Skip to main content

Use this prompt to get started quickly.

CursorOpen in Cursor

Prerequisites

  • iOS 13+ or macOS 12+
  • Swift 5.9+, Xcode 15+

Getting started

1

Install the SDK

In Xcode, go to File > Add Package Dependencies and enter:
https://gitlab.com/ark-bitcoin/bark-ffi-bindings
2

Create a wallet

Generate a BIP39 mnemonic, configure the wallet for signet, and initialize it.
import Bark
import Foundation

// Generate a new mnemonic
let mnemonic = generateMnemonic()
print("Mnemonic: \(mnemonic)")

// Create a data directory
let dataDir = FileManager.default.temporaryDirectory
    .appendingPathComponent("bark_wallet")
try FileManager.default.createDirectory(
    at: dataDir, withIntermediateDirectories: true
)

// Configure for signet
let config = Config(
    serverAddress: "https://ark.signet.2nd.dev",
    esploraAddress: "https://esplora.signet.2nd.dev",
    bitcoindAddress: nil,
    bitcoindCookiefile: nil,
    bitcoindUser: nil,
    bitcoindPass: nil,
    network: .signet,
    vtxoRefreshExpiryThreshold: nil,
    vtxoExitMargin: nil,
    htlcRecvClaimDelta: nil,
    fallbackFeeRate: nil,
    roundTxRequiredConfirmations: nil
)

// Create the wallet
let wallet = try Wallet.create(
    mnemonic: mnemonic,
    config: config,
    datadir: dataDir.path,
    forceRescan: false
)
Back up the mnemonic securely. It is the only way to recover your wallet.
open is a reserved keyword in Swift. If you need to load an existing wallet, use backticks: try Wallet.`open`(mnemonic:config:datadir:).
3

Get a receiving address

Generate an Ark address to receive funds.
let address = try wallet.newAddress()
print("Ark address: \(address)")
Send some signet sats to this address using the faucet.
4

Check your balance

Sync the wallet with the Ark server and read your balance.
try wallet.sync()

let balance = try wallet.balance()
print("Spendable: \(balance.spendableSats) sats")

Next steps