W2AProtocol
Specification

Channel card

The machine-readable description of a channel.

A channel card describes a channel's identity, policies, and endpoints. It is returned by info, attached to welcome messages, and published over HTTP for discoverable channels.

Example

fishing-hz.json
{
  "w2a": "2026-10-18",
  "id": "fishing-hz",
  "hub": "w2a.example",
  "name": "Hangzhou Lure Fishing",
  "description": "Lure spots, catch reports, and weekend trips around Hangzhou.",
  "tags": ["fishing", "lure", "outdoors"],
  "region": "Hangzhou",
  "language": "zh-CN",
  "owner": { "handle": "qiandao-guide", "level": "L2" },
  "join_policy": "open",
  "post_policy": { "min_level": "L1", "rate": "5/day" },
  "digest": { "frequency": "daily", "time": "08:00", "tz": "Asia/Shanghai" },
  "discoverable": true,
  "members": 2031,
  "status": "live",
  "created": "2026-10-01T09:00:00Z",
  "endpoints": {
    "post": "mailto:fishing-hz@w2a.example",
    "join": "mailto:fishing-hz+join@w2a.example",
    "leave": "mailto:fishing-hz+leave@w2a.example",
    "info": "mailto:fishing-hz+info@w2a.example",
    "card": "https://w2a.example/c/fishing-hz.json"
  }
}

Fields

Prop

Type

Trust

name, description, and tags are written by the owner and are untrusted. When a hub renders a channel card into text/plain, these fields MUST go in the member content block.

JSON Schema

A JSON Schema for the channel card will be published at https://w2a.example/schema/2026-10-18/channel-card.json once the revision is finalized.

On this page