{"id":18559504,"url":"https://github.com/yosoyubik/urbitcoin","last_synced_at":"2026-03-27T03:10:25.915Z","repository":{"id":42983635,"uuid":"214478891","full_name":"yosoyubik/urbitcoin","owner":"yosoyubik","description":"Bitcoin libraries for Urbit, enabling Bitcoin to serve as a \"money primitive\" for future Gall apps.","archived":false,"fork":false,"pushed_at":"2022-12-04T15:37:09.000Z","size":375,"stargazers_count":7,"open_issues_count":6,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-10T17:26:18.132Z","etag":null,"topics":["bitcoin","bitcoin-nodes","bitcoind","blockchain","gall","hoon","json-rpc-api","urbit"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yosoyubik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-11T16:09:27.000Z","updated_at":"2023-11-22T20:12:47.000Z","dependencies_parsed_at":"2023-01-22T20:45:08.532Z","dependency_job_id":null,"html_url":"https://github.com/yosoyubik/urbitcoin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yosoyubik/urbitcoin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosoyubik%2Furbitcoin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosoyubik%2Furbitcoin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosoyubik%2Furbitcoin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosoyubik%2Furbitcoin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yosoyubik","download_url":"https://codeload.github.com/yosoyubik/urbitcoin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosoyubik%2Furbitcoin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31013961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T02:58:54.984Z","status":"ssl_error","status_checked_at":"2026-03-27T02:58:46.993Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","bitcoin-nodes","bitcoind","blockchain","gall","hoon","json-rpc-api","urbit"],"created_at":"2024-11-06T21:42:58.408Z","updated_at":"2026-03-27T03:10:25.716Z","avatar_url":"https://github.com/yosoyubik.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bitcoin Node JSON RPC API (Part 1/3/4)\n\n## Background\nTo expand Urbit’s Bitcoin-related capabilities, we are building a Gall app which can comprehensively control a Bitcoin Core full node via the JSON RPC API. The app is contained in this branch of the Urbit repo, and the original conception of this idea is discussed here. Our ultimate goal is to create Bitcoin libraries for Urbit, enabling Bitcoin to serve as a \"money primitive\" for future Gall apps.\n\nBitcoin Core is the reference implementation for Bitcoin nodes, which can be run as bitcoind or bitcoin-qt.\n\n##Bounty Description\nThis bounty is to create a portion of the Gall app library for Remote Procedure Calls to a Bitcoin Core full node, written in Hoon.\n\nSpecifically, this bounty is to create types and JSON conversions for commands and responses of the sections of the [Bitcoin Core API reference](https://bitcoincore.org/en/doc/0.18.0/) titled \"Wallet\" and \"ZMQ\".\nCreate type definitions in Hoon for structuring commands and responses. Specify poke-action types that map to each command. Use logic specified in Bitcoin Core API resource and the template contained in the guidelines, and fill in this code where appropriate in [pkg/arvo/lib/btc-node-json.hoon](https://github.com/urbit/urbit/blob/9bb9b20c71a0a46edc6c52dd869017d3a51ede30/pkg/arvo/lib/btc-node-json.hoon).\nThe application will be structured as two Gall agents: one “Store” and one “Hook”. The store should act as a data store for data received from the Bitcoin full node, and the Hook should send commands to the node as well as parsing the responses and poking them into the Store. A [template branch](https://github.com/urbit/urbit/tree/btc-node-grant) has been created to set up skeletons of these files to make your work easier.\n##Resources\n- [Store/Hook proposal for userspace architecture](https://docs.google.com/document/d/1hS_UuResG1S4j49_H-aSshoTOROKBnGoJAaRgOipf54/edit?usp=sharing)\n- [Urbit Gall App documentation](https://urbit.org/docs/learn/arvo/gall/)\n- Bitcoin Core API reference documentation: [Here](https://bitcoincore.org/en/doc/0.18.0/), [here](https://bitcoin.org/en/developer-reference#remote-procedure-calls-rpcs).\n- Distinctions between bitcoind and bitcoin-qt: Differences between them discussed [here](https://bitcoin.stackexchange.com/questions/13368/whats-the-difference-between-bitcoind-and-bitcoin-qt-different-commands)\n- [JSON RPC API standards](https://www.jsonrpc.org/specification)\n\n## Install\n\n`npm install` will install all dependencies.\n\n## Deploy to Urbit\n\nModify the path to your pier in `.urbitrc` and then, after `|mount /=base=` has been ran in your urbit, run `npm run serve` and then `|commit %base` from your urbit.\n\n## Bitcoin Node\n\nCopy `./bitcoin.conf` to your local path. Documentation can be found [here](https://en.bitcoin.it/wiki/Running_Bitcoin). Then run `./bitcoind`\n\nIf something doesn't work, the manual command is:\n```\nbitcoind  -server=1 -rpcuser=urbitcoiner -rpcport=18443 -rpcpassword=urbitcoiner  -regtest  -rpcallowip=127.0.0.1 -daemon\n```\n\nAfter a named wallet is created from your urbit with `:btc-node-hook|action [%create-wallet 'wallet' ~ ~]`, funding your wallet to get some data onto the blockchain can be done with:\n\n```\nbitcoin-cli -regtest -rpcwallet='wallet' generatetoaddress 101 $(bitcoin-cli -regtest -rpcwallet='wallet' getnewaddress)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyosoyubik%2Furbitcoin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyosoyubik%2Furbitcoin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyosoyubik%2Furbitcoin/lists"}