Skip to content

iskyd/walle

Repository files navigation

WALL•E

Wall•E is a Bitcoin Wallet written in Zig.

WARNING: This is just an attempt to learn Bitcoin and Zig. Do not use this project with real BTC.

Run

Run src/main.zig

zig build run

Run src/p.zig (used for debugging)

zig build run-p

Testing

zig build test
zig build test --summary all -- src/bip39/bip39.zig src/bip38/bip38.zig

Lib

External libraries such as base58 and clap are installed as git submodule and added to build.zig

Dev Environment

See devbox.json

devbox shell

Ensure that you installed the submodule by:

git submodule update --init

Bitcoin Node

Use Dockerfile to run bitcoin node using bitcoin-core. node/bitcoin.conf can be used as bitcoin config to run regtest with rpcuser walle and pwd password.

docker build -t btcnode .
docker volume create btcnode
docker run --rm --name btcnode -v btcnode:/bitcoin-25.0/data -p 18444:18443 btcnode

For mac users use this code to build docker image.

docker build -t btcnode -f Dockerfile.arm .

The first time you run the node you need to create a new wallet (it is no longer created automatically, if the walle was already created use loadwallet) then you can getnewaddress.

bitcoin-cli -rpcuser=walle -rpcpassword=password -rpcport=18443 createwallet walle
bitcoin-cli -rpcuser=walle -rpcpassword=password -rpcport=18443 getnewaddress

Test bitcoin node from outside container:

curl --verbose -L --user walle --data-binary '{"jsonrpc": "1.0", "id": "walle", "method": "getblockchaininfo", "params": []}' -H 'content-type: text/plain;' 0.0.0.0:18444

Contributing

Join WALL•E's Discord channel to chat with the contributors and understand next steps, available tasks and bugs to be fixed.

TODO

About

Bitcoin wallet written in Zig

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published