Fabric DHT
Fabric enables you to sign Nostr events, and DNS records with a Bitcoin sovereign handle (a space
), or a public key (an npub
), and publish them to the Fabric peer-to-peer network without adding any bloat to the Bitcoin blockchain!
Who can use it?
Own a Space? Publish forward records tied to your handle e.g.,
@example
. To grab one, see quick start or buy one from a secondary marketplace.No Space? No Problem! Use your
npub
to publish Nostr events (like NIP-65 relay lists) instead.
and verify installation
By default, the beam
tool will try to load trust anchors from http://127.0.0.1:7225/root-anchors.json
to verify space handles. If you don't have a spaces spaces client, you can load the file from an external source that you trust e.g.
Don't trust, verify! Run your own Bitcoin full node and spaces client.\
DNS Records
For example:
Nostr events
Publishing records by handle
If you own a space, you can publish forward records resolvable by your handle e.g. @example
Publish DNS records
Spaces use the DNS class code 2 (CLASS2) to further distinguish them from regular domains in the IN class.
Create a zone file:
Add your records to a file and save it e.g. myexample.zone
Remember to replace @example
with your space name, and remember to put the .
at the end. It's not a typo in DNS zone files!
Sign the file
The wallet will turn it into a signed Nostr event and bundles proof information to make it ready for publishing to Fabric.
Publish it with
beam
Publish Nostr Events
To sign a forward event (lookup by a space handle), you could do the following:
Note: there's no standard yet for using kind 0 for forward lookups yet but it's here as an example.
For lookups by handle, you should use the --anchor
option to include trust path information and append the space
tag to the event.
Publishing records by pubkey
If you have an npub
, you could publish events on Fabric. This is still experimental and no Nostr client supports lookups through Fabric yet. Here's an example publishing a NIP-65 relay list:
Then publish it
Last updated
Was this helpful?