Skip to content

Instantly share code, notes, and snippets.

View melvincarvalho's full-sized avatar
💭
I may be slow to respond.

Melvin Carvalho melvincarvalho

💭
I may be slow to respond.
View GitHub Profile
@melvincarvalho
melvincarvalho / ietfbip110.md
Created July 28, 2026 10:45
An IETF-Style Assessment of BIP-110

An IETF-Style Assessment of BIP-110

Status of This Note

This document evaluates BIP-110 using principles associated with IETF rough consensus and engineering review.

It does not assess any particular activation mechanism, signaling threshold, deployment schedule, or political campaign. Its scope is limited to the technical problem identified by BIP-110, the proposed restrictions, and the substantive objections that have been raised.

Abstract

@melvincarvalho
melvincarvalho / README.md
Last active July 11, 2026 20:02
A plugin in 160 lines, an agent in one ACL entry — gamestr on a JSS pod (did:nostr + NIP-98 + plugins)

A plugin in 160 lines, an agent in one ACL entry

How a terminal habit became a realtime web dashboard — and accidentally became the first real JSS plugin, with a keypair for an identity and zero inotify watches.


For ages I've had this in a terminal:

image

The Plaintext Data Carrier Problem

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

Self Sovereign Agents

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.

@melvincarvalho
melvincarvalho / bip110-reorg-dynamics.md
Last active June 24, 2026 16:21
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 Soft Fork Asymmetry

@melvincarvalho
melvincarvalho / local-first-nostr-solid.md
Last active June 16, 2026 23:48
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.


TL;DR

@melvincarvalho
melvincarvalho / one-schema-three-gates.md
Last active June 14, 2026 12:05
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.

@melvincarvalho
melvincarvalho / walk-big-one.md
Created May 18, 2026 11:31
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:

@melvincarvalho
melvincarvalho / a-meeting-i-wasnt-in.md
Last active May 18, 2026 11:32
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: