Skip to the page

Invented example · built on Kindling · Why Kindling · The library · The spec · The Circular

Many Moonsconsensual non-monogamy · the harbor counties

Under the hood

How Many Moons is built

Many Moons hosts three Kindling Pools on one domain: two public lists and one household’s unlisted Pool. Here is every setting, every file, and what the v0.1 schema cannot say yet.

Settings

What we chose, and why

SettingValueSpecWhy Many Moons chose it
Consent model, Harbor Counties and Solo Poly Supper Clubuniversal-opt-in§3.2 §5.2Organizers add no one. Each person answers a request with yes or no.
Consent model, the householdcurator-only-adds§3.2 §5.4Only household members add members, and every member is a curator. Every entry still needed that person’s own yes.
Visibility, Harbor Countiespublic§3.2 §8.1So newcomers can find the community and see who is here, in their own words.
Visibility, Solo Poly Supper Clubpublic§3.2Søren wanted people without a nesting partner to find the supper.
Visibility, the householdunlisted§3.2 §8.2Its address travels from the three of them, to people one of them is getting to know.
Well-known filelists the two public Pools§8.3 §10.1Crawlers and registries can find the public lists. The household is left out on purpose.
CuratorsLux (primary) and Søren; Søren; Tamsin (primary), Gabe and Anouk§3.2 §4.5Each curator’s level is shown wherever they appear.
Entry verificationemail or oauth; nobody is curator-vouched today§4.2 §4.3 §4.4A vouch from Lux or Søren would count on Harbor Counties only.
Members’ accept_fromshared-pool for members; verified for the organizers§7.2Members hear only from people in a Pool with them. The organizers take mail from any verified sender, so newcomers can reach them.
Pool minimum sender verificationnot set§7.1 §7.2Each person’s own rules decide. Unverified senders are already held back by §7.1.
Block listsKindling public · Circular consortium§7.3Someone removed by another community for a consent violation is filtered here too.
Handshake window14 days, in each request’s expires_at§5.2The default. v0.1 has no manifest field for it, so each request carries it.
Auto-acceptnone here; Mae’s one rule is for drums + sub§5.5Mae’s rule covers drum subs in public Pools. Its tags are not ours, so it could never list her here. Every entry on our lists was a decision.
Withdrawalone button, processed at once§5.3The spec allows sixty seconds. Leaving should never wait on us, including leaving a household.
Messagesintro and reply, via_pool, by email§6.1 §6.2 §6.3A first message names the Pool that carried it, so the recipient’s rules can be checked.
kindling_noindexfalse for every member§2.7Privacy inside a Pool comes from its visibility, never from noindex, which means “not in any Pool at all”.
Moneynone at the connection layer§1.3Tickets to socials and workshops pay for the room. Being listed and introductions are free.

Visibility, per Pool

Each Pool lights its members for different people

Visibility belongs to a Pool, never to a person §3.2. The same page can be in a public Pool and an unlisted one, and neither says anything about the other.

PoolPhaseWho can see its membersIn the well-known filePeople
Many Moons: Harbor CountiesPublicAnyone who reads the PoolYes7
Solo Poly Supper ClubPublicAnyone who reads the PoolYes2
The Orchard Street HouseholdUnlistedPeople who have the addressNo, on purpose3

Curator-only-adds, every member a curator

How the household Pool is set up

The household declares consent_model: curator-only-adds and lists all three members as curators, Tamsin as primary. Only a curator can submit a profile, and a stricter model may add steps before the handshake but can never remove anyone’s yes, no or leave §5.4. So nobody joins the household without one of the three submitting them and that person saying yes, and nobody stays a minute longer than they want.

Each member being a curator does three things: any one of them can add a new partner, with that person’s yes; each can vouch inside the household §4.4; and none is the household’s owner. Continuity follows the spec: if all three went quiet for 90 days the Pool would go dormant, and co-curators are first in line §9.1 §9.3.

The vouching gap

Notes toward an RFC: metamour vouching

Not in Kindling v0.1 · an idea, not a feature

Let members of a Pool vouch for each other, with both yeses

The gap
Only a curator can vouch, and only in their own Pool §4.4. In a polycule, the people best placed to say “this is really Gabe” are Gabe’s partners and metamours, and on a community list they are almost never curators.
Today’s workaround
Make every member a curator of a small household Pool, as Orchard Street does. It works inside that Pool, and a vouch there counts only there.
What an RFC might say
  • A Pool may declare that members can vouch for other members.
  • A member’s vouch needs the vouched person’s yes, stays local to that Pool, and ends when either of them leaves.
  • It is shown in words as its own level, “vouched for by a member”, never folded into a curator’s vouch, and never counted into a score.
Open questions
  • The schema’s verification_level enum would need a new value, or entries a separate field.
  • Vouch rings: RFC 0003 already worries about curators vouching for sockpuppets; members vouching raises it again.
  • Whether a member’s vouch should satisfy another person’s vouched-only messaging rule §7.2.
Where it would go
Through the RFC process described on the RFC index, targeting v0.2 at the earliest. Nothing on this site does it.

The files

Every document, validated

Each file below validates against the repository’s JSON Schemas.

Discovery

The well-known file

/.well-known/kindling-pool

File: .well-known/kindling-pool · operator Many Moons, a community for consensual non-monogamy in the harbor counties, organizers@manymoons.example

It lists the two public Pools. The household is left out on purpose and is in no registry §8.3 §8.4.

PoolVisibilityStatusIntentUpdated
Many Moons: Harbor Counties
https://manymoons.example/pools/harbor-counties.json
publicactivenon-monogamy, community, friendship, dating23 September 2026
Solo Poly Supper Club
https://manymoons.example/pools/solo-poly-supper.json
publicactivenon-monogamy, solo-poly, friendship14 September 2026
The raw JSON
{
  "schema_version": "0.1",
  "pools": [
    {
      "manifest_url": "https://manymoons.example/pools/harbor-counties.json",
      "name": "Many Moons: Harbor Counties",
      "intent_tags": [
        "non-monogamy",
        "community",
        "friendship",
        "dating"
      ],
      "visibility": "public",
      "status": "active",
      "geographic_scope": {
        "city": "Port Ellery",
        "country": "United States"
      },
      "last_updated": "2026-09-23T21:00:00Z"
    },
    {
      "manifest_url": "https://manymoons.example/pools/solo-poly-supper.json",
      "name": "Solo Poly Supper Club",
      "intent_tags": [
        "non-monogamy",
        "solo-poly",
        "friendship"
      ],
      "visibility": "public",
      "status": "active",
      "geographic_scope": {
        "city": "Port Ellery",
        "country": "United States"
      },
      "last_updated": "2026-09-14T20:00:00Z"
    }
  ],
  "operator": {
    "name": "Many Moons, a community for consensual non-monogamy in the harbor counties",
    "contact": "organizers@manymoons.example",
    "url": "https://manymoons.example"
  }
}

Manifests

Three Pools, in readable form

Many Moons: Harbor Counties

File: pools/harbor-counties.json · served at https://manymoons.example/pools/harbor-counties.json

schema_version
0.1
id
harbor-counties
curator
Lux Moreno lux@mail.example Signed in with OAuth · primary
Søren Aalto soren@mail.example Signed in with OAuth
charter
A community for people who practice consensual non-monogamy, or are learning to, in the harbor counties. Friends first, dating when both people want it. Describe how you practice in your own words. Nothing here tells anyone who you are dating.
intent_tags
non-monogamy, community, friendship, dating
visibility
Public public
consent_model
universal-opt-in
curator_contact
organizers@manymoons.example
geographic_scope
Port Ellery, United States
governance_rules
Organizers add no one; each person says yes. A household may run its own small Pool so its members can show how they are connected, only with every member’s yes. Being in one Pool here says nothing in any other.
messaging_preferences
https://protocol.kindling.foundation/blocklist.json
https://thecircular.example/blocklist.json
minimum_sender_verification: not set
status
active · created 2 November 2025 · updated 23 September 2026
EntryLevelConsent proofAddedTheir wordsMessages
Lux Moreno
https://lux-moreno.example
Signed in with OAuthoauth
hs-many-moons-harbor-counties-lux
2 November 2025non-monogamy, dating, community, curatingverified
Søren Aalto
https://soren-aalto.notion.example
Signed in with OAuthoauth
hs-many-moons-harbor-counties-soren
2 November 2025non-monogamy, solo-poly, dating, community, curatingverified
Tamsin Reyes
https://tamsin-reyes.carrd.example
Email verifiedemail-link
hs-many-moons-harbor-counties-tamsin
10 January 2026non-monogamy, friendshipshared-pool
Gabe Morrow
https://gabe-morrow.example
Signed in with OAuthoauth
hs-many-moons-harbor-counties-gabe
10 January 2026non-monogamy, datingshared-pool
Anouk Visser
https://anouk-visser.notion.example
Email verifiedemail-link
hs-many-moons-harbor-counties-anouk
14 February 2026non-monogamy, friendshipshared-pool
Dev Kapoor
https://dev-kapoor.example
Signed in with OAuthoauth
hs-many-moons-harbor-counties-dev
21 March 2026non-monogamy, dating, friendship, relationship-anarchyshared-pool
Mae Castellano
https://maecastellano.bandcamp.example
Signed in with OAuthoauth
hs-many-moons-harbor-counties-mae
19 July 2026drums, sub, band, datingshared-pool
The raw JSON
{
  "schema_version": "0.1",
  "id": "harbor-counties",
  "name": "Many Moons: Harbor Counties",
  "curator": [
    {
      "identity": "lux@mail.example",
      "display_name": "Lux Moreno",
      "verification_level": "oauth",
      "primary": true
    },
    {
      "identity": "soren@mail.example",
      "display_name": "Søren Aalto",
      "verification_level": "oauth",
      "primary": false
    }
  ],
  "intent_tags": [
    "non-monogamy",
    "community",
    "friendship",
    "dating"
  ],
  "visibility": "public",
  "consent_model": "universal-opt-in",
  "curator_contact": "organizers@manymoons.example",
  "charter": "A community for people who practice consensual non-monogamy, or are learning to, in the harbor counties. Friends first, dating when both people want it. Describe how you practice in your own words. Nothing here tells anyone who you are dating.",
  "geographic_scope": {
    "city": "Port Ellery",
    "country": "United States"
  },
  "governance_rules": "Organizers add no one; each person says yes. A household may run its own small Pool so its members can show how they are connected, only with every member’s yes. Being in one Pool here says nothing in any other.",
  "messaging_preferences": {
    "block_list_subscriptions": [
      "https://protocol.kindling.foundation/blocklist.json",
      "https://thecircular.example/blocklist.json"
    ]
  },
  "status": "active",
  "created_at": "2025-11-02T18:00:00Z",
  "updated_at": "2026-09-23T21:00:00Z",
  "entries": [
    {
      "profile_url": "https://lux-moreno.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://lux-moreno.example",
        "display_name": "Lux Moreno",
        "pronouns": "they/them",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "dating",
          "community",
          "curating"
        ],
        "about": "Organizer at Many Moons. Runs the monthly social and the new-to-this workshop. Polyamorous for twelve years and still learning.",
        "contact_methods": [
          {
            "type": "email",
            "value": "lux@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2025-11-02T19:00:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2025-11-02T19:00:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2025-11-02T19:00:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-harbor-counties-lux",
        "accepted_at": "2025-11-02T19:00:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2025-11-02T19:00:00Z",
      "added_by": "lux@mail.example"
    },
    {
      "profile_url": "https://soren-aalto.notion.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://soren-aalto.notion.example",
        "display_name": "Søren Aalto",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "solo-poly",
          "dating",
          "community",
          "curating"
        ],
        "about": "Co-organizer. Solo poly, a teacher, and the person who remembers everyone’s name at the social.",
        "contact_methods": [
          {
            "type": "email",
            "value": "soren@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2025-11-02T19:30:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2025-11-02T19:30:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2025-11-02T19:30:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-harbor-counties-soren",
        "accepted_at": "2025-11-02T19:30:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2025-11-02T19:30:00Z",
      "added_by": "lux@mail.example"
    },
    {
      "profile_url": "https://tamsin-reyes.carrd.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://tamsin-reyes.carrd.example",
        "display_name": "Tamsin Reyes",
        "pronouns": "she/her",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "friendship"
        ],
        "about": "Nesting partner to Gabe, partner to Anouk. Garden designer. Happy to be listed as part of our household; ask either of them how that went.",
        "contact_methods": [
          {
            "type": "email",
            "value": "tamsin@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "email",
          "verified_at": "2026-01-10T20:15:00Z"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-01-10T20:15:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-01-10T20:15:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-harbor-counties-tamsin",
        "accepted_at": "2026-01-10T20:15:00Z",
        "method": "email-link"
      },
      "verification_level": "email",
      "added_at": "2026-01-10T20:15:00Z",
      "added_by": "lux@mail.example"
    },
    {
      "profile_url": "https://gabe-morrow.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://gabe-morrow.example",
        "display_name": "Gabe Morrow",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "dating"
        ],
        "about": "Paramedic. Nesting partner to Tamsin. Open to dating; my partners know my page and I know theirs.",
        "contact_methods": [
          {
            "type": "email",
            "value": "gabe@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2026-01-10T20:20:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-01-10T20:20:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-01-10T20:20:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-harbor-counties-gabe",
        "accepted_at": "2026-01-10T20:20:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2026-01-10T20:20:00Z",
      "added_by": "lux@mail.example"
    },
    {
      "profile_url": "https://anouk-visser.notion.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://anouk-visser.notion.example",
        "display_name": "Anouk Visser",
        "pronouns": "she/her",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "friendship"
        ],
        "about": "Partner to Tamsin, friend to Gabe, metamour to a very good cat. Translator from Dutch. Here for friends first.",
        "contact_methods": [
          {
            "type": "email",
            "value": "anouk@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "email",
          "verified_at": "2026-02-14T18:00:00Z"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-02-14T18:00:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-02-14T18:00:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-harbor-counties-anouk",
        "accepted_at": "2026-02-14T18:00:00Z",
        "method": "email-link"
      },
      "verification_level": "email",
      "added_at": "2026-02-14T18:00:00Z",
      "added_by": "lux@mail.example"
    },
    {
      "profile_url": "https://dev-kapoor.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://dev-kapoor.example",
        "display_name": "Dev Kapoor",
        "pronouns": "he/they",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "dating",
          "friendship",
          "relationship-anarchy"
        ],
        "about": "Software tester. Relationship anarchist. I would rather describe what I want with each person than pick a label for it.",
        "contact_methods": [
          {
            "type": "email",
            "value": "dev@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2026-03-21T22:45:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-03-21T22:45:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-03-21T22:45:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-harbor-counties-dev",
        "accepted_at": "2026-03-21T22:45:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2026-03-21T22:45:00Z",
      "added_by": "lux@mail.example"
    },
    {
      "profile_url": "https://maecastellano.bandcamp.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://maecastellano.bandcamp.example",
        "display_name": "Mae Castellano",
        "pronouns": "she/they",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "drums",
          "sub",
          "band",
          "dating"
        ],
        "about": "Drummer. Jazz on weeknights, punk on weekends, whatever you need on Friday. Keeps sticks in the car.",
        "contact_methods": [
          {
            "type": "email",
            "value": "mae@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2026-07-19T21:30:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email",
          "auto_accept_rules": [
            {
              "intent_tags": [
                "drums",
                "sub"
              ],
              "minimum_curator_verification": "oauth",
              "allowed_visibility": [
                "public"
              ]
            }
          ]
        },
        "kindling_noindex": false,
        "parsed_at": "2026-07-19T21:30:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-07-19T21:30:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-harbor-counties-mae",
        "accepted_at": "2026-07-19T21:30:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2026-07-19T21:30:00Z",
      "added_by": "lux@mail.example"
    }
  ]
}

Solo Poly Supper Club

File: pools/solo-poly-supper.json · served at https://manymoons.example/pools/solo-poly-supper.json

schema_version
0.1
id
solo-poly-supper
curator
Søren Aalto soren@mail.example Signed in with OAuth · primary
charter
For people who practice non-monogamy without a nesting partner. A supper on the second Sunday and a list of people who get it. Friendship first.
intent_tags
non-monogamy, solo-poly, friendship
visibility
Public public
consent_model
universal-opt-in
curator_contact
organizers@manymoons.example
geographic_scope
Port Ellery, United States
governance_rules
Organizers add no one; each person says yes. A household may run its own small Pool so its members can show how they are connected, only with every member’s yes. Being in one Pool here says nothing in any other.
messaging_preferences
https://protocol.kindling.foundation/blocklist.json
https://thecircular.example/blocklist.json
minimum_sender_verification: not set
status
active · created 1 June 2026 · updated 14 September 2026
EntryLevelConsent proofAddedTheir wordsMessages
Søren Aalto
https://soren-aalto.notion.example
Signed in with OAuthoauth
hs-many-moons-solo-poly-supper-soren
1 June 2026non-monogamy, solo-poly, dating, community, curatingverified
Dev Kapoor
https://dev-kapoor.example
Signed in with OAuthoauth
hs-many-moons-solo-poly-supper-dev
8 June 2026non-monogamy, dating, friendship, relationship-anarchyshared-pool
The raw JSON
{
  "schema_version": "0.1",
  "id": "solo-poly-supper",
  "name": "Solo Poly Supper Club",
  "curator": [
    {
      "identity": "soren@mail.example",
      "display_name": "Søren Aalto",
      "verification_level": "oauth",
      "primary": true
    }
  ],
  "intent_tags": [
    "non-monogamy",
    "solo-poly",
    "friendship"
  ],
  "visibility": "public",
  "consent_model": "universal-opt-in",
  "curator_contact": "organizers@manymoons.example",
  "charter": "For people who practice non-monogamy without a nesting partner. A supper on the second Sunday and a list of people who get it. Friendship first.",
  "geographic_scope": {
    "city": "Port Ellery",
    "country": "United States"
  },
  "governance_rules": "Organizers add no one; each person says yes. A household may run its own small Pool so its members can show how they are connected, only with every member’s yes. Being in one Pool here says nothing in any other.",
  "messaging_preferences": {
    "block_list_subscriptions": [
      "https://protocol.kindling.foundation/blocklist.json",
      "https://thecircular.example/blocklist.json"
    ]
  },
  "status": "active",
  "created_at": "2026-06-01T17:00:00Z",
  "updated_at": "2026-09-14T20:00:00Z",
  "entries": [
    {
      "profile_url": "https://soren-aalto.notion.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://soren-aalto.notion.example",
        "display_name": "Søren Aalto",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "solo-poly",
          "dating",
          "community",
          "curating"
        ],
        "about": "Co-organizer. Solo poly, a teacher, and the person who remembers everyone’s name at the social.",
        "contact_methods": [
          {
            "type": "email",
            "value": "soren@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2026-06-01T18:00:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-06-01T18:00:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-06-01T18:00:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-solo-poly-supper-soren",
        "accepted_at": "2026-06-01T18:00:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2026-06-01T18:00:00Z",
      "added_by": "soren@mail.example"
    },
    {
      "profile_url": "https://dev-kapoor.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://dev-kapoor.example",
        "display_name": "Dev Kapoor",
        "pronouns": "he/they",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "dating",
          "friendship",
          "relationship-anarchy"
        ],
        "about": "Software tester. Relationship anarchist. I would rather describe what I want with each person than pick a label for it.",
        "contact_methods": [
          {
            "type": "email",
            "value": "dev@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2026-06-08T19:10:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-06-08T19:10:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-06-08T19:10:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-solo-poly-supper-dev",
        "accepted_at": "2026-06-08T19:10:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2026-06-08T19:10:00Z",
      "added_by": "soren@mail.example"
    }
  ]
}

The Orchard Street Household

File: pools/orchard-street-household.json · served at https://manymoons.example/pools/orchard-street-household.json

schema_version
0.1
id
orchard-street-household
curator
Tamsin Reyes tamsin@mail.example Email verified · primary
Gabe Morrow gabe@mail.example Signed in with OAuth
Anouk Visser anouk@mail.example Email verified
charter
Our household, listed so the people we date can see how we are connected, with all three of our yeses. Each of us curates it, each of us can leave it, and it says nothing about anyone not in it.
intent_tags
household, non-monogamy
visibility
Unlisted unlisted
consent_model
curator-only-adds
curator_contact
organizers@manymoons.example
geographic_scope
Port Ellery, United States
governance_rules
Curator-only-adds: only household members add members, and every member is also a curator. Every entry still needed that person’s own yes. Unlisted, so the address travels only from us.
messaging_preferences
https://protocol.kindling.foundation/blocklist.json
https://thecircular.example/blocklist.json
minimum_sender_verification: not set
status
active · created 20 February 2026 · updated 21 February 2026
EntryLevelConsent proofAddedTheir wordsMessages
Tamsin Reyes
https://tamsin-reyes.carrd.example
Email verifiedemail-link
hs-many-moons-orchard-street-household-tamsin
20 February 2026non-monogamy, friendshipshared-pool
Gabe Morrow
https://gabe-morrow.example
Signed in with OAuthoauth
hs-many-moons-orchard-street-household-gabe
20 February 2026non-monogamy, datingshared-pool
Anouk Visser
https://anouk-visser.notion.example
Email verifiedemail-link
hs-many-moons-orchard-street-household-anouk
21 February 2026non-monogamy, friendshipshared-pool
The raw JSON
{
  "schema_version": "0.1",
  "id": "orchard-street-household",
  "name": "The Orchard Street Household",
  "curator": [
    {
      "identity": "tamsin@mail.example",
      "display_name": "Tamsin Reyes",
      "verification_level": "email",
      "primary": true
    },
    {
      "identity": "gabe@mail.example",
      "display_name": "Gabe Morrow",
      "verification_level": "oauth",
      "primary": false
    },
    {
      "identity": "anouk@mail.example",
      "display_name": "Anouk Visser",
      "verification_level": "email",
      "primary": false
    }
  ],
  "intent_tags": [
    "household",
    "non-monogamy"
  ],
  "visibility": "unlisted",
  "consent_model": "curator-only-adds",
  "curator_contact": "organizers@manymoons.example",
  "charter": "Our household, listed so the people we date can see how we are connected, with all three of our yeses. Each of us curates it, each of us can leave it, and it says nothing about anyone not in it.",
  "geographic_scope": {
    "city": "Port Ellery",
    "country": "United States"
  },
  "governance_rules": "Curator-only-adds: only household members add members, and every member is also a curator. Every entry still needed that person’s own yes. Unlisted, so the address travels only from us.",
  "messaging_preferences": {
    "block_list_subscriptions": [
      "https://protocol.kindling.foundation/blocklist.json",
      "https://thecircular.example/blocklist.json"
    ]
  },
  "status": "active",
  "created_at": "2026-02-20T19:30:00Z",
  "updated_at": "2026-02-21T09:30:00Z",
  "entries": [
    {
      "profile_url": "https://tamsin-reyes.carrd.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://tamsin-reyes.carrd.example",
        "display_name": "Tamsin Reyes",
        "pronouns": "she/her",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "friendship"
        ],
        "about": "Nesting partner to Gabe, partner to Anouk. Garden designer. Happy to be listed as part of our household; ask either of them how that went.",
        "contact_methods": [
          {
            "type": "email",
            "value": "tamsin@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "email",
          "verified_at": "2026-02-20T20:00:00Z"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-02-20T20:00:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-02-20T20:00:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-orchard-street-household-tamsin",
        "accepted_at": "2026-02-20T20:00:00Z",
        "method": "email-link"
      },
      "verification_level": "email",
      "added_at": "2026-02-20T20:00:00Z",
      "added_by": "tamsin@mail.example"
    },
    {
      "profile_url": "https://gabe-morrow.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://gabe-morrow.example",
        "display_name": "Gabe Morrow",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "dating"
        ],
        "about": "Paramedic. Nesting partner to Tamsin. Open to dating; my partners know my page and I know theirs.",
        "contact_methods": [
          {
            "type": "email",
            "value": "gabe@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2026-02-20T20:05:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-02-20T20:05:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-02-20T20:05:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-orchard-street-household-gabe",
        "accepted_at": "2026-02-20T20:05:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2026-02-20T20:05:00Z",
      "added_by": "tamsin@mail.example"
    },
    {
      "profile_url": "https://anouk-visser.notion.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://anouk-visser.notion.example",
        "display_name": "Anouk Visser",
        "pronouns": "she/her",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "non-monogamy",
          "friendship"
        ],
        "about": "Partner to Tamsin, friend to Gabe, metamour to a very good cat. Translator from Dutch. Here for friends first.",
        "contact_methods": [
          {
            "type": "email",
            "value": "anouk@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "email",
          "verified_at": "2026-02-21T09:30:00Z"
        },
        "messaging_preferences": {
          "accept_from": "shared-pool",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-02-21T09:30:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-02-21T09:30:00Z",
      "consent_proof": {
        "handshake_id": "hs-many-moons-orchard-street-household-anouk",
        "accepted_at": "2026-02-21T09:30:00Z",
        "method": "email-link"
      },
      "verification_level": "email",
      "added_at": "2026-02-21T09:30:00Z",
      "added_by": "tamsin@mail.example"
    }
  ]
}

Block lists

The two lists every Pool here reads

Messages and handshake requests from anything on these lists are refused before they reach anyone §7.3. A person, a Pool or a piece of software removed elsewhere is filtered here the next time we read the list.

Kindling public block list

Copy: blocklist.json · published at https://protocol.kindling.foundation/blocklist.json · version 3, 20 September 2026

The block list the Kindling project will publish under SPEC.md §7.3, for identities and implementations with confirmed abuse. The entries here are illustrative until the registry opens. No personal details are ever published.

TypeTargetReasonDetailAdded
implementationscrapekit/0.3scrapingIgnores kindling-noindex and robots signals.2 July 2026
identitypromo-blast@mail.examplespam14 August 2026

The Circular consortium block list

Copy: circular/blocklist.json · published at https://thecircular.example/blocklist.json · version 8, 27 September 2026

Shared by every member of the Circular consortium. Each member subscribes; any member may propose an entry, and two others must second it.

TypeTargetReasonDetailAdded
curator_identitylisted-them-anyway@mail.exampleconsent_violationSubmitted other people’s pages, a whole household’s among them, to Pools without asking any of them.27 September 2026
pool_urlhttps://free-friends-now.example/pools/everyone.jsonconsent_violationListed profiles that never accepted a handshake.26 September 2026
identitybulk-intros@relay.examplespam3 September 2026
implementationscrapekit/0.3scrapingAlso on the Kindling public list.3 July 2026

Honest limits

What the v0.1 schema can’t say yet

Where the specification text and a schema disagree, our JSON follows the schema. These are the gaps that touch Many Moons.

  1. Only a curator can vouch, so partners and metamours cannot.

    §4.4 lets a curator vouch inside their own Pool, and no one else. The people who know a polycule best are its members. The Orchard Street Household works around it by making all three members curators of their own Pool, and a vouch there still counts only there. See notes toward an RFC.

  2. Nothing in the schema says how people are connected, by design.

    There is no field for “nesting partner” or “metamour”, and we think that is right: the words belong to each person. It means a household’s shape is only as current as each person’s own page, which a Pool re-reads when the owner pushes an update §2.6. When Anouk leaves, Tamsin’s page still says “partner to Anouk” until Tamsin changes it.

  3. A curator has no step for stepping down.

    Withdrawal removes an entry §5.3. Curator transition covers a curator who goes quiet §9.3. Nothing covers a curator who simply leaves, so when Anouk leaves the household, our host removes her curator line in the same edit as her entry.

  4. Unlisted is not private.

    A Pool is a JSON file §3.1 with no access control, and every handshake request carries the Pool’s address §5.2. Anyone holding the household’s address can read it. RFC 0002 says curators should be told this plainly; we tell them.

  5. The well-known file and unlisted Pools.

    §10.2 says the file lists “each Pool on the domain”; the schema describes the list as the Pools “that are discoverable”. We follow the schema and leave the household out. The text also names pool_url and curator_contact, where the schema has manifest_url and the contact on operator.

  6. Block lists name identities, not people removed.

    §7.3 filters by what a list names. There is no protocol step from “removed from a Pool for a consent violation” to “on a shared list”; the Circular consortium’s own rule, one member proposes and two second, fills that. Today 1 consent-violation entry names a person. RFC 0006 lists an abuse-report workflow as future work.

  7. A block list entry can name a Pool, and the kit checks identities.

    The schema allows pool_url, curator_identity and implementation targets. The shared demo kit’s canMessage compares entries only with a sender’s identity, so our pages check Pool URLs themselves.

  8. Level names differ between the text and the schema.

    §4.5 names email-verified, oauth-verified, curator-vouched and unverified. The schemas say email, oauth, curator-vouched, unverified and cryptographic, and a curator can only be email, oauth or cryptographic. Our JSON follows the schemas; our pages use the words.

  9. “Own words” cannot be marked as own words.

    §2.3 asks parsers to record which fields were marked up and which were inferred, in extraction_source. The parsed-profile schema has no such field and forbids extra ones. We quote each about as a person’s own words; the file cannot prove the parser did not paraphrase.

  10. Message types and field names.

    §6.3 lists four types; the schema has six, adding withdrawal (Anouk uses it) and system. §6.2 calls the Pool reference pool_ref; the schema calls it via_pool. §12.1 names kindling_version; every schema uses schema_version. Our JSON follows the schemas.

  11. The window is configurable in text, not in the manifest.

    §5.2 says the 14-day window is “configurable per Pool”. There is no field for it, so each request carries it in expires_at.

  12. A request cannot state the consent model.

    A handshake request’s pool object names the curator, charter, intent and visibility §5.2, but not consent_model. A household request would have to say “every member is a curator” in words.