A lightweight transaction relay service for BSV development that funds fees and broadcasts transactions.
- regular fee handling without queue for quick testing
- docker compose have some issue (with key being duplicated)
- make a file upload endpoint so that anyone can just upload file
- make a text upload endpoint so that anyone can just upload file (optional)
Reduce repetitive tasks like fee handling and broadcasting, so you can get started in under a minute.
- Keys live under the
.keydirectory:.key/wif.txt - Automatically generated files:
.key/wif.txt.key/mnemonic.txt.key/address.txt.key/pubkey.txt
To use an existing key, just place
wif.txtin the.keydirectory. Only WIF is required.
Minimal setup (3 necessary + 1 optional):
-
Add your key
wif.txtin the.keydirectory (optional; the server will generate one if not present). -
Add
arc.tokeninconfig.yamlaccording to the network (mainnetortest). -
Rename the example config:
mv config.example.yaml config.yaml
-
Start the services using Docker or Podman:
docker-compose up --build # or podman-compose up --build
- Port: 8080 (default)
- Database: SQLite (default
database.db), persisted via Docker volume - Fee rate:
fee.sat_per_byte = 100(as of Nov 15) — change only if policy changes - Taal ARC token: required, set in
config.yaml
For current fee rates:
curl --location 'https://arc.taal.com/v1/policy' | jq
-
.keydirectory is mounted to persist keys:volumes: - ./key:/app/.key
-
SQLite database is persisted via volume:
volumes: - sqlite_data:/app/database.db
-
RabbitMQ data is persisted via volume:
volumes: - rabbitmq_data:/var/lib/rabbitmq
With these volumes, your keys, database, and RabbitMQ state survive container restarts.
happy hacking <3