{"id":18254692,"url":"https://github.com/bitcoin-sv/fireblocks-paymail-spv-bridge","last_synced_at":"2025-04-08T21:48:22.320Z","repository":{"id":249324733,"uuid":"831148312","full_name":"bitcoin-sv/fireblocks-paymail-spv-bridge","owner":"bitcoin-sv","description":"Bridge service for SPV Wallets to send and receive from a Fireblocks Vault","archived":false,"fork":false,"pushed_at":"2024-10-19T17:36:40.000Z","size":295,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T17:17:33.103Z","etag":null,"topics":["bsv","fireblocks","paymail","spv","wallet"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/bitcoin-sv.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-19T19:21:49.000Z","updated_at":"2024-09-14T19:30:13.000Z","dependencies_parsed_at":"2024-07-20T03:11:34.199Z","dependency_job_id":"8887188a-f268-4c37-98b7-33e635f6910b","html_url":"https://github.com/bitcoin-sv/fireblocks-paymail-spv-bridge","commit_stats":null,"previous_names":["sirdeggen/spv-fireblocks-bridge","bitcoin-sv/fireblocks-paymail-spv-bridge"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-sv%2Ffireblocks-paymail-spv-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-sv%2Ffireblocks-paymail-spv-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-sv%2Ffireblocks-paymail-spv-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-sv%2Ffireblocks-paymail-spv-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitcoin-sv","download_url":"https://codeload.github.com/bitcoin-sv/fireblocks-paymail-spv-bridge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247934808,"owners_count":21020724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bsv","fireblocks","paymail","spv","wallet"],"created_at":"2024-11-05T10:13:17.183Z","updated_at":"2025-04-08T21:48:22.287Z","avatar_url":"https://github.com/bitcoin-sv.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Install\n\nYou need node.js installed - this was built with v21.5.0\n\n```bash\nnpm i\n```\n\n## Create an .env file\n\n```javascript\nAVATAR_URL=\"https://i.imgur.com/8zeyWBR.png\"\nFIREBLOCKS_API_KEY=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\nFIREBLOCKS_SECRET=\"-----BEGIN PRIVATE KEY-----\nreplace this with a real key\n-----END PRIVATE KEY-----\n\"\nDOMAIN=\"\u003cyour-domain\u003e\"\nWEBHOOK_SECRET=\"\u003cuse-some-private-key-in-wif-format\u003e\"\n```\n\n# Setup\n\n1. Get a Fireblocks account ($500/month).\n2. Set up a Vault and pick BSV as the asset.\n3. Set the \"allow one time addresses\" policy to true.\n4. Set up a TAP to allow any sender to your vault, and allow sending to any address from that vault, so long as it's BSV.\n5. Set up their mobile app and do the backup key recovery process.\n6. Create an API key and set it to be Editor level priviledges.\n\n\n## Localhost\nSet up a reverse proxy using ngrok to use the code as is locally.\n\n```\nngrok http 3000\n```\n\nThat will give you a URL which proxies to your localhost at port 3000. Copy that URL to use as DOMAIN value your .env file. You can update the values above to your liking. \n\n## DNS records for personal domain\n\nIf you're using a server and your own domain, you can add a paymail service record to allow clients to securely lookup your host by domain. Your domain should have DNSSEC enabled.\n\ntype: SRV  \nservice: _bsvalias._tcp  \npriority: 10 10   \nport: 443  \nhost: ip4-address\n\n## Webhooks\n\nTo generate a WEBHOOK_SECRET just do:\n\n```javascript\nimport { PrivateKey } from '@bsv/sdk'\nPrivateKey.fromRandom().toWif()\n```\n\nYou need to give Fireblocks that value by setting up a webhook on their console with the topic \"Transactions\".\n\nThe FIREBLOCKS_API_KEY you should grab from the Fireblocks web console dev area. The FIREBLOCKS_SECRET is the key file they allow you to download on creation, copy pasted in.\n\n# Use\n\nTo run it\n```bash\nnpm run server\n```\n\n### Deposit into Fireblocks Vault\nTo deposit funds from another wallet you just pay using paymail to: `vault@\u003cyour-domain\u003e`.\n\n### Withdraw from Fireblocks Vault\nTo withdraw funds to a paymail wallet you hit the endpoint: `http://localhost:3000/api/pay/\u003cyour-paymail\u003e/\u003camount-in-satoshis\u003e`\n\nSupports:\n\n- p2pdestinations\n- p2p beef transaction\n- p2p rawtx (fallback)\n\n```json\n{\n  \"bsvalias\": \"1.0\",\n  \"capabilities\": {\n    \"f12f968c92d6\": \"https://\u003cyour-domain\u003e/api/paymail/public-profile/{alias}@{domain.tld}\",\n    \"pki\": \"https://\u003cyour-domain\u003e/api/paymail/id/{alias}@{domain.tld}\",\n    \"2a40af698840\": \"https://\u003cyour-domain\u003e/api/paymail/p2p-payment-destination/{alias}@{domain.tld}\",\n    \"5f1323cddf31\": \"https://\u003cyour-domain\u003e/api/paymail/receive-transaction/{alias}@{domain.tld}\",\n    \"6745385c3fc0\": false\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitcoin-sv%2Ffireblocks-paymail-spv-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitcoin-sv%2Ffireblocks-paymail-spv-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitcoin-sv%2Ffireblocks-paymail-spv-bridge/lists"}