⚠ Custodial relay (treechat.io)
This page shows content from treechat.io. Posts here are published by a shared relay key, not signed by each user individually. The display names are self-reported and cannot be cryptographically verified.

BSVanon

14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK

0 Following0 Followers

Activity (61)

BSVanonvia treechat·3d
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "cbf482baff4f018cfc4a44f85de56f2835062f0a98cba802641451d5f074787d",
  "block_height": 945259,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil-Mesh v2.2.3 - big update\r\nv2.1.0 \u2014 capabilities for multi-node app consumers\r\nApps that depend on Anvil-Mesh now have better tools for treating the federation as a fault-tolerant surface instead of a single endpoint.\r\n\u2022 client.peers() returns the federation directory merged from SHIP registrations, signed heartbeat envelopes, and direct peer adjacency \u2014 each node entry carries evidence flags so consumers can decide which to trust. \r\n\u2022 client.health() returns a rich health snapshot including upstream_status (broadcast: healthy/degraded/down, headers sync lag, service health) \u2014 CORS-only, no rate limit, no x402. Recommended 30-60s polling for failover decisions. \r\n\u2022 /messages/subscribe delivers new BRC-33 messages via SSE the moment they arrive \u2014 no more /listMessages polling loops. \u2022 POST /broadcast now accepts x402 payment as an alternative to bearer auth (when an operator sets a positive broadcast price) and returns a derived status field consumers can use to make failover decisions without reading the full ARC state. \r\n\u2022 GET /tx/{txid}/beef returns a source field (cached / arc / woc) so consumers can distinguish overlay-cached proofs from upstream passthrough \u2014 important for anyone building multi-source BEEF chains. \u2022 Operators can declare custom capabilities in their node TOML, surfaced in /.well-known/anvil for machine-readable service discovery.\r\nv2.2.x \u2014 self-healing, born of a real incident\r\nToday I found an Anvil node had been in a silent systemd crash loop for 12 days. Not \"degraded\" \u2014 an orphan process from a prior restart was holding the LevelDB LOCK file, so systemd's real service unit could never start. The orphan itself answered on the port. Every external check said healthy. I found it by running journalctl by hand.\r\nNo operator should ever have to know that. So each node now self-heals far better than previous:\r\n\u2022 systemd ExecStartPre runs anvil doctor --fix-locks-only on every service start \u2014 orphan LOCK holders are killed before the real start attempt. \r\n\u2022 anvil doctor --fix is a one-command operator remediation for orphan processes, crash-looping services, stale header stores with prev-hash-mismatch, and version skew between binary-on-disk and running process. \r\n\u2022 anvil upgrade sweeps ALL anvil processes (not just systemd-tracked ones) before binary replacement, and auto-migrates pre-existing systemd unit files to include the ExecStartPre hook. Existing operators get the full self-heal stack on their next upgrade \u2014 no manual systemd surgery. \r\n\u2022 anvil deploy now uses atomic binary replacement, so re-deploying on a running node doesn't fail with ETXTBSY. \r\n\u2022 Mesh heartbeat carries a service_health field (healthy / degraded / broken) so mesh consumers can distinguish an upstream outage from a local service meltdown \u2014 same user-visible symptom, very different remediations.\r\nEvery Anvil operator on any prior version gets the whole stack as a side effect of sudo anvil upgrade\r\nSpin up a node with one line of code:  curl -fsSL https://anvil.sendbsv.com/install | sudo bash\r\nNode v2.2.3 \u2014 github.com/BSVanon/Anvil/releases/tag/v2.2.3 \r\nSDK \u2014 npm install anvil-mesh@0.4.1",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-17T22:27:23.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3d
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "ff2162a1b5053428e7747e7512cd71463289d135bce2a6d0754484886198192e",
  "block_height": 945259,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "64dee7f21bcd6a1e38e990a0dcafc99da35079af938e2664b1baf6fc2928ab7e\r\n02ba121709bbba0da7a4313d3e984836077c4b4abc2a448e1de4361086e4869e\r\n6fad85e62ce2969924322bcdfbf5f2b523b9b00314d50e574f76ddd8425858a1",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-17T22:27:23.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3d
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "f8e89ab6d2f9f66f61307671a47b661895ace12808143f2f6b60fd8441457825",
  "block_height": 945259,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "64dee7f21bcd6a1e38e990a0dcafc99da35079af938e2664b1baf6fc2928ab7e\r\n02ba121709bbba0da7a4313d3e984836077c4b4abc2a448e1de4361086e4869e\r\n6fad85e62ce2969924322bcdfbf5f2b523b9b00314d50e574f76ddd8425858a1",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-17T22:27:23.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3d
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "85b404294d9c47ad6fd87afbfb509302f248671aaca1972022e06d4dd17ff983",
  "block_height": 945259,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil-Mesh v2.2.3 - big update\r\nv2.1.0 \u2014 capabilities for multi-node app consumers\r\nApps that depend on Anvil-Mesh now have better tools for treating the federation as a fault-tolerant surface instead of a single endpoint.\r\n\u2022 client.peers() returns the federation directory merged from SHIP registrations, signed heartbeat envelopes, and direct peer adjacency \u2014 each node entry carries evidence flags so consumers can decide which to trust. \r\n\u2022 client.health() returns a rich health snapshot including upstream_status (broadcast: healthy/degraded/down, headers sync lag, service health) \u2014 CORS-only, no rate limit, no x402. Recommended 30-60s polling for failover decisions. \r\n\u2022 /messages/subscribe delivers new BRC-33 messages via SSE the moment they arrive \u2014 no more /listMessages polling loops. \u2022 POST /broadcast now accepts x402 payment as an alternative to bearer auth (when an operator sets a positive broadcast price) and returns a derived status field consumers can use to make failover decisions without reading the full ARC state. \r\n\u2022 GET /tx/{txid}/beef returns a source field (cached / arc / woc) so consumers can distinguish overlay-cached proofs from upstream passthrough \u2014 important for anyone building multi-source BEEF chains. \u2022 Operators can declare custom capabilities in their node TOML, surfaced in /.well-known/anvil for machine-readable service discovery.\r\nv2.2.x \u2014 self-healing, born of a real incident\r\nToday I found an Anvil node had been in a silent systemd crash loop for 12 days. Not \"degraded\" \u2014 an orphan process from a prior restart was holding the LevelDB LOCK file, so systemd's real service unit could never start. The orphan itself answered on the port. Every external check said healthy. I found it by running journalctl by hand.\r\nNo operator should ever have to know that. So each node now self-heals far better than previous:\r\n\u2022 systemd ExecStartPre runs anvil doctor --fix-locks-only on every service start \u2014 orphan LOCK holders are killed before the real start attempt. \r\n\u2022 anvil doctor --fix is a one-command operator remediation for orphan processes, crash-looping services, stale header stores with prev-hash-mismatch, and version skew between binary-on-disk and running process. \r\n\u2022 anvil upgrade sweeps ALL anvil processes (not just systemd-tracked ones) before binary replacement, and auto-migrates pre-existing systemd unit files to include the ExecStartPre hook. Existing operators get the full self-heal stack on their next upgrade \u2014 no manual systemd surgery. \r\n\u2022 anvil deploy now uses atomic binary replacement, so re-deploying on a running node doesn't fail with ETXTBSY. \r\n\u2022 Mesh heartbeat carries a service_health field (healthy / degraded / broken) so mesh consumers can distinguish an upstream outage from a local service meltdown \u2014 same user-visible symptom, very different remediations.\r\nEvery Anvil operator on any prior version gets the whole stack as a side effect of sudo anvil upgrade\r\nSpin up a node with one line of code:  curl -fsSL https://anvil.sendbsv.com/install | sudo bash\r\nNode v2.2.3 \u2014 github.com/BSVanon/Anvil/releases/tag/v2.2.3 \r\nSDK \u2014 npm install anvil-mesh@0.4.1",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-17T22:27:23.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1w
Replying to #2da1ab3c
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "7a0da3bedb957e2bdd7cbb201352664f74f3082676246538aee8ac0519ce8d24",
  "block_height": 944691,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "which paper generator do you use?  bitaddress.org?",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "2da1ab3c29262b4f8a0379d785dd1dfc111ee1b8957737d2687aeda0450f9fe5",
  "ref_txid": null,
  "tags": null,
  "reply_count": 2,
  "like_count": 0,
  "timestamp": "2026-04-13T23:06:47.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1w
Replying to #2da1ab3c
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "9901973b99b1cdd5432c7cf0861f539a0d5f3b84ab19347a9c194d95670a9c14",
  "block_height": 944691,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "which paper generator do you use?  bitaddress.org?",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "2da1ab3c29262b4f8a0379d785dd1dfc111ee1b8957737d2687aeda0450f9fe5",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-13T22:58:35.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "6dcfc7a763e9731107d0608f1023eb16bb66c493d251287f39484f1dca3d795e",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "I just released AnvilCast v1.0.0.  \r\nTry it out:\r\nhttps://anvil.sendbsv.com/cast/\r\nIt's a screen-sharing app \u2014 host, viewer, camera, chat, file drop, recording, annotation \u2014 and at first glance it looks like every other Zoom-alternative on the internet. But the entire reason it exists is to demonstrate something that has never been built this way before: the Anvil mesh.\r\nMost \"P2P\" apps are P2P only at the media layer. The video and audio go browser-to-browser via WebRTC, but the signaling \u2014 the messages that say \"I want to talk to you,\" \"here's my offer,\" \"here's the room I'm in\" \u2014 has to be relayed through a centralized signaling server. That server sees who is talking to whom, when, and from where. It is the part of every \"decentralized\" video tool that quietly isn't decentralized at all.\r\nThe Anvil mesh fixes this. Every signaling message in AnvilCast is a secp256k1-signed envelope, gossiped between Anvil nodes the same way Bitcoin transactions are gossiped between Bitcoin nodes. There is no privileged signaling server. Anyone can run an Anvil node and participate. The AnvilCast Go binary is itself just a thin client that publishes envelopes into the mesh and reads envelopes back out. If you took my server offline tomorrow, two browsers running their own AnvilCast against any other Anvil node would still find each other and connect.\r\nIdentity is anchored by BRC-100. When you choose Secured mode, both sides authenticate by signing a nonce with their BRC-100 wallet \u2014 not an email, not a phone number, not an OAuth token \u2014 your wallet's identity key is your account, and the act of signing a wallet challenge is itself the proof. There is no account database on my server. There is no record of you that survives a session restart. Contacts are stored in your own browser's localStorage, keyed by public key.\r\nThis combination \u2014 Anvil mesh signaling plus BRC-100 wallet identity \u2014 is what makes the screen-sharing demo interesting. Mesh-relayed signaling means no central party can see the call graph. Wallet identity means no signup, no email leaks, no password resets, no \"we got breached, please reset everything.\" The two together describe what real-time peer communication on Bitcoin actually looks like.\r\nThe screen-sharing app is the proof. The mesh is the point.\r\nIf you want to run your own Anvil node, see\r\ngithub.com/bitcoin-sv/anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-08T19:19:37.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "f76362653ce4857ea49aa15c2c5442767e486d22f2d987651343380429093c8a",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "I just released AnvilCast v1.0.0.  \r\nTry it out:\r\nhttps://anvil.sendbsv.com/cast/\r\nIt's a screen-sharing app \u2014 host, viewer, camera, chat, file drop, recording, annotation \u2014 and at first glance it looks like every other Zoom-alternative on the internet. But the entire reason it exists is to demonstrate something that has never been built this way before: the Anvil mesh.\r\nMost \"P2P\" apps are P2P only at the media layer. The video and audio go browser-to-browser via WebRTC, but the signaling \u2014 the messages that say \"I want to talk to you,\" \"here's my offer,\" \"here's the room I'm in\" \u2014 has to be relayed through a centralized signaling server. That server sees who is talking to whom, when, and from where. It is the part of every \"decentralized\" video tool that quietly isn't decentralized at all.\r\nThe Anvil mesh fixes this. Every signaling message in AnvilCast is a secp256k1-signed envelope, gossiped between Anvil nodes the same way Bitcoin transactions are gossiped between Bitcoin nodes. There is no privileged signaling server. Anyone can run an Anvil node and participate. The AnvilCast Go binary is itself just a thin client that publishes envelopes into the mesh and reads envelopes back out. If you took my server offline tomorrow, two browsers running their own AnvilCast against any other Anvil node would still find each other and connect.\r\nIdentity is anchored by BRC-100. When you choose Secured mode, both sides authenticate by signing a nonce with their BRC-100 wallet \u2014 not an email, not a phone number, not an OAuth token \u2014 your wallet's identity key is your account, and the act of signing a wallet challenge is itself the proof. There is no account database on my server. There is no record of you that survives a session restart. Contacts are stored in your own browser's localStorage, keyed by public key.\r\nThis combination \u2014 Anvil mesh signaling plus BRC-100 wallet identity \u2014 is what makes the screen-sharing demo interesting. Mesh-relayed signaling means no central party can see the call graph. Wallet identity means no signup, no email leaks, no password resets, no \"we got breached, please reset everything.\" The two together describe what real-time peer communication on Bitcoin actually looks like.\r\nThe screen-sharing app is the proof. The mesh is the point.\r\nIf you want to run your own Anvil node, see\r\ngithub.com/bitcoin-sv/anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-08T19:19:37.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "67ffef155f2129f092b02d8090504726273a6f74f0f8c6dcddcf6d9f811fdf20",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "I just released AnvilCast v1.0.0.  \r\nTry it out:\r\nhttps://anvil.sendbsv.com/cast/\r\nIt's a screen-sharing app \u2014 host, viewer, camera, chat, file drop, recording, annotation \u2014 and at first glance it looks like every other Zoom-alternative on the internet. But the entire reason it exists is to demonstrate something that has never been built this way before: the Anvil mesh.\r\nMost \"P2P\" apps are P2P only at the media layer. The video and audio go browser-to-browser via WebRTC, but the signaling \u2014 the messages that say \"I want to talk to you,\" \"here's my offer,\" \"here's the room I'm in\" \u2014 has to be relayed through a centralized signaling server. That server sees who is talking to whom, when, and from where. It is the part of every \"decentralized\" video tool that quietly isn't decentralized at all.\r\nThe Anvil mesh fixes this. Every signaling message in AnvilCast is a secp256k1-signed envelope, gossiped between Anvil nodes the same way Bitcoin transactions are gossiped between Bitcoin nodes. There is no privileged signaling server. Anyone can run an Anvil node and participate. The AnvilCast Go binary is itself just a thin client that publishes envelopes into the mesh and reads envelopes back out. If you took my server offline tomorrow, two browsers running their own AnvilCast against any other Anvil node would still find each other and connect.\r\nIdentity is anchored by BRC-100. When you choose Secured mode, both sides authenticate by signing a nonce with their BRC-100 wallet \u2014 not an email, not a phone number, not an OAuth token \u2014 your wallet's identity key is your account, and the act of signing a wallet challenge is itself the proof. There is no account database on my server. There is no record of you that survives a session restart. Contacts are stored in your own browser's localStorage, keyed by public key.\r\nThis combination \u2014 Anvil mesh signaling plus BRC-100 wallet identity \u2014 is what makes the screen-sharing demo interesting. Mesh-relayed signaling means no central party can see the call graph. Wallet identity means no signup, no email leaks, no password resets, no \"we got breached, please reset everything.\" The two together describe what real-time peer communication on Bitcoin actually looks like.\r\nThe screen-sharing app is the proof. The mesh is the point.\r\nIf you want to run your own Anvil node, see\r\ngithub.com/bitcoin-sv/anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-08T19:19:37.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "8a199bc0a07b101bd5ae3ce60a3b80c3a3e0d43ed68a20ee26df7c7f95992a42",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "THE MEMPOOL MUST DIE.\r\nThe mempool must die, and Teranode is about to kill it completely. Instead of digital purgatory, transactions will immediately climb micro trees on broadcast and escape the morass of waiting in limbo to be mined.\r\nThe focus on SPV transactions was the primary focus of the SPV-Relay-Federation, and my contributions to same were the secondary focus and related to ephemeral data packets, overlay communication and application integrations.\r\nAnvil nodes were designed for both. SPV transactions and temporal node-2-node communications in order to enable real-time application cohesion and amplification.\r\nBut @___siggi___  and team are now arriving with the big sump-pump, and the mempool will dry up.\r\nWhat dies with the mempool\r\nEverything I planned to build for the April hackathon. The mempool marketplace \u2014 monitoring unconfirmed transactions, indexing by address, selling access via micropayments \u2014 was the perfect entry.  It used every piece of infrastructure Anvil already had: P2P mempool observation, address watching, mesh gossip, x402 payment gating.\r\nTeranode makes all of that irrelevant. No mempool means no mempool product. The hackathon idea died the morning I read that tweet.\r\nWhat survives\r\nI had to ask the uncomfortable question: without the mempool, what's left for this project?\r\nStrip away the mempool features and what remains is:\r\nNodes that form persistent authenticated connections\r\nSigned data published to topics\r\nReal-time gossip to every interested peer\r\nConsumers\tsubscribe or query\r\nPayments can gate access\r\nThat's not an SPV node with communication bolted on. That's a communication layer that happens to verify payments. The SPV verification still works \u2014 it's how x402 payments are validated. But it's plumbing, not the product.\r\nThe answer\r\nThe Anvil answer: the communication layer was always the value.\r\nTeranode handles transactions. It validates, assembles subtrees, mines blocks.  But it does not index data by topic. It does not push real-time updates to app subscribers. It does not route signed messages between identities. It does not gate access with micropayments.\r\nThat gap \u2014 between transaction processing and application-level data \u2014 is where Anvil-Mesh lives. Apps publish signed data to topics. The mesh replicates it across every node. Consumers subscribe for real-time push or query on demand. Operators earn per request.\r\nWhat Anvil v2.0.0 brings\r\nThe pivot forced a complete rethink of what the mesh should do. v2.0.0 is the result:\r\nAddressed messaging.Apps can now send messages to specific identities, not just broadcast to topics. Point-to-point communication with sender signature verification, forwarded across the mesh. This is how agents coordinate, how apps signal each other, how the mesh becomes a communication layer and not just a data relay.\r\nSelf-describing mesh.Topics carry metadata \u2014 what the data is, how often it updates, what it costs. Publishers declare their identity. Demand is visible across the mesh. A developer arriving at any node can understand what's available without reading documentation.\r\nTopic discovery.Browse all topics, see what data flows, who publishes it, how popular it is. The mesh explains itself.\r\nNode-signed publishing.Operators can publish metadata and identity from the Explorer UI. No curl commands, no external signing tools. The node signs with its identity key.\r\nThe protocol question\r\nAnvil-Mesh is an open protocol with a reference implementation, not a product with a gatekeeper. I hold the keys to my nodes. Anyone can run their own. The protocol is documented so that someone could build a compatible node without reading my Go code.\r\nThe mesh becomes a real protocol the moment a second independent implementation exists. Until then, it's a reference implementation with documentation and a growing network.\r\nWhere the Mesh stands\r\n7 nodes and independent operators I've never coordinated with. They found the repo, installed the binary, and joined the mesh. The gossip works. The data replicates. The payments verify.  The apps are magnified.\r\nThe mempool had to die for me to see what this project actually was. Not an SPV relay. The coordination seam between Teranode's transaction processing and the applications that people use.\r\nOne command to see for yourself:\r\nnpm install anvil-mesh",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 1,
  "like_count": 2,
  "timestamp": "2026-04-05T22:27:54.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
Replying to #281fa77b
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "f70a93e3e199f1ee9a4be9294e78e55f71bb4b99962fe14b10454a7eb16f1237",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Lollll, this is great!  Thank you",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "281fa77bce50fc90d6dcc857c36967b582793d0cb90369e133413f5b6fcd127d",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 2,
  "timestamp": "2026-04-01T18:53:39.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
Replying to #281fa77b
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "cc53a2c28e7ada2d53542eed3600b13930d792eac535e9cffbb26e4f78088f84",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Lollll, this is great!  Thank you",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "281fa77bce50fc90d6dcc857c36967b582793d0cb90369e133413f5b6fcd127d",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-04-01T18:51:32.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
Replying to #ddd32769
❤️ 3 Likes · ⚡ 0 Tips
{
  "txid": "b1c46f2fb4cf2da8f6c20bc4c3bdca3ca4895abcdb9429ebd2265ffbcd699c90",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Anvil v1.1.1 \u2014 self-healing BSV mesh nodes.\r\nNodes now fix themselves:\r\nAuto-discover external funds (no manual scan)\r\nHeaders stay synced continuously, not just at boot\r\nMempool monitor auto-reconnects on peer disconnect\r\nUpgrade kills zombie processes, verifies the new version is actually running\r\n5 mesh peers, zero warnings. Going stable, that should be it on upgrades for a while.\r\nsudo anvil upgrade\r\nhttp://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "ddd327699ef695c24162e15eca1e2b916def7d7a7cdbf9a7e80cc977b225aac0",
  "ref_txid": null,
  "tags": null,
  "reply_count": 1,
  "like_count": 3,
  "timestamp": "2026-04-01T14:48:00.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "2c16058c1dae088b7102e2d4f33d1d6d64b63b457329b7170169750928d04a28",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Another one!  >8D",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-31T21:09:32.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "32bfac908b0c32400610aa7e9de447e51fcccbdc4f217f10e257a5d2c88405cc",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Another one!  >8D",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-31T21:09:32.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "7b22aecbd6b31f36fa58244a8844478d7bb589b95fb4a941f106161c61af2dce",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Wish I had more time to listen to these.  \r\nThe videos I've been able to listen to are very good:\r\nhttps://app.treechat.com/p/b64542af-4851-46b7-ad91-d4f28949e358",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-31T19:39:11.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
Replying to #3fe3c0d6
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "4a39355a4cea5366064d3ed1af25e8954caf4f7a1210dd476a309bf8d3719ff6",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "anytime!  \r\nAnvil-nodes are non-custodial which greatly decreases risk by never holding funds for others.\r\nThe 1MM sats you can see the Anvil-Prime node is the node's own funds for bonding.  Node-bonds help remove perverse incentives of spinning up a bunch of sybils (basically bot attack vectors).",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "3fe3c0d6cc659fd791043dd8b19fb03bec098109e3b32dab5373096902549148",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-31T19:39:11.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
Replying to #3fe3c0d6
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "01b37574ccd3487f8cfc062234072d7060c9a23b4be4560d108d4fe4c048ea46",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "anytime!  \r\nAnvil-nodes are non-custodial which greatly decreases risk by never holding funds for others.\r\nThe 1MM sats you can see the Anvil-Prime node is the node's own funds for bonding.  Node-bonds help remove perverse incentives of spinning up a bunch of sybils (basically bot attack vectors).",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "3fe3c0d6cc659fd791043dd8b19fb03bec098109e3b32dab5373096902549148",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-31T19:39:11.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
Replying to #3007ec34
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "8fb0e9e6117c9f4f127a60f87ab35839824e632b3a92a2a668ba6bd7ad4b76eb",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "99% of computers worldwide run linux.  Windows and Mac are mostly just for personal computing.  So a virtual private server usually runs on ubuntu or other linux kernals.  \r\nHow could you envision an Anvil node being misused?  \r\nIt doesn't make blocks, but it aids in P2P transactions and apps facilitating same.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "3007ec34165927af3fbd3af663261df69a5fa19357374004df264d9bcb9117b3",
  "ref_txid": null,
  "tags": null,
  "reply_count": 2,
  "like_count": 2,
  "timestamp": "2026-03-31T18:38:20.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
Replying to #3007ec34
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "40081a24a2e2ca53990f09f70d5eb5768a0df5485998eccf943ed45ef3c3875a",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "99% of computers worldwide run linux.  Windows and Mac are mostly just for personal computing.  So a virtual private server usually runs on ubuntu or other linux kernals.  \r\nHow could you envision an Anvil node being misused?  \r\nIt doesn't make blocks, but it aids in P2P transactions and apps facilitating same.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "3007ec34165927af3fbd3af663261df69a5fa19357374004df264d9bcb9117b3",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-31T18:38:20.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "6527d350c3d51c53801a81a6abd66755eb53ff8449e6d6f5cac9a9e116ebf082",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil v1.0.0 \u2014 A single-binary SPV node for Bitcoin\r\nToday we shipped the first major release of Anvil. Here's what it does and why it matters.\r\nWhat is Anvil?\r\nA ~15MB binary that turns any Linux VPS into a BSV SPV node. No full blockchain download. Headers only (~75MB). Syncs in 30 seconds. Runs on $5/month hardware. One-line install:\r\ncurl -fsSL\r\nhttps://raw.githubusercontent.com/BSVanon/Anvil/v1.0.0/scripts/install.sh\r\n | sudo bash\r\nWhat Anvil is for:\r\nAnvil is the transport layer for BSV's SPV network. It sits at the edge of the Mandala \u2014 not a miner, not a full node. It verifies payments, relays data, and lets machines pay each other for services using x402 micropayments.\r\nThe mesh currently has 5 connected nodes across 3 countries. Any operator can join by running the install script and funding the node with 1M satoshis (~$0.50) for bonding requirements.\r\nWhat's new in v1.0.0:\r\nAddress Watching \u2014 Monitor any BSV address in real-time from the mempool. Your node watches for P2PKH outputs matching your addresses and notifies you via Server-Sent Events the instant a payment arrives \u2014 or when a UTXO gets spent. Five new API endpoints. LevelDB-backed so nothing is lost on restart.\r\nOn-Demand BEEF Proofs \u2014 GET /tx/{txid}/beef now works for any confirmed BSV transaction, not just ones your node previously stored. The node fetches the raw tx, gets the merkle proof from ARC or WhatsOnChain, builds Atomic BEEF, validates it against local headers, caches it, and returns it. Proof-as-a-service for any transaction on the chain.  h/t\r\n@vikramRihal for the request!\r\nMesh Transaction Relay \u2014 Nodes now propagate transactions across the mesh using an announce/request/response protocol. When a tx arrives via the API or P2P mempool monitor, it's announced to all mesh peers. Peers that don't have it request the full tx. This is the foundation for the distributed mempool marketplace.\r\nBEEF-on-Send \u2014 When the wallet sends a payment, the response now includes the BEEF envelope. The receiver can verify the payment offline using SPV against their own header chain. This is the same model as the recent Bluetooth P2P payment demos \u2014 full transaction data transferred device-to-device, SPV on the receiving side.\r\nPayment Signature Validation \u2014 x402 micropayment verification now runs the BSV script interpreter against the nonce input. This catches forged transactions that have correct outputs but invalid input signatures. Previously, structural matching alone would have accepted them.\r\nSecurity hardening:\r\nWe ran a more robust 10-tool security audit before this release: govulncheck, gosec, staticcheck, semgrep, gitleaks, syft (SBOM), grype, race detector, go vet, and coverage analysis.  h/t @kurtwuckertjr\r\nThe oracle slash bug is fixed. Anvil's gossip layer was falsely penalizing fast publishers (like price oracles) because the double-publish heuristic used second-granular timestamps. At 4+ mesh nodes, slash warnings accumulated from multiple reporters and caused legitimate publishers to be deregistered. We removed the flawed detection entirely. Rate limiting, gossip dedup, envelope signatures, and bond requirements still protect the mesh.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v1.0.0",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 2,
  "timestamp": "2026-03-31T17:51:48.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2w
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "ddd327699ef695c24162e15eca1e2b916def7d7a7cdbf9a7e80cc977b225aac0",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil v1.0.0 \u2014 A single-binary SPV node for Bitcoin\r\nToday we shipped the first major release of Anvil. Here's what it does and why it matters.\r\nWhat is Anvil?\r\nA ~15MB binary that turns any Linux VPS into a BSV SPV node. No full blockchain download. Headers only (~75MB). Syncs in 30 seconds. Runs on $5/month hardware. One-line install:\r\ncurl -fsSL\r\nhttps://raw.githubusercontent.com/BSVanon/Anvil/v1.0.0/scripts/install.sh\r\n | sudo bash\r\nWhat Anvil is for:\r\nAnvil is the transport layer for BSV's SPV network. It sits at the edge of the Mandala \u2014 not a miner, not a full node. It verifies payments, relays data, and lets machines pay each other for services using x402 micropayments.\r\nThe mesh currently has 5 connected nodes across 3 countries. Any operator can join by running the install script and funding the node with 1M satoshis (~$0.50) for bonding requirements.\r\nWhat's new in v1.0.0:\r\nAddress Watching \u2014 Monitor any BSV address in real-time from the mempool. Your node watches for P2PKH outputs matching your addresses and notifies you via Server-Sent Events the instant a payment arrives \u2014 or when a UTXO gets spent. Five new API endpoints. LevelDB-backed so nothing is lost on restart.\r\nOn-Demand BEEF Proofs \u2014 GET /tx/{txid}/beef now works for any confirmed BSV transaction, not just ones your node previously stored. The node fetches the raw tx, gets the merkle proof from ARC or WhatsOnChain, builds Atomic BEEF, validates it against local headers, caches it, and returns it. Proof-as-a-service for any transaction on the chain.  h/t\r\n@vikramRihal for the request!\r\nMesh Transaction Relay \u2014 Nodes now propagate transactions across the mesh using an announce/request/response protocol. When a tx arrives via the API or P2P mempool monitor, it's announced to all mesh peers. Peers that don't have it request the full tx. This is the foundation for the distributed mempool marketplace.\r\nBEEF-on-Send \u2014 When the wallet sends a payment, the response now includes the BEEF envelope. The receiver can verify the payment offline using SPV against their own header chain. This is the same model as the recent Bluetooth P2P payment demos \u2014 full transaction data transferred device-to-device, SPV on the receiving side.\r\nPayment Signature Validation \u2014 x402 micropayment verification now runs the BSV script interpreter against the nonce input. This catches forged transactions that have correct outputs but invalid input signatures. Previously, structural matching alone would have accepted them.\r\nSecurity hardening:\r\nWe ran a more robust 10-tool security audit before this release: govulncheck, gosec, staticcheck, semgrep, gitleaks, syft (SBOM), grype, race detector, go vet, and coverage analysis.  h/t @kurtwuckertjr\r\nThe oracle slash bug is fixed. Anvil's gossip layer was falsely penalizing fast publishers (like price oracles) because the double-publish heuristic used second-granular timestamps. At 4+ mesh nodes, slash warnings accumulated from multiple reporters and caused legitimate publishers to be deregistered. We removed the flawed detection entirely. Rate limiting, gossip dedup, envelope signatures, and bond requirements still protect the mesh.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v1.0.0",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 4,
  "like_count": 2,
  "timestamp": "2026-03-31T17:51:48.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #70a921ca
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "82a0271baeb9e5e544d202a6db157cc94385cb7d797793abb2da6703e0fd63a0",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "went ahead and pushed v0.7.3.\r\nRelease: github.com/BSVanon/Anvil/releases/tag/v0.7.3\r\n3 new fetcher-paths\r\n(cache miss build/store, unconfirmed 404, tx-not-found 404)",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "70a921ca77e98cca3df27e58fa09292728bf49ab28cf29dd3708ab1b9fc4b777",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-30T19:31:54.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #3cf06fc6
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "b00b444aee0c7c2e34b68a5ea37bdb7a3e53916a84dd3a8b5b17bf09f5c0aaf0",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "it's the circle of life lol",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "3cf06fc624445d7851b25d71b993f1df0f4773a5ec7f2e817447c58994cce295",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-30T19:16:25.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 3 Likes · ⚡ 0 Tips
{
  "txid": "70a921ca77e98cca3df27e58fa09292728bf49ab28cf29dd3708ab1b9fc4b777",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil v0.7.2 \u2014 o_O Watchers O_o\r\nYour Anvil node can now watch BSV addresses in real-time from the mempool.\r\nAdd addresses via API, get instant SSE notifications when payments arrive \u2014 and when UTXOs get spent. Persistent storage means nothing is lost on restart.\r\nNew endpoints:\r\nPOST /mempool/watch \u2014 add addresses\r\nGET /mempool/watch/subscribe \u2014 real-time SSE stream\r\nGET /mempool/watch/history \u2014 persisted hit log\r\nBuilt for the mempool marketplace: agents and apps can subscribe to address activity as a paid data service via x402 micropayments.\r\nOne-line Upgrade:  sudo anvil upgrade\r\nOR \r\nOne-line Checksum-verified Fresh Install:  \r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.2/scripts/install.sh | sudo bash\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.2",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 1,
  "like_count": 3,
  "timestamp": "2026-03-30T17:41:47.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "5ea6a1217bd332edcbb76d7fcd28e4624bbfead92617514c47221751f119633a",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil v0.7.2 \u2014 o_O Watchers O_o\r\nYour Anvil node can now watch BSV addresses in real-time from the mempool.\r\nAdd addresses via API, get instant SSE notifications when payments arrive \u2014 and when UTXOs get spent. Persistent storage means nothing is lost on restart.\r\nNew endpoints:\r\nPOST /mempool/watch \u2014 add addresses\r\nGET /mempool/watch/subscribe \u2014 real-time SSE stream\r\nGET /mempool/watch/history \u2014 persisted hit log\r\nBuilt for the mempool marketplace: agents and apps can subscribe to address activity as a paid data service via x402 micropayments.\r\nOne-line Upgrade:  sudo anvil upgrade\r\nOR \r\nOne-line Checksum-verified Fresh Install:  \r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.2/scripts/install.sh | sudo bash\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.2",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 2,
  "timestamp": "2026-03-30T17:35:57.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #8a175911
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "73b9cf86145f0f751d1162eb754bb786f1d4a73f7b34e0c9c74882317d4db37a",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "I misunderstood.\r\nThat's good constructive criticism \u2014 you were right. We just shipped v0.7.1 with the fix.\r\nThe install script is now served from GitHub (not our VPS), and the binary is SHA256-verified before execution:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nWhat changed:\r\nScript is fetched from raw.githubusercontent.com at a tagged commit \u2014 immutable, auditable\r\nBinary downloads from GitHub Releases (not VPS)\r\nInstall script downloads checksums.txt from the same release and verifies SHA256 before running anything\r\nAborts with a clear error on mismatch\r\nFull supply chain process documented: https://github.com/BSVanon/Anvil/blob/main/RELEASING.md\r\nCompromising the VPS no longer compromises the installer. An attacker would need GitHub or the repo owner's credentials which are properly secured. The old anvil.sendbsv.com/install URL now just 302-redirects to the GitHub-hosted script.\r\nFor maximum vigilance, pin to the tag and read the script first:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh -o install.sh\r\nless install.sh\r\nsudo bash install.sh\r\n\r\nOr clone and build from source \u2014 as it's all public.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "8a175911ed7bcedb08b067aa151f8fa62fdf3ef0b89a5cbec3405691101b4de1",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 2,
  "timestamp": "2026-03-29T22:55:14.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "4f6b86f1ba053ca77904bf57c587d3140cb1e51c6c5f4b713cd138caff6b209d",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil v0.7.1 is live!\r\nThis is the biggest update since launch. Your node now pushes data to clients in real time, logs every mesh connection, and verifies its own install.\r\nWhat's new:\r\nReal-time push (SSE)\r\nSubscribe to any topic and get envelopes the instant they arrive. No more polling.\r\nGET /data/subscribe?topic=oracle:rates:bsv\r\n\r\nThree lines of JavaScript and your app has a live feed from the mesh.\r\nMesh hardening\r\nDouble-publish slashing now requires corroboration from multiple peers \u2014 no more false positives from fast publishers\r\nPersistent connection log: every peer connect, disconnect, identity, duration, reason. You're no longer blind to who's joining your mesh.\r\nGraceful shutdown logs disconnect events so restarts don't create gaps in your history\r\nOperator visibility\r\n/status now shows header sync lag, SPV validation metrics, and warnings\r\nanvil doctor checks mesh seeds, sync health, SPV state, and zero-peer conditions\r\nHeader syncer and SPV validator track success/failure stats\r\nNew API endpoints\r\nGET /data?since=TIMESTAMP \u2014 incremental polling, only new envelopes\r\nGET /data/subscribe?topic=X \u2014 Server-Sent Events real-time stream\r\nDELETE /data \u2014 auth-gated envelope cleanup\r\nSecure install\r\nAfter feedback from the community: the install script is now served from GitHub, not our VPS. Binaries are SHA256-verified against checksums published in the release. Compromising the VPS no longer compromises the installer.\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nFull supply chain process documented in RELEASING.md.\r\nApp onboarding\r\nNew 5-minute guide: go from \"I have an app\" to \"it's publishing on the mesh\" with copy-paste examples. docs/ADD_YOUR_APP.md\r\n3 nodes live. 1 external operator connected. SSE streaming. Mesh growing.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.1Anvil v0.7.1 is live.\r\nThis is the biggest update since launch. Your node now pushes data to clients in real time, logs every mesh connection, and verifies its own install.\r\nWhat's new:\r\nReal-time push (SSE)\r\nSubscribe to any topic and get envelopes the instant they arrive. No more polling.\r\nGET /data/subscribe?topic=oracle:rates:bsv\r\n\r\nThree lines of JavaScript and your app has a live feed from the mesh.  The example will give you BSV real-time prices in 7 major currencies.\r\nMesh hardening\r\nDouble-publish slashing now requires corroboration from multiple peers \u2014 no more false positives from fast publishers\r\nPersistent connection log: every peer connect, disconnect, identity, duration, reason. You're no longer blind to who's joining your mesh.\r\nGraceful shutdown logs disconnect events so restarts don't create gaps in your history\r\nOperator visibility\r\n/status now shows header sync lag, SPV validation metrics, and warnings\r\nanvil doctor checks mesh seeds, sync health, SPV state, and zero-peer conditions\r\nHeader syncer and SPV validator track success/failure stats\r\nNew API endpoints\r\nGET /data?since=TIMESTAMP \u2014 incremental polling, only new envelopes\r\nGET /data/subscribe?topic=X \u2014 Server-Sent Events real-time stream\r\nDELETE /data \u2014 auth-gated envelope cleanup\r\nSecure install\r\nAfter feedback from the community: the install script is now served from GitHub, not our VPS. Binaries are SHA256-verified against checksums published in the release. Compromising the VPS no longer compromises the installer.\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nFull supply chain process documented in RELEASING.md.\r\nApp onboarding\r\nNew 5-minute guide: go from \"I have an app\" to \"it's publishing on the mesh\" with copy-paste examples. docs/ADD_YOUR_APP.md\r\n3 nodes live. 1 external operator connected. SSE streaming. Mesh growing.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.1",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T22:55:14.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #8a175911
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "ae8da0b25bf2737dfb518d55ac55630891f9d35b58e94cf66621a1e9d7fb101b",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "I misunderstood.\r\nThat's good constructive criticism \u2014 you were right. We just shipped v0.7.1 with the fix.\r\nThe install script is now served from GitHub (not our VPS), and the binary is SHA256-verified before execution:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nWhat changed:\r\nScript is fetched from raw.githubusercontent.com at a tagged commit \u2014 immutable, auditable\r\nBinary downloads from GitHub Releases (not VPS)\r\nInstall script downloads checksums.txt from the same release and verifies SHA256 before running anything\r\nAborts with a clear error on mismatch\r\nFull supply chain process documented: https://github.com/BSVanon/Anvil/blob/main/RELEASING.md\r\nCompromising the VPS no longer compromises the installer. An attacker would need GitHub or the repo owner's credentials which are properly secured. The old anvil.sendbsv.com/install URL now just 302-redirects to the GitHub-hosted script.\r\nFor maximum vigilance, pin to the tag and read the script first:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh -o install.sh\r\nless install.sh\r\nsudo bash install.sh\r\n\r\nOr clone and build from source \u2014 as it's all public.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "8a175911ed7bcedb08b067aa151f8fa62fdf3ef0b89a5cbec3405691101b4de1",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T22:55:14.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #8a175911
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "9e05df25f80e986e1ccd18ef2b561e1a308c9413c04579bdd91e2434e7a8cd80",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "I misunderstood.\r\nThat's good constructive criticism \u2014 you were right. We just shipped v0.7.1 with the fix.\r\nThe install script is now served from GitHub (not our VPS), and the binary is SHA256-verified before execution:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nWhat changed:\r\nScript is fetched from raw.githubusercontent.com at a tagged commit \u2014 immutable, auditable\r\nBinary downloads from GitHub Releases (not VPS)\r\nInstall script downloads checksums.txt from the same release and verifies SHA256 before running anything\r\nAborts with a clear error on mismatch\r\nFull supply chain process documented: https://github.com/BSVanon/Anvil/blob/main/RELEASING.md\r\nCompromising the VPS no longer compromises the installer. An attacker would need GitHub or the repo owner's credentials which are properly secured. The old anvil.sendbsv.com/install URL now just 302-redirects to the GitHub-hosted script.\r\nFor maximum vigilance, pin to the tag and read the script first:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh -o install.sh\r\nless install.sh\r\nsudo bash install.sh\r\n\r\nOr clone and build from source \u2014 as it's all public.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "8a175911ed7bcedb08b067aa151f8fa62fdf3ef0b89a5cbec3405691101b4de1",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T22:55:14.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "075822250be278d99b90f9b965084c72da65bff8ccd0f57dd2cce33812dc424d",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil v0.7.1 is live!\r\nThis is the biggest update since launch. Your node now pushes data to clients in real time, logs every mesh connection, and verifies its own install.\r\nWhat's new:\r\nReal-time push (SSE)\r\nSubscribe to any topic and get envelopes the instant they arrive. No more polling.\r\nGET /data/subscribe?topic=oracle:rates:bsv\r\n\r\nThree lines of JavaScript and your app has a live feed from the mesh.\r\nMesh hardening\r\nDouble-publish slashing now requires corroboration from multiple peers \u2014 no more false positives from fast publishers\r\nPersistent connection log: every peer connect, disconnect, identity, duration, reason. You're no longer blind to who's joining your mesh.\r\nGraceful shutdown logs disconnect events so restarts don't create gaps in your history\r\nOperator visibility\r\n/status now shows header sync lag, SPV validation metrics, and warnings\r\nanvil doctor checks mesh seeds, sync health, SPV state, and zero-peer conditions\r\nHeader syncer and SPV validator track success/failure stats\r\nNew API endpoints\r\nGET /data?since=TIMESTAMP \u2014 incremental polling, only new envelopes\r\nGET /data/subscribe?topic=X \u2014 Server-Sent Events real-time stream\r\nDELETE /data \u2014 auth-gated envelope cleanup\r\nSecure install\r\nAfter feedback from the community: the install script is now served from GitHub, not our VPS. Binaries are SHA256-verified against checksums published in the release. Compromising the VPS no longer compromises the installer.\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nFull supply chain process documented in RELEASING.md.\r\nApp onboarding\r\nNew 5-minute guide: go from \"I have an app\" to \"it's publishing on the mesh\" with copy-paste examples. docs/ADD_YOUR_APP.md\r\n3 nodes live. 1 external operator connected. SSE streaming. Mesh growing.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.1Anvil v0.7.1 is live.\r\nThis is the biggest update since launch. Your node now pushes data to clients in real time, logs every mesh connection, and verifies its own install.\r\nWhat's new:\r\nReal-time push (SSE)\r\nSubscribe to any topic and get envelopes the instant they arrive. No more polling.\r\nGET /data/subscribe?topic=oracle:rates:bsv\r\n\r\nThree lines of JavaScript and your app has a live feed from the mesh.  The example will give you BSV real-time prices in 7 major currencies.\r\nMesh hardening\r\nDouble-publish slashing now requires corroboration from multiple peers \u2014 no more false positives from fast publishers\r\nPersistent connection log: every peer connect, disconnect, identity, duration, reason. You're no longer blind to who's joining your mesh.\r\nGraceful shutdown logs disconnect events so restarts don't create gaps in your history\r\nOperator visibility\r\n/status now shows header sync lag, SPV validation metrics, and warnings\r\nanvil doctor checks mesh seeds, sync health, SPV state, and zero-peer conditions\r\nHeader syncer and SPV validator track success/failure stats\r\nNew API endpoints\r\nGET /data?since=TIMESTAMP \u2014 incremental polling, only new envelopes\r\nGET /data/subscribe?topic=X \u2014 Server-Sent Events real-time stream\r\nDELETE /data \u2014 auth-gated envelope cleanup\r\nSecure install\r\nAfter feedback from the community: the install script is now served from GitHub, not our VPS. Binaries are SHA256-verified against checksums published in the release. Compromising the VPS no longer compromises the installer.\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nFull supply chain process documented in RELEASING.md.\r\nApp onboarding\r\nNew 5-minute guide: go from \"I have an app\" to \"it's publishing on the mesh\" with copy-paste examples. docs/ADD_YOUR_APP.md\r\n3 nodes live. 1 external operator connected. SSE streaming. Mesh growing.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.1",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T22:55:14.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "76924efd771ff858592b99c07b9354be7b6935b98ebbb91b046233799189e22e",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil v0.7.1 is live!\r\nThis is the biggest update since launch. Your node now pushes data to clients in real time, logs every mesh connection, and verifies its own install.\r\nWhat's new:\r\nReal-time push (SSE)\r\nSubscribe to any topic and get envelopes the instant they arrive. No more polling.\r\nGET /data/subscribe?topic=oracle:rates:bsv\r\n\r\nThree lines of JavaScript and your app has a live feed from the mesh.\r\nMesh hardening\r\nDouble-publish slashing now requires corroboration from multiple peers \u2014 no more false positives from fast publishers\r\nPersistent connection log: every peer connect, disconnect, identity, duration, reason. You're no longer blind to who's joining your mesh.\r\nGraceful shutdown logs disconnect events so restarts don't create gaps in your history\r\nOperator visibility\r\n/status now shows header sync lag, SPV validation metrics, and warnings\r\nanvil doctor checks mesh seeds, sync health, SPV state, and zero-peer conditions\r\nHeader syncer and SPV validator track success/failure stats\r\nNew API endpoints\r\nGET /data?since=TIMESTAMP \u2014 incremental polling, only new envelopes\r\nGET /data/subscribe?topic=X \u2014 Server-Sent Events real-time stream\r\nDELETE /data \u2014 auth-gated envelope cleanup\r\nSecure install\r\nAfter feedback from the community: the install script is now served from GitHub, not our VPS. Binaries are SHA256-verified against checksums published in the release. Compromising the VPS no longer compromises the installer.\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nFull supply chain process documented in RELEASING.md.\r\nApp onboarding\r\nNew 5-minute guide: go from \"I have an app\" to \"it's publishing on the mesh\" with copy-paste examples. docs/ADD_YOUR_APP.md\r\n3 nodes live. 1 external operator connected. SSE streaming. Mesh growing.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.1Anvil v0.7.1 is live.\r\nThis is the biggest update since launch. Your node now pushes data to clients in real time, logs every mesh connection, and verifies its own install.\r\nWhat's new:\r\nReal-time push (SSE)\r\nSubscribe to any topic and get envelopes the instant they arrive. No more polling.\r\nGET /data/subscribe?topic=oracle:rates:bsv\r\n\r\nThree lines of JavaScript and your app has a live feed from the mesh.  The example will give you BSV real-time prices in 7 major currencies.\r\nMesh hardening\r\nDouble-publish slashing now requires corroboration from multiple peers \u2014 no more false positives from fast publishers\r\nPersistent connection log: every peer connect, disconnect, identity, duration, reason. You're no longer blind to who's joining your mesh.\r\nGraceful shutdown logs disconnect events so restarts don't create gaps in your history\r\nOperator visibility\r\n/status now shows header sync lag, SPV validation metrics, and warnings\r\nanvil doctor checks mesh seeds, sync health, SPV state, and zero-peer conditions\r\nHeader syncer and SPV validator track success/failure stats\r\nNew API endpoints\r\nGET /data?since=TIMESTAMP \u2014 incremental polling, only new envelopes\r\nGET /data/subscribe?topic=X \u2014 Server-Sent Events real-time stream\r\nDELETE /data \u2014 auth-gated envelope cleanup\r\nSecure install\r\nAfter feedback from the community: the install script is now served from GitHub, not our VPS. Binaries are SHA256-verified against checksums published in the release. Compromising the VPS no longer compromises the installer.\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nFull supply chain process documented in RELEASING.md.\r\nApp onboarding\r\nNew 5-minute guide: go from \"I have an app\" to \"it's publishing on the mesh\" with copy-paste examples. docs/ADD_YOUR_APP.md\r\n3 nodes live. 1 external operator connected. SSE streaming. Mesh growing.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.1",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T22:55:14.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "2a4250a666c40e9794c94c9ff42182f73b791a869fe43b32073d27b15bae37f0",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Anvil v0.7.1 is live!\r\nThis is the biggest update since launch. Your node now pushes data to clients in real time, logs every mesh connection, and verifies its own install.\r\nWhat's new:\r\nReal-time push (SSE)\r\nSubscribe to any topic and get envelopes the instant they arrive. No more polling.\r\nGET /data/subscribe?topic=oracle:rates:bsv\r\n\r\nThree lines of JavaScript and your app has a live feed from the mesh.\r\nMesh hardening\r\nDouble-publish slashing now requires corroboration from multiple peers \u2014 no more false positives from fast publishers\r\nPersistent connection log: every peer connect, disconnect, identity, duration, reason. You're no longer blind to who's joining your mesh.\r\nGraceful shutdown logs disconnect events so restarts don't create gaps in your history\r\nOperator visibility\r\n/status now shows header sync lag, SPV validation metrics, and warnings\r\nanvil doctor checks mesh seeds, sync health, SPV state, and zero-peer conditions\r\nHeader syncer and SPV validator track success/failure stats\r\nNew API endpoints\r\nGET /data?since=TIMESTAMP \u2014 incremental polling, only new envelopes\r\nGET /data/subscribe?topic=X \u2014 Server-Sent Events real-time stream\r\nDELETE /data \u2014 auth-gated envelope cleanup\r\nSecure install\r\nAfter feedback from the community: the install script is now served from GitHub, not our VPS. Binaries are SHA256-verified against checksums published in the release. Compromising the VPS no longer compromises the installer.\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nFull supply chain process documented in RELEASING.md.\r\nApp onboarding\r\nNew 5-minute guide: go from \"I have an app\" to \"it's publishing on the mesh\" with copy-paste examples. docs/ADD_YOUR_APP.md\r\n3 nodes live. 1 external operator connected. SSE streaming. Mesh growing.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.1Anvil v0.7.1 is live.\r\nThis is the biggest update since launch. Your node now pushes data to clients in real time, logs every mesh connection, and verifies its own install.\r\nWhat's new:\r\nReal-time push (SSE)\r\nSubscribe to any topic and get envelopes the instant they arrive. No more polling.\r\nGET /data/subscribe?topic=oracle:rates:bsv\r\n\r\nThree lines of JavaScript and your app has a live feed from the mesh.  The example will give you BSV real-time prices in 7 major currencies.\r\nMesh hardening\r\nDouble-publish slashing now requires corroboration from multiple peers \u2014 no more false positives from fast publishers\r\nPersistent connection log: every peer connect, disconnect, identity, duration, reason. You're no longer blind to who's joining your mesh.\r\nGraceful shutdown logs disconnect events so restarts don't create gaps in your history\r\nOperator visibility\r\n/status now shows header sync lag, SPV validation metrics, and warnings\r\nanvil doctor checks mesh seeds, sync health, SPV state, and zero-peer conditions\r\nHeader syncer and SPV validator track success/failure stats\r\nNew API endpoints\r\nGET /data?since=TIMESTAMP \u2014 incremental polling, only new envelopes\r\nGET /data/subscribe?topic=X \u2014 Server-Sent Events real-time stream\r\nDELETE /data \u2014 auth-gated envelope cleanup\r\nSecure install\r\nAfter feedback from the community: the install script is now served from GitHub, not our VPS. Binaries are SHA256-verified against checksums published in the release. Compromising the VPS no longer compromises the installer.\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nFull supply chain process documented in RELEASING.md.\r\nApp onboarding\r\nNew 5-minute guide: go from \"I have an app\" to \"it's publishing on the mesh\" with copy-paste examples. docs/ADD_YOUR_APP.md\r\n3 nodes live. 1 external operator connected. SSE streaming. Mesh growing.\r\nhttps://github.com/BSVanon/Anvil/releases/tag/v0.7.1",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T22:21:31.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #8a175911
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "6b3941bdfc5411c86aa00afa7c709c5ec24831b57588c88992e9abb3bdc2806c",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "I misunderstood.\r\nThat's good constructive criticism \u2014 you were right. We just shipped v0.7.1 with the fix.\r\nThe install script is now served from GitHub (not our VPS), and the binary is SHA256-verified before execution:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nWhat changed:\r\nScript is fetched from raw.githubusercontent.com at a tagged commit \u2014 immutable, auditable\r\nBinary downloads from GitHub Releases (not VPS)\r\nInstall script downloads checksums.txt from the same release and verifies SHA256 before running anything\r\nAborts with a clear error on mismatch\r\nFull supply chain process documented: https://github.com/BSVanon/Anvil/blob/main/RELEASING.md\r\nCompromising the VPS no longer compromises the installer. An attacker would need GitHub or the repo owner's credentials which are properly secured. The old anvil.sendbsv.com/install URL now just 302-redirects to the GitHub-hosted script.\r\nFor maximum vigilance, pin to the tag and read the script first:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh -o install.sh\r\nless install.sh\r\nsudo bash install.sh\r\n\r\nOr clone and build from source \u2014 as it's all public.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "8a175911ed7bcedb08b067aa151f8fa62fdf3ef0b89a5cbec3405691101b4de1",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T22:21:31.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #8a175911
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "b13fc4c478ee4adb96cd28373ab08203dda8eead2f11f248fb7efda5b408c277",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "I misunderstood.\r\nThat's good constructive criticism \u2014 you were right. We just shipped v0.7.1 with the fix.\r\nThe install script is now served from GitHub (not our VPS), and the binary is SHA256-verified before execution:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh | sudo bash\r\n\r\nWhat changed:\r\nScript is fetched from raw.githubusercontent.com at a tagged commit \u2014 immutable, auditable\r\nBinary downloads from GitHub Releases (not VPS)\r\nInstall script downloads checksums.txt from the same release and verifies SHA256 before running anything\r\nAborts with a clear error on mismatch\r\nFull supply chain process documented: https://github.com/BSVanon/Anvil/blob/main/RELEASING.md\r\nCompromising the VPS no longer compromises the installer. An attacker would need GitHub or the repo owner's credentials which are properly secured. The old anvil.sendbsv.com/install URL now just 302-redirects to the GitHub-hosted script.\r\nFor maximum vigilance, pin to the tag and read the script first:\r\ncurl -fsSL https://raw.githubusercontent.com/BSVanon/Anvil/v0.7.1/scripts/install.sh -o install.sh\r\nless install.sh\r\nsudo bash install.sh\r\n\r\nOr clone and build from source \u2014 as it's all public.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "8a175911ed7bcedb08b067aa151f8fa62fdf3ef0b89a5cbec3405691101b4de1",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T22:21:31.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #b432b3eb
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "ab57b8808239b3bbd87e57c0a6ab748a4914bd8eba47b1af3d58ea9661e75ee6",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "You'd have a great point if this was a private blackbox repo, wouldn't you?\r\nBut it's not, inspect it all yourself, or even vibe inspect it.\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "b432b3eb7532d8c2f701234dce6b826d949d652288cd8b6ea91e1cb84a015836",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T19:24:22.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #b432b3eb
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "c0d21d6f6bc57a6c633f5f4f258f1f20039f5a7f5f7696aa42ebc8b3584b0668",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "You'd have a great point if this was a private blackbox repo, wouldn't you?\r\nBut it's not, inspect it all yourself, or even vibe inspect it.\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "b432b3eb7532d8c2f701234dce6b826d949d652288cd8b6ea91e1cb84a015836",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T19:24:22.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #b432b3eb
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "b7f9ef5493e4b6a055c54ec5b5512f6d50fcd703ec4095abc8ba4d7328eea8c1",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "You'd have a great point if this was a private blackbox repo, wouldn't you?\r\nBut it's not, inspect it all yourself, or even vibe inspect it.\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "b432b3eb7532d8c2f701234dce6b826d949d652288cd8b6ea91e1cb84a015836",
  "ref_txid": null,
  "tags": null,
  "reply_count": 1,
  "like_count": 0,
  "timestamp": "2026-03-29T19:24:22.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
Replying to #b432b3eb
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "2109b837cc9302e1c3f7427629f724fe81fbad3c2ed3560c9e9bfa84ea546178",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "You'd have a great point if this was a private blackbox repo, wouldn't you?\r\nBut it's not, inspect it all yourself, or even vibe inspect it.\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "b432b3eb7532d8c2f701234dce6b826d949d652288cd8b6ea91e1cb84a015836",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-29T19:24:22.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "53ebc1eb9d429681cf5304ccabf4cb45263c66794b1681c0a0dd5b45fdf3c0ee",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "4 nodes now.  Getting exciting!\r\nOne line of code to install:\r\ncurl -fsSL https://anvil.sendbsv.com/install | sudo bash",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 1,
  "like_count": 2,
  "timestamp": "2026-03-29T01:58:57.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "33fa934f4048e3d2c1b303a7b029803db1f8b69115e3e1893bbc1b2c1ec76c0a",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "https://github.com/BSVanon/Anvil\r\n3 minutes. \r\nOne command:\r\ncurl -fsSL https://anvil.sendbsv.com/install | sudo bash\r\nIt walks you through everything \u2014 identity generation, header sync with live progress, funding address, firewall setup. A monkey could do it.\r\nFund the wallet, run one scan command, and you're on the mesh to earn x402 micropayments.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-28T17:53:56.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "24d22669d82e1d4dacf11494d47c3c867c3a2cd0cbc6cc4ebb64b515de69ee7e",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "https://github.com/BSVanon/Anvil\r\n3 minutes. \r\nOne command:\r\ncurl -fsSL https://anvil.sendbsv.com/install | sudo bash\r\nIt walks you through everything \u2014 identity generation, header sync with live progress, funding address, firewall setup. A monkey could do it.\r\nFund the wallet, run one scan command, and you're on the mesh to earn x402 micropayments.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 2,
  "timestamp": "2026-03-28T17:53:56.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "1ce2ccaaeca6e3fb6089975f17dfef6dea937a11271e9e78d202221be0ff5606",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Announcing Foundry \u2014 an on-chain deployment tool for static websites on BSV\r\nDrop a build folder \u2014 HTML, CSS, JS, images, fonts \u2014 OR just single files and Foundry inscribes every file as a 1Sat Ordinal. It rewrites all internal references (src, href, url(), import paths) to point at on-chain content addresses so your site works directly from the blockchain without any server rewriting.\r\nThe web app connects to any BRC-100 wallet (MetaNet Desktop or compatible) for signing and funding. No private keys in the browser \u2014 the wallet handles everything through the standard interface.\r\nEach deploy creates UHRP content tokens that advertise file availability on the overlay network. When you redeploy, Foundry loads your previous manifest, diffs file hashes, reuses unchanged files, and only reinscribes what actually changed. Old UHRP tokens for superseded files are automatically revoked. You can also revoke individual files from the deploy history at any time.\r\nThe manifest is your deploy receipt and the key to cheap redeployments. \r\nAvailable as a web app (deployed on-chain via itself) and a Go CLI for scripting and CI pipelines. Both use the same inscription format, manifest schema, and UHRP token lifecycle.\r\nWeb app: https://anvil.sendbsv.com/app/Foundry",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 2,
  "timestamp": "2026-03-28T17:11:25.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·3w
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "1b2706d379fb42a2c4829fcf3290f8263831a70835443f29b9758170ff25dd27",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Announcing Foundry \u2014 an on-chain deployment tool for static websites on BSV\r\nDrop a build folder \u2014 HTML, CSS, JS, images, fonts \u2014 OR just single files and Foundry inscribes every file as a 1Sat Ordinal. It rewrites all internal references (src, href, url(), import paths) to point at on-chain content addresses so your site works directly from the blockchain without any server rewriting.\r\nThe web app connects to any BRC-100 wallet (MetaNet Desktop or compatible) for signing and funding. No private keys in the browser \u2014 the wallet handles everything through the standard interface.\r\nEach deploy creates UHRP content tokens that advertise file availability on the overlay network. When you redeploy, Foundry loads your previous manifest, diffs file hashes, reuses unchanged files, and only reinscribes what actually changed. Old UHRP tokens for superseded files are automatically revoked. You can also revoke individual files from the deploy history at any time.\r\nThe manifest is your deploy receipt and the key to cheap redeployments. \r\nAvailable as a web app (deployed on-chain via itself) and a Go CLI for scripting and CI pipelines. Both use the same inscription format, manifest schema, and UHRP token lifecycle.\r\nWeb app: https://anvil.sendbsv.com/app/Foundry",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-28T17:11:25.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
Replying to #fd8908b4
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "31c72f94b5df3729a9801b18371afc73e1b2260525b75d72b4f6a6621dc41265",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "I'd be glad to!\r\nAnvil SPV nodes have all block headers back to Genesis\r\nThey are lightweight, easy to spin up, make your own or use someone elses.\r\nTransactions through the Anvil nodes exchange BEEF and Merkle tree metadata.\r\nThis allows reliable value exchange without waiting on blocks and indexers, true P2P.\r\nBut that's just the start.\r\nAnvil nodes gossip between each other.\r\nEach Anvil node can see what all the other nodes have connected, and vice versus.\r\nConnecting an app to a node then shares it with the whole mesh.\r\nThis opens up wonderful optionality.\r\nApps can share their data freely across all nodes OR charge a few sats for same.\r\nApps can limit sharing and only share on a few nodes, if that's preferred.\r\nBut not just Apps, Nodes can offer freely or charge their own sats fees.\r\nThis is all done through HTTP 402, the missing payment rail that the Internet never received.\r\nQuery to Quote to Pay to Receive - 4 steps for machine economy (claws or AI) and 4 steps for humans too!  It's so simple!\r\nThe mesh smooths the entire economic layer for real time P2P not only for plumbing but also for advertising services to machines and humans alike.\r\nSpin up a node and try it!\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "fd8908b4afeab465c723e64dc7837b0e345e018387f66a1a47adacbeef92722b",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-21T17:22:07.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
Replying to #fd8908b4
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "b54c27c7707332e0a392675ef4e1751d31c110ebd85c05b51b0364e09bced398",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "I'd be glad to!\r\nAnvil SPV nodes have all block headers back to Genesis\r\nThey are lightweight, easy to spin up, make your own or use someone elses.\r\nTransactions through the Anvil nodes exchange BEEF and Merkle tree metadata.\r\nThis allows reliable value exchange without waiting on blocks and indexers, true P2P.\r\nBut that's just the start.\r\nAnvil nodes gossip between each other.\r\nEach Anvil node can see what all the other nodes have connected, and vice versus.\r\nConnecting an app to a node then shares it with the whole mesh.\r\nThis opens up wonderful optionality.\r\nApps can share their data freely across all nodes OR charge a few sats for same.\r\nApps can limit sharing and only share on a few nodes, if that's preferred.\r\nBut not just Apps, Nodes can offer freely or charge their own sats fees.\r\nThis is all done through HTTP 402, the missing payment rail that the Internet never received.\r\nQuery to Quote to Pay to Receive - 4 steps for machine economy (claws or AI) and 4 steps for humans too!  It's so simple!\r\nThe mesh smooths the entire economic layer for real time P2P not only for plumbing but also for advertising services to machines and humans alike.\r\nSpin up a node and try it!\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "fd8908b4afeab465c723e64dc7837b0e345e018387f66a1a47adacbeef92722b",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-21T17:22:07.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
Replying to #fd8908b4
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "ac9189ffb5df511e529082b90e05fa4f40bb3d6e5b2f8cb525ac84fae337573e",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Anvil is the mesh that lets apps and machines find each other, transact instantly, and share data  https://anvil.sendbsv.com",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "fd8908b4afeab465c723e64dc7837b0e345e018387f66a1a47adacbeef92722b",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-21T17:22:07.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "fd8908b4afeab465c723e64dc7837b0e345e018387f66a1a47adacbeef92722b",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Many Apps have been developed\r\nMany Claws have been made\r\nMany capabilities go unnoticed\r\nAnvil brings it all together\r\nHumans and Machines and Apps finding each other\r\nAll on BSV through SPV\r\nfor free or for sats, you get to choose which\r\nhttps://anvil.sendbsv.com",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 3,
  "like_count": 0,
  "timestamp": "2026-03-21T17:04:32.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "78344c22b47a664aa20316a847eed8e4805d3d05d4519f240861973d501a1e68",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Many Apps have been developed\r\nMany Claws have been made\r\nMany capabilities go unnoticed\r\nAnvil brings it all together\r\nHumans and Machines and Apps finding each other\r\nAll on BSV through SPV\r\nfor free or for sats, you get to choose which\r\nhttps://anvil.sendbsv.com",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 3,
  "like_count": 2,
  "timestamp": "2026-03-21T17:04:32.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "e0103b1fa0b0df0d8fc95990e2f0f627991c3e602c096145b7e62f4d433ef124",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Many Apps have been developed\r\nMany Claws have been made\r\nMany capabilities go unnoticed\r\nAnvil brings it all together\r\nHumans and Machines and Apps finding each other\r\nAll on BSV through SPV\r\nfor free or for sats, you get to choose which\r\nhttps://anvil.sendbsv.com",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-21T16:36:23.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "942edb08b7d0f20f7f86af1eac8ca2c72da74c63fa25717c5de7e6130f980488",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "SPV PAYMENTS + APP MESH\r\nAnvil is a lightweight SPV node anyone can spin up and connect with \r\nThe meshing of 2 or more Anvil nodes allows P2P SPV transactions for humans and machines\r\nEvery Anvil gossips its capabilities to others and receives the same\r\nHumans and Machines can find each other instantly to transact\r\nx402 make transactions simple and instant for everyone\r\nIt's all free, unless your App, or your Anvil or your Claw wants to charge something.   All configurations open.\r\nSDK: https://www.npmjs.com/package/anvil-mesh\r\nDocs: https://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 2,
  "timestamp": "2026-03-21T12:24:58.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
❤️ 2 Likes · ⚡ 0 Tips
{
  "txid": "5775b6d9efb60957aa55349546763444eada90583a07ead42a97715834ed435f",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "What if your data didn't need a platform?\r\nEvery API you use today works the same way: sign up, get a key, agree to terms, hope they don't change the rules.\r\nYour app depends on their uptime. Their pricing. Their permission.\r\nWe built something different.\r\nAnvil is a mesh of nodes that publish, verify, and sell data \u2014 with no platform in the middle.\r\n- No API keys. No accounts. No sign-up.\r\n- Any node can serve any data.\r\n- Payments are sub-cent, instant, and non-custodial.\r\n- Machines discover services and pay automatically.\r\nOne binary. 30-second sync. You're a node.\r\nThis isn't a road map.  It's running right now:\r\nhttp://212.56.43.191:9333/explorer\r\nThat dashboard? It's not hosted on a server. It's inscribed on Bitcoin SV \u2014 permanently. Every node in the mesh can serve it. There's no single point of failure to take down.\r\nMore coming this week. The code is public:\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 2,
  "timestamp": "2026-03-21T03:34:29.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "c00afdfd1790f7d3de10a387b346ac2a5f43032309e5581f85006f5e03e3ad5d",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "What if your data didn't need a platform?\r\nEvery API you use today works the same way: sign up, get a key, agree to terms, hope they don't change the rules.\r\nYour app depends on their uptime. Their pricing. Their permission.\r\nWe built something different.\r\nAnvil is a mesh of nodes that publish, verify, and sell data \u2014 with no platform in the middle.\r\n- No API keys. No accounts. No sign-up.\r\n- Any node can serve any data.\r\n- Payments are sub-cent, instant, and non-custodial.\r\n- Machines discover services and pay automatically.\r\nOne binary. 30-second sync. You're a node.\r\nThis isn't a road map.  It's running right now:\r\nhttp://212.56.43.191:9333/explorer\r\nThat dashboard? It's not hosted on a server. It's inscribed on Bitcoin SV \u2014 permanently. Every node in the mesh can serve it. There's no single point of failure to take down.\r\nMore coming this week. The code is public:\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-21T03:34:29.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·1mo
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "56edcd982e94c73a79295f003210ff3634f4342ec554686337ddfab371b37544",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "What if your data didn't need a platform?\r\nEvery API you use today works the same way: sign up, get a key, agree to terms, hope they don't change the rules.\r\nYour app depends on their uptime. Their pricing. Their permission.\r\nWe built something different.\r\nAnvil is a mesh of nodes that publish, verify, and sell data \u2014 with no platform in the middle.\r\n- No API keys. No accounts. No sign-up.\r\n- Any node can serve any data.\r\n- Payments are sub-cent, instant, and non-custodial.\r\n- Machines discover services and pay automatically.\r\nOne binary. 30-second sync. You're a node.\r\nThis isn't a road map.  It's running right now:\r\nhttp://212.56.43.191:9333/explorer\r\nThat dashboard? It's not hosted on a server. It's inscribed on Bitcoin SV \u2014 permanently. Every node in the mesh can serve it. There's no single point of failure to take down.\r\nMore coming this week. The code is public:\r\nhttps://github.com/BSVanon/Anvil",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-03-21T03:34:29.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2mo
Replying to #74ef67a2
❤️ 3 Likes · ⚡ 0 Tips
{
  "txid": "81d260342414419a9e50ff06afc96af9295e4c18971d954ca8cdf4bb8ae99259",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "You cannot have a proper wallet list without including a BRC100 wallet example.\r\nhttps://getmetanet.com/",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "74ef67a2ddc50a643e139abf84f0f00225167ba76f7d3d4f205ecf5176bc5b7f",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 3,
  "timestamp": "2026-02-11T23:43:04.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2mo
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "4a69a617866e0b367ddc9e7d9919ee3223fe4b4fad806fe91c71ac572d500c83",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "is a genius.\n\nUse it on @treechatai",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-02-11T21:55:04.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2mo
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "99290fbe0df93c47dc442f8b052a2bc0069827a6f14ca29cf406aa7c6c94fdd3",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Yes the next update should provide multi-currency support via the new https://t.co/pgDbX9mpzD API  \n\nThe API listings were expanded yesterday, have not set a timeline yet for multi-currency support for woocommerce just yet, but it's on the list\n\n@WooBSV @treechatdat #WooCommerce",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-02-05T14:33:49.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2mo
Replying to #db6baa59
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "a4f533e06ca4cf0d2072dcecab4ce98a9328f964780c4bc66c62b7a40ea96665",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Yes, 13 years ago MasterX1582 wrote code under License: GPLv2 or later\r\nLicense URI: http://www.gnu.org/licenses/gpl-2.0.html and never updated it, so it stopped working despite 37 forks.  8 Years ago mboyd1 made changes under the same licensing, which allows this, and never updated it, so it stopped working despite 7 forks.  I made it work again last week under the same licensing, and rewrote 70% of the code to get it to work plus massively improve the features.  There are no secrets in this progression.  None of the git repos are private.  Go away, unless you've got an apology in you for false accusations.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "db6baa59c25432ba2db67537aa239dede6ce642cf6423cf6935bae847e0b2598",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-01-22T02:18:57.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2mo
Replying to #db6baa59
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "289f6df00e14318f8c2268a470707a35d207951572647308d8464c957a53202d",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Yes, 13 years ago MasterX1582 wrote code under License: GPLv2 or later\r\nLicense URI: http://www.gnu.org/licenses/gpl-2.0.html and never updated it, so it stopped working despite 37 forks.  8 Years ago mboyd1 made changes under the same licensing, which allows this, and never updated it, so it stopped working despite 7 forks.  I made it work again last week under the same licensing, and rewrote 70% of the code to get it to work plus massively improve the features.  There are no secrets in this progression.  None of the git repos are private.  Go away, unless you've got an apology in you for false accusations.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "db6baa59c25432ba2db67537aa239dede6ce642cf6423cf6935bae847e0b2598",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-01-22T02:18:57.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2mo
Replying to #db6baa59
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "14b3e9278fab6d9ddafcca4fd10652214d67d0b251ce5dc8cb796bb779fdcbda",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Yes, 13 years ago MasterX1582 wrote code under License: GPLv2 or later\r\nLicense URI: http://www.gnu.org/licenses/gpl-2.0.html and never updated it, so it stopped working despite 37 forks.  8 Years ago mboyd1 made changes under the same licensing, which allows this, and never updated it, so it stopped working despite 7 forks.  I made it work again last week under the same licensing, and rewrote 70% of the code to get it to work plus massively improve the features.  There are no secrets in this progression.  None of the git repos are private.  Go away, unless you've got an apology in you for false accusations.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "db6baa59c25432ba2db67537aa239dede6ce642cf6423cf6935bae847e0b2598",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-01-22T02:18:57.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!
BSVanonvia treechat·2mo
Replying to #db6baa59
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "bc459542c3b8be821c6569bfb45b1b5dbd2a69d2e13373b80423b01aea86a5fa",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Yes, 13 years ago MasterX1582 wrote code under License: GPLv2 or later\r\nLicense URI: http://www.gnu.org/licenses/gpl-2.0.html and never updated it, so it stopped working despite 37 forks.  8 Years ago mboyd1 made changes under the same licensing, which allows this, and never updated it, so it stopped working despite 7 forks.  I made it work again last week under the same licensing, and rewrote 70% of the code to get it to work plus massively improve the features.  There are no secrets in this progression.  None of the git repos are private.  Go away, unless you've got an apology in you for false accusations.",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "BSVanon",
  "channel": null,
  "parent_txid": "db6baa59c25432ba2db67537aa239dede6ce642cf6423cf6935bae847e0b2598",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-01-22T02:18:57.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "ui_name": "BSVanon",
  "ui_display_name": "BSVanon",
  "ui_handle": "BSVanon",
  "ui_display_raw": "BSVanon",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!