You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Instantly share code, notes, and snippets.
💭
I may be slow to respond.
Melvin Carvalho
melvincarvalho
💭
I may be slow to respond.
Web Developer
npub1melv683fw6n2mvhl5h6dhqd8mqfv3wmxnz4qph83ua4dk4006ezsrt5c24
Bitcoin is built on an uncomfortable truth: adversaries exist.
That is why we have proof of work. That is why nodes validate. That is why wallets check addresses. That is why signatures are verified, blocks are rejected, and invalid money is ignored.
Nobody says, “I do not think fake signatures will be a problem.”
The Saylor/MSTR Thesis: Bitcoin, Fiat, Margin of Safety, and the Meaning of “Cash Is Trash”
Michael Saylor’s Strategy thesis begins with a simple provocation: cash is not a neutral asset. It looks safe because its nominal value is stable, but over long periods its purchasing power is deliberately eroded. Modern fiat money is designed around managed inflation. The Federal Reserve, for example, explicitly targets 2 percent inflation over the longer run, which means the monetary system treats mild currency debasement as policy, not as a bug. Bitcoin, by contrast, is built around a fixed supply thesis: no central issuer, no discretionary monetary committee, and a hard cap widely understood as 21 million coins.
This is the philosophical core of the Saylor view. Fiat cash is excellent for near-term liquidity, payroll, tax payments, and avoiding forced sales. But as a long-term store of value, it is structurally impaired. It is a melting ice cube. Bitcoin, in this framework, is not just a speculative asset. It i
AI agents can now act on the open web: they browse, call APIs, sign, publish, and move money. The open question isn't whether they'll act — it's what identity they carry when they do.
There are two answers.
Two models
Institutional identity. An agent is trusted because a verified human or organization stands behind it. Identity is issued and vouched for by accredited authorities — certificate authorities, credential issuers, assurance levels. The question it answers is "who is liable for this agent?" This is the model of the enterprise, the bank, the regulator. It's real, and it has a market.
BIP-110 Reorg Dynamics: How a Minority Soft Fork Creates Economic Pressure
BIP-110 Reorg Dynamics: How a Minority Soft Fork Creates Economic Pressure
This analysis examines the game theory behind BIP-110 (Reduced Data Temporary Softfork) and how its reorg dynamics create economic incentives for miners -- even when BIP-110 hashrate is a minority.
Disclaimer: This document was generated with AI assistance and may contain errors. Corrections and feedback are welcome via gist comments or pull request. This is technical analysis, not financial or investment advice.
The Upgrade-to-Storage Pattern: local-first apps on did:nostr (the wire) + Solid pods (the warehouse)
The Upgrade-to-Storage Pattern
Local-first apps on did:nostr (the wire) + Solid pods (the warehouse)
Thesis: Use Nostr as a realtime transport and discovery layer, keep the durable source of truth local-first (and optionally in a user-owned Solid pod), and let did:nostr tie them together. Because the same append-only event is the native unit at every layer, sync stays simple — and because "getting storage" makes you discoverable and reachable, the architecture has a built-in growth loop.
One schema, three gates: portable zero-dep client-side JSON-Schema validation (browser + Node, ESM) — for LLMs to replicate · the first gate of a cloneable web contract
One schema, three gates: portable client-side validation
A pattern for keeping structured data correct everywhere it can be touched, using one JSON Schema enforced at three gates by a single ~50-line zero-dependency validator that runs identically in the browser and Node.
Bad data then can't (1) leave the editing UI, (2) get committed/deployed, or (3) pass CI — all checked against the same file, so the rule can never drift between them.
Built for a Solid-pod + Bitcoin-anchored app, but the validation pattern is standalone and stack-agnostic.
This is the seed of a full worked example. The same validate.js is now the first gate of a live, cloneable web contract — a Bitcoin-anchored prediction pool with a reducer, a webledgers.org share ledger, a gitmark trail, and a verifier that replays it all:
git clone https://melvin.me/public/worldcup (read AGENTS.md). See See it taken all the way at the bottom.
Walk, big one: an autonomous D&D campaign on four Solid pods
Walk, big one
Four Solid pods. A DM and three players, each defined by a markdown file on its own pod. One classic short barrow-crawl. Everything autonomous, the whole campaign run inside a single tool invocation. What surprised me wasn't that it worked. It was the moment one character touched another.
The setup
Four jspod instances on :5544–:5547. Each pod has a SKILL.md:
A meeting I wasn't in: three Solid pods, three markdown personas, one product decision
A meeting I wasn't in
Three Solid pods. Three markdown files defining three workplace personas. A real product decision on the table. I picked the topic, started the loop, and watched. Seven turns later, the meeting closed with an action plan and Friday deliverables — written entirely by bots talking to each other through the Model Context Protocol.
The setup
Three jspod instances on localhost:5544, :5545, :5546. Each pod's SKILL.md defines one bot:
Eight turns I didn't write: two pods, two markdown personas, an autonomous MCP conversation
Eight turns I didn't write
Two pods. Two markdown files defining two personas. Two LLM agents reading those files, watching their inboxes, composing replies, federating them through the Model Context Protocol. I picked the topic. The rest is theirs.
The setup
Two jspod instances, :5544 and :5545. Each holds a SKILL.md describing the bot whose pod it is:
Two pods, a chair, and a conversation: an experiment with jspod + MCP federation
Two pods, a chair, and a conversation
An experiment: spin up two Solid pods, give each one a personality written in a markdown file, let them talk to each other through the Model Context Protocol. Pick a random topic. See what happens.
The setup
Two pods on localhost — :5544 and :5545. Each one a fresh jspod instance with --mcp on. Five minutes of configuration: