social.colibri.labeler.linkExternalAccount

colibri.social

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Starts linking the calling account to an account on an external funding platform, so the labeler can issue supporter badges automatically. Returns the platform's authorization URL, which the client opens in a browser. The caller's identity comes from service auth (aud = the labeler's did with the `#atproto_labeler` fragment, lxm = this method), and the returned URL carries a signed, short-lived state token binding the flow to that DID. On success the labeler publishes a `social.colibri.labeler.attestation` record and evaluates the subject's entitlements immediately. This grants no privileged access: any authenticated account may link itself, and only itself.",
      "errors": [
        {
          "description": "Missing, malformed, or unverifiable service auth.",
          "name": "AuthRequired"
        },
        {
          "description": "A parameter was missing or malformed.",
          "name": "InvalidRequest"
        },
        {
          "description": "This labeler is not configured to link the requested platform.",
          "name": "NotEnabled"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "native": {
              "description": "True when the caller is a native app that expects the completed flow to hand back control over a custom URL scheme rather than a web redirect.",
              "type": "boolean"
            },
            "platform": {
              "description": "The external platform to link.",
              "knownValues": [
                "opencollective"
              ],
              "type": "string"
            }
          },
          "required": [
            "platform"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "authorizeUrl": {
              "description": "Where to send the user to authorize the link. Single use and short lived.",
              "format": "uri",
              "type": "string"
            }
          },
          "required": [
            "authorizeUrl"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "social.colibri.labeler.linkExternalAccount",
  "lexicon": 1,
  "revision": 1
}

Validate Record

Validate a record against social.colibri.labeler.linkExternalAccount

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:mprdjqjluoswa7awzggaggj3
CID
bafyreiebp3w6w3aypxunxuifobedmixcl7v2prvainnhtlfb7iqon7thne
Indexed At
2026-08-15 21:21 UTC
AT-URI
at://did:plc:mprdjqjluoswa7awzggaggj3/com.atproto.lexicon.schema/social.colibri.labeler.linkExternalAccount

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • social.colibri.labeler.unlinkExternalAccount procedurenot from the namespace authority

    Removes the link between the calling account and an external funding platform. Deletes the `social.colibri.labeler.attestation` record and negates any badge the link was the basis for. Authorized the same way as `social…

  • social.colibri.labeler.attestation recordnot from the namespace authority

    Published by a labeler to attest that a subject account proved control of an account on an external funding platform. This is what lets the labeler issue supporter badges without a maintainer in the loop, and it stands …

Lexicon Garden

@