GDBx /Api

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
Open API CORS enabled no keys required

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

API Reference

Build against the sovereign data mesh from any client. Every write is GDBx-signed (ECDSA P-256), PoW-gated and replay-protected; reads are open.

HTTP base (Pages proxy)
https://gdbx.pages.dev/api/v1

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
Direct edge (Worker · WS · fastest)
https://gdbx.xup.workers.dev

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

Endpoints

Identity — DID registry

POST /did register a DID document — body {addr, pubkey, pubkeyHex, ts, nonce, diff, hash, sig}

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
GET /did/:addr resolve a did:gdbx document

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
POST /identity/role superadmin-signed promote/demote (RBAC guest→superadmin)

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
DELETE /identity GDPR right-to-be-forgotten — cryptographic erasure of everything

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

Sync — signed CRDT deltas

POST /sync apply a signed LWW delta batch — body includes deltas[], ts, nonce, diff, hash, sig

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
GET /sync/:addr?prefix= read merged state (primary + mirror pool, newest-clock wins)

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
WS ws?addr=:addr real-time hub — send hello → put → receive applied + delta broadcasts

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

Mesh — hybrid transports

POST /relay Nostr kind-23124 ingest — GDBx envelope in content, same firewall as HTTP/WS

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
POST /peers presence heartbeat — {addr, transports[], name}

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

Analytics & ops

GET /stats global counters — dids, deltas, active peers, policy block

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
GET /leaderboard top active addresses + transport mix + live peers

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
GET /pool replication pool status — primary + mirror health

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
GET /health liveness probe

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
POST /export signed backup snapshot of an address (owner-proof required)

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

Quickstart

# 1 · read anything — no key needed
curl https://gdbx.pages.dev/api/v1/sync/<addr>?prefix=hello
# 2 · liveness + pool health
curl https://gdbx.xup.workers.dev/health
curl https://gdbx.xup.workers.dev/pool

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
# 3 · write = PoW + GDBx signature (SDK does this for you)
import { makePair, minePoW } from "gdbx";
import { sign } from "gdbx/crypto";

const sig = await sign({ addr, action:"sync.put", ts, payload }, pair);
await fetch(WORKER+"/sync", { method:"POST", body });
# 4 · real-time (Worker serves WS upgrades directly)
new WebSocket("wss://gdbx.xup.workers.dev/ws?addr=<addr>")

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp
JS SDK
sdk/gdbx-sdk.js · browser + Node ESM
Python SDK
packages/gdbx-py — cross-verified with JS vectors
CLI
identity · sync watch · vector · backup · ftp gateway
Guides
conductor/tracks — specs, plans, examples

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp

.GDBx Names — short human links

GET /name/:name resolve a verified .gdbx name (server-side PoW+sig check)
GET /n/:name short-link — 302 redirect to target URL
# claim via SDK then share your short link
const names = new GDBxNames({ pair, pubkeyHex });
await names.claim("myapp", "https://myapp.dev");
// → https://gdbx.pages.dev/n/myapp