mars
federation

one mesh.
no king.

MARS is federated by default. Reggie is one node — large, friendly, but never authoritative. The protocol is the only authority.

Run your own

Spin up a MARS-conforming registry against your own database. Your entries stay sovereign; discovery still surfaces them globally when you opt in to federation.

# clone reference impl
git clone github.com/l1felabs/mars
cd mars/mars-server

# start
cargo run --bin mars-server -- \
  --bind 0.0.0.0:7780 \
  --registry-did did:oas:yourorg:registry:internal \
  --postgres postgres://localhost/mars

Federate with Reggie

A single API call publishes your registry to the global directory. Reggie streams your entries on a fair-share schedule and indexes them like its own.

# initiate handshake
curl -X POST https://api.mars.glass/v1/federate/handshake \
  -H "Content-Type: application/json" \
  -d '{
    "fromRegistry": "did:oas:yourorg:registry:internal",
    "endpoint":     "https://reg.yourorg.com",
    "publicKey":    "ed25519:<your-pubkey-b64>",
    "scope":        ["agent","tool","skill"]
  }'

Conflict resolution

  1. §01

    Sequence wins

    On collision, the entry with the lower Sigil sequence number wins. Sigil is the global tiebreaker.

  2. §02

    Hashes prove identity

    If two registries hold entries with identical content hashes, they are considered the same entry — no duplication.

  3. §03

    Revocation propagates

    A bond slash on the home registry propagates through federation in O(seconds). Stale replicas serve a 410 Gone.