Airdrop Terms & Privacy Policy Acceptance

To be eligible to receive the airdrop, it is required to submit a cryptographic signature certifying the BABY address owner’s acceptance of the Airdrop Terms and the Cuneiform Privacy Policy via the airdrop API.

1. Prerequisites

This guide assumes that you have created a Babylon address to receive the airdrop using the Babylon Address CLI Creation guide. Please ensure that you have access to your keyring before proceeding.

2. API Data Format

The Airdrop API requires the following JSON message format for designating your acceptance of the Airdrop Terms and the Privacy Policy:

{
    "babyAddress": "bbn1uxx48k7lzrjsy8t6l34m76jzzgjee2m35ppfhh",
    "babySignature": "zuuNchJnEz31HZyBX+kftsBSuQJJnrjA2vBQTmOctVZAjaNNvVpTrItRBSxmUJKHN+E+4POyjnxTrfBXhgV9MA==",
    "babyPublicKey": "AtU4i0OjGcvtdeiJjygOaHmxk9JvNKZVipu46I6zLi/z"
}

Detailed specification of each field:

  • babyAddress: The BABY address derived from the Babylon key as a Bech-32 encoded string.
  • babySignature: The Base64 encoded ADR36 signature made using the private key of the BABY address. The signing doc specification can be found here.
  • babyPublicKey: The Base64 encoded BABY public key, corresponding to the babyAddress.

3. Acceptance Data Creation

To generate the required acceptance data, we are going to use the Staker CLI program.

3.1. Setup the Staker CLI Program

First, clone the btc-staker repository:

git clone https://github.com/babylonlabs-io/btc-staker.git
Cloning into 'btc-staker'...

Next, checkout to the v0.15.2 release tag:

cd btc-staker
git checkout v0.15.2

In the root directory of btc-staker, install the stakercli binary using make install:

make install
CGO_CFLAGS="-O -D__BLST_PORTABLE__" go install -mod=readonly --tags "" --ldflags ''  ./...

You can verify the installation by running stakercli --help.

stakercli  --help
NAME:
   stakercli - Bitcoin staking controller
USAGE:
   stakercli [global options] command [command options] [arguments...]
COMMANDS:
   help, h  Shows a list of commands or help for one command
   Admin:
     admin, ad  Different utility and admin commands
   Daemon commands:
     daemon, dn  More advanced commands which require staker daemon to be running.
   PoP commands:
     pop  Commands realted to generation and verification of the Proof of Possession
   transaction commands:
     transaction, tr  Commands related to Babylon BTC transactions Staking/Unbonding/Slashing
GLOBAL OPTIONS:
   --btc-network value            Bitcoin network on which staking should take place (default: "testnet3")
   --btc-wallet-host value        Bitcoin wallet rpc host (default: "127.0.0.1:18554")
   --btc-wallet-rpc-user value    Bitcoin wallet rpc user (default: "user")
   --btc-wallet-rpc-pass value    Bitcoin wallet rpc password (default: "pass")
   --btc-wallet-passphrase value  Bitcoin wallet passphrase
   --help, -h                     show help

3.2. Sign the Acceptance Message

The Acceptance message to sign is the following:

By signing this message, you hereby acknowledge that you have read, understood, and agree to the Airdrop Terms (available at https://airdrop.babylon.foundation/airdrop-terms) and the Privacy Policy (available at https://airdrop.babylon.foundation/cuneiform-privacy-policy).

Please read the above message carefully and if you want to continue, sign the entire message string by running the stakercli pop sc command as follows:

stakercli pop sc --baby-address <your-baby-address> \
  --keyring-dir /path/to/keyring --keyring-backend file \
  --msg 'By signing this message, you hereby acknowledge that you have read, understood, and agree to the Airdrop Terms (available at https://airdrop.babylon.foundation/airdrop-terms) and the Privacy Policy (available at https://airdrop.babylon.foundation/cuneiform-privacy-policy).'
Enter keyring passphrase (attempt 1/3):
{
    "babyAddress": "bbn1uxx48k7lzrjsy8t6l34m76jzzgjee2m35ppfhh",
    "babySignature": "zuuNchJnEz31HZyBX+kftsBSuQJJnrjA2vBQTmOctVZAjaNNvVpTrItRBSxmUJKHN+E+4POyjnxTrfBXhgV9MA==",
    "babyPublicKey": "AtU4i0OjGcvtdeiJjygOaHmxk9JvNKZVipu46I6zLi/z"
}

where:

  • --baby-address is the Bech-32 BABY address.
  • --keyring-dir is the directory on which the BABY key that will receive the airdrop is stored. Note that this should not contain the direct parent directory of the key files (e.g., keyring-xxx). For example, if the keyring file is stored under ~/.babylond/keyring-file/, then ~/.babylond/ should be specified in the flag.
  • --keyring-backend is the backend of the BABY key. It should be the same as the one when the key was created.
  • --msg is the message to sign. It should be the exact message above included in the single quotation.

4. Submit Signed Data to the API

To submit the signed acceptance data, you need to construct the payload with the previously generated data send it to the Airdrop API collection endpoint using a POST request as follows:

curl -X POST 'https://airdrop-api.babylon.foundation/pop/baby-tos' \
-H 'Content-Type: application/json' \
-d '{
    "babyAddress": "bbn1uxx48k7lzrjsy8t6l34m76jzzgjee2m35ppfhh",
    "babySignature": "zuuNchJnEz31HZyBX+kftsBSuQJJnrjA2vBQTmOctVZAjaNNvVpTrItRBSxmUJKHN+E+4POyjnxTrfBXhgV9MA==",
    "babyPublicKey": "AtU4i0OjGcvtdeiJjygOaHmxk9JvNKZVipu46I6zLi/z"
}'

In case of success, the API will return the data you submitted:

{"babyAddress":"bbn1uxx48k7lzrjsy8t6l34m76jzzgjee2m35ppfhh","babySignature":"zuuNchJnEz31HZyBX+kftsBSuQJJnrjA2vBQTmOctVZAjaNNvVpTrItRBSxmUJKHN+E+4POyjnxTrfBXhgV9MA==","babyPublicKey":"AtU4i0OjGcvtdeiJjygOaHmxk9JvNKZVipu46I6zLi/z"}

If the signature verification fails, the API will return a 400 status code and the following response:

{"message":"Authentication failed, signature invalid: zuuNchJn...","code":400}

5. Verify Terms of Service is Signed

To confirm that the terms of service have been signed, you may query the API collection endpoint using a GET request as follows:

curl -X GET 'https://airdrop-api.babylon.foundation/pop/baby-tos?babyAddress=your-baby-address'

where your-baby-address with the Babylon address you used to sign the terms of service.

Example Response:

{
    "total": 1,
    "page": 1,
    "pageSize": 20,
    "list": [
        {
            "babyAddress": "bbn1s0gxmwyh8lsq55vlgr9xy3dc90lqmp7tz62ec2",
            "babySignature": "vhfOlrfRWc872TfzN3fFyby4YP4hoF3TFJ+31pnqB70V3glE0LuMPAD1vtIHmJs6+9Wx6ltaTujvLNMVlEY/cw==",
            "babyPublicKey": "Aq1Agt1lErIGZdJSj5k8xXU5fuuvE11WqsuNMBmOozsW",
            "babySignedAt": 1741339093080,
            "message": "By signing this message, you hereby acknowledge that you have read, understood, and agree to the Airdrop Terms (available at https://airdrop.babylon.foundation/airdrop-terms) and the Privacy Policy (available at https://airdrop.babylon.foundation/cuneiform-privacy-policy)."
        }
    ]
}

where babySignedAt represents the time of signing in Unix timestamp format.

Search Your Wallet Address Here

Wallet 101

bbn1r7l2kewkha79wpdnkmeqp3dpcew8q8e7u53g8c

Wallet 102

bbn17sqv068s6225dhs5rfhelepvgwcntaulpj2mdy

Wallet 103

bbn172zggajugk9z5fyvjkcs8xmf7jkzghkwzg7n5n

Wallet 104

bbn1nwpt3ddkqalxyrdc3mvemgk6hdnhphkdl565jk

Wallet 105

bbn1p655nr52wepstj39jr3skwv6nkmdrfkajmrksn

Wallet 106

bbn1ls6pq4glasyg3tph0zfcn8ryv3zp59rrpa9d59

Wallet 107

bbn1zgnmnqexl7y2yzww4d7rh7n3nlcyzgcge2rpur

Wallet 108

bbn1nhe3jd4paax2dgqnaregszh7nv6ytqy6asyjjy

Wallet 109

bbn1awhjlvx4f0kt4c7v38ejcrzmx5k7u6f644nx37

Wallet 110

bbn1cg2r7cq4rg8p4jxvunvgpksu7atzql0c6lf0wz

Wallet 111

bbn1mvvggslu2hc786mj2fykxeyqndzd009m5jctqd

Wallet 112

bbn1smdrwz809z6e825edlehrftx5lv6zzwd8m2a4s

Wallet 113

bbn1pk2jfqstfyy4g2wt3wkmk98gghec6zak83z0ye

Wallet 114

bbn15ltyydqgnlvs0sw0tvq9prmt7x9ply2s4744fq

Wallet 115

bbn13g3xc04v5hptz4t6kxgujn4rsgqnmz6pzuv4zv

Wallet 116

bbn1unp0j2zxacf7jg9c0wl2secp4q2zn23efv5mg9

Wallet 117

bbn1nltym5xupjmlshsz5lqlgznle95j2ch3artlac

Wallet 118

bbn165drychg5qfhf0clv8q0zpl7xstvme7yd2lceg

Wallet 119

bbn1j5g0jrw4ks9vtjfgxyfmaw27vx7ryrn9m3hm9a

Wallet 120

bbn16lxuejpj7ksljnl6w0tqdv2sehr9y0e58fngjv

Wallet 121

bbn14r676ass5w73rlg9y587787mapqaawk8nj35k0

Wallet 122

bbn1y4g0qlaehe5pufxmf6kd46cm34g9k8dwyp6m84

Wallet 123

bbn1tm9tv65j2pavu2p0a0fvs59nu6p6q8p6lvrjap

Wallet 124

bbn18fm60ys0r2j0jgd4vlmr0ahznlcy897z357par

Wallet 125

bbn1maee2cq9azg9eeyxhg5un48mncewfel48xdzkz

Wallet 126

bbn1cf649s6m5l5lfl4pdxy4cj5fsy3dvu7t282wxf

Wallet 127

bbn1ywuen7fmd6jklzr624rfsevcdz5nwlr7lmv30z

Wallet 128

bbn1jyc7mdcm3rrnaaxdnjhlw27keufzj0kqz6myqk

Wallet 129

bbn1g2v0p4gujck74ytgfekcl982jyseww3a2ytc4v

Wallet 130

bbn12ep7g0cnj4ua00wxpkz7p4zn4c2u2g7wsf2gfs

Wallet 131

bbn1nzpsgsd2g0rw8z34srk9er5gvvenvd9f7qqq2w

Wallet 132

bbn12chr53ttcz99yckrfllwhpyxqmge8jwhyh6tww

Wallet 133

bbn135f6624ply0e6v8whuh97569xkm96f25lygngp

Wallet 134

bbn1lmmrv58fk8kcvcxjyv9zd7gn0p99kfhftqtgwz

Wallet 135

bbn17z58ts6hnxa4rncmcjqwdtavyzz6y8447s3dq0

Wallet 136

bbn10y9feyw6h0egzrjhrwc6l4fex67ufjl5mh980h

Wallet 137

bbn1htfjpgpw2803hvyujfpvgalj598afms2vwelx8

Wallet 138

bbn12flnuj6wxfxe3ctnuzg34yghxht70htgs5nec8

Wallet 139

bbn1ex43hrx8zg50uyydlxw6gg6l2n749sj0xwv3w6

Wallet 140

bbn1fpmn5jnsp5u7c4knseguzdllzvjgsgm9tewx5e

Wallet 141

bbn15cuafmf774cr4m0qvlgwtkupwxpq78u63y9pud

Wallet 142

bbn17vxkq82s2nu5yrcflfm2wfccxty7327s00avff

Wallet 143

bbn1zuun009525u7mpca4uyrk70kuynnmnrga8kvrj

Wallet 144

bbn17hchzyau4gaseph6sl2r3gfdgg3tp63nu2zjyj

Wallet 145

bbn1lekqr5a3rp3cwhmuw0n6m4lupvfqqud4venrr7

Wallet 146

bbn1ena36ngkkuzmnf605ftlsxfeaphh4hru6feq6w

Wallet 147

bbn1a5nju037du6sqlsldzlua8wazwet48vf4s0au7

Wallet 148

bbn13agy332d2lvvg4pv78um0xy03efv9dp3v4ul8t

Wallet 149

bbn1325mxa9mjaw22vhpwknjwfd0guwqcvk9e3v6ku

Wallet 150

bbn15d52p7d26r4j7vzwufdqgx2r724qqfshje5drt

Wallet 151

bbn1qhdlanf5vpj763ph9sh73j322z5tx3tan3ztwx

Wallet 152

bbn18kz7vypw63n2pntmhf7mkz8y2cjk3a2crj9q9z

Wallet 153

bbn18xynl3ttqus798h9swq4m0zh6ydtggu69hp77m

Wallet 154

bbn1p9w7qad20txvyq83tpp8tmn4ax9u9gv20vhccu

Wallet 155

bbn18uyf2qhz865a0snxaezsdtfyzjh5nwqwrx93ju

Wallet 156

bbn14u7szku8nrxatsvh0dw9a8dpzy0zr6qmz6e9nm

Wallet 157

bbn1mzhk807edkfpf79t4z840fy9dqsaf5yd0283jm

Wallet 158

bbn1qygx0jn0ryyazr636u6z784l9w6tmqlxz4efsk

Wallet 159

bbn16y8ptkcge4cz6vf4j598eqheqqwakqygt4s972

Wallet 160

bbn1n3kusf3gcwha5y8397v78qf9r45tv367r43vqm

Wallet 161

bbn152hnjv096uev4e3d87s0ew454hk3cq52ln443f

Wallet 162

bbn1s9cav0vw0p2wdkt0yccyt6dgmesc2z2k7l7sgq

Wallet 163

bbn1cus8mgujalrf7xrtwzzdqqk7y2ze46djx7quzm

Wallet 164

bbn1quvyyfvvjzqjylju8a0fdkwprmmrc65ftejh4k

Wallet 165

bbn1q53tj0u53awh8pctp8qjlgtlvk0ak5erdxxtav

Wallet 166

bbn1wqy6zgll7zwqd9m2zd5jc07trr7hnjjj0dfmqz

Wallet 167

bbn1vv5ctvq534eyyw5xj8ex8e9q7dy07hkaz7jw5z

Wallet 168

bbn1uzcykp2quth32jx69m6dw5p9ks58tc2guhm6gl

Wallet 169

bbn18t6rswhc43thqtzt6jhuj58rx3dlj94jksd2zx

Wallet 170

bbn1pw94pvtsr5t8r0cezm03d32psat44dsvmt53mf

Wallet 171

bbn1u4axuedm54qnjk549yjx3mhmya9td3t9ue6zp6

Wallet 172

bbn18n2aakgaher87l7cztv09ydj2l7aualnva2k7v

Wallet 173

bbn1fqwulncqntug6h9nzh5glq7tyahc4amxz0k9lw

Wallet 174

bbn10r39fueph9fq7a6lgswu4zdsg8t3gxlqmja4n2

Wallet 175

bbn1skj7gwu73s598h7ye6x735zxvuz987yl4sek43

Wallet 176

bbn1x4fwf3edr0lj3l6x90rcqmzshe0nhnxztcr94n

Wallet 177

bbn1lsw8ue7ggvcywxm9csfzzlqj3wstluwfc3ffjv

Wallet 178

bbn1hp8k4v0857fte89slx2slszgp8kte8tt39n444

Wallet 179

bbn1px4vhthdqnj7pz2wg2qzcvrm7ldpywcw5u6l4v

Wallet 180

bbn167g505wsxyzave7l76hlmns78804pag66yzt6l

Wallet 181

bbn1s75d2qxwhqy2sx7500m6ntuar97lrzd6qv0aa2

Wallet 182

bbn1r70xzwj6xr8vwye3m0tpcu2n09hgc529qwnp7d

Wallet 183

bbn158vrwhujuvvh7e6tlcj67qf3yn8kkh7cg4hnt8

Wallet 184

bbn13l4r8xszkv8q4hqh67jpd92ytmvwugyu506lah

Wallet 185

bbn1q4upmps9zlsaktrxspxhg76plc26hmrs7mz6dj

Wallet 186

bbn1whmj20d20egejugk9gxdz8t806pa2kllcrcqkq

Wallet 187

bbn1h50w38t8k46uwszf59ln2l4vpefezurugdcmjf

Wallet 188

bbn10mhezuz88x40lqsz80fmfcc6dm5dl4qkqrmmfx

Wallet 189

bbn1vgyrk53wsallxx4350pe7pwmz9kyueh80q99k4

Wallet 190

bbn15eppf5f203lt55wdm3athptjnla83wv5kckzu2

Wallet 191

bbn1k6h5suh7jdrda5accfpv9m47wt0pgtw0hgvlg6

Wallet 192

bbn19u337np3xlhjq744v59gu2t5c6mvslp7q7jv4e

Wallet 193

bbn10v7lu9eg22x5eakfdxf5u52gqefwfnn46at6ku

Wallet 194

bbn17vz9a2mpnt3avne2fcyetnyhn2gfyr20j35kcs

Wallet 195

bbn1e6g8kd4v5xqwcwz85vsdyymm85ctlm4pmqyvea

Wallet 196

bbn1nllrurc2fkf7jvqr460lemungcmc2gd7cu5h4m

Wallet 197

bbn13f63jlleklvkchg9fxyrtjxq3qknp06nasnf58

Wallet 198

bbn19k908e6y5d3hh32mw0qr8h4u52l5fg4p8l5079

Wallet 199

bbn12a2r9mwk8w5tkx5x9r4fpkchqll2msweastdm6

Wallet 200

bbn1wtk458zel4usjyujhsvd2ku0vzz9v5y46qzhwp