Skip to content

Following -- @1.4

given: "Alice" created an actor on "abel" called "Alice" with username "Alice"

send.Alice.request.create_actor
{
  "base_url": "http://abel",
  "preferred_username": "Alice",
  "profile": {},
  "automatically_accept_followers": null,
  "name": null
}
receive.Alice.response.create_actor
{
  "attachment": null,
  "published": "2026-03-20T15:21:17.829540",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://abel/actor/C1t6cu60inhvsDRkGeur-A#legacy-key-1",
    "owner": "http://abel/actor/C1t6cu60inhvsDRkGeur-A",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtHebawXuOWAZwPq9bC0J\nGstKRGiq4CQYssCmAIdfywA0QofGxHfUDAj0E4oUUA/IhmNqm8T6FRPcyTEs7g3Y\nztgJEKVTsT6yeo0+whG8xXOvBPxK5yqZY40pvdx1ypT+jIlX9SOXZkfxOjTQ++hE\nuUhutC/kGNbQUlyI0VRbFraIDe/g5vDJb3au2SUl1tFztE4vK+ex3CY+Xt/Fq3jQ\nw5s1HX8lf+cPBL3ylkNuQSrEw63QEmBqFE+lKc6BV4p6f1WmDvDZoTcGE0sdITMS\ntJphwDvMrKGl081StPYlz0U6Oukc7rXSzIg/07IG1cpNPaQN8epyBWDxqcnAzIj3\nkQIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://abel/actor/C1t6cu60inhvsDRkGeur-A",
  "type": "Person",
  "inbox": "http://abel/inbox/JkeNZKK--pRQym5U8Y9ORw",
  "outbox": "http://abel/actor/C1t6cu60inhvsDRkGeur-A/outbox",
  "followers": "http://abel/actor/C1t6cu60inhvsDRkGeur-A/followers",
  "following": "http://abel/actor/C1t6cu60inhvsDRkGeur-A/following",
  "preferredUsername": "Alice",
  "name": "Alice",
  "identifiers": [
    "acct:Alice@abel",
    "http://abel/actor/C1t6cu60inhvsDRkGeur-A"
  ],
  "endpoints": {
    "sharedInbox": "http://abel/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

given: "Bob" created an actor on "banach" called "Bob" with username "Bob"

send.Bob.request.create_actor
{
  "base_url": "http://banach",
  "preferred_username": "Bob",
  "profile": {},
  "automatically_accept_followers": null,
  "name": null
}
receive.Bob.response.create_actor
{
  "attachment": null,
  "published": "2026-03-20T15:21:18.394419",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw#legacy-key-1",
    "owner": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt8+lmBh/Z8mg41dowYUJ\nSTh0BOed3ug2dLftAmkmz8CBH+OuUnM5SE1MbISFWOGWDcOvbzun/UHDZ5wHwqeH\nMTMSMi8Kp4zR9l+JNfCqjdADjtqECHnvYrxi+oR7q2+Oh5h5MpLL1Zqur3PiDyKt\nGozWxefvdXcWa0VbIqR+CWGsRWTk/S7+mfTmVYvG+Iac4MTqwF3J2JqT+4iR7QIt\noAzT2ac6DsJ88c1aPAPk69pp8lVO8ull4LAkQPdfuRQoVF//+AobMjYfEpT3oYAM\nqNaHh/i+87QJX8dugK9stS3CiY7Gb+k9d/GRBx8qY8y1EZPs9RTbgXcmboRsegq4\nPwIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw",
  "type": "Person",
  "inbox": "http://banach/inbox/AvS7LZrMq7BYsRQDbHH7eA",
  "outbox": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw/outbox",
  "followers": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw/followers",
  "following": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw/following",
  "preferredUsername": "Bob",
  "name": "Bob",
  "identifiers": [
    "acct:Bob@banach",
    "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw"
  ],
  "endpoints": {
    "sharedInbox": "http://banach/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

given: "Claire" created an actor on "abel" called "Claire" with username "Claire"

send.Claire.request.create_actor
{
  "base_url": "http://abel",
  "preferred_username": "Claire",
  "profile": {},
  "automatically_accept_followers": null,
  "name": null
}
receive.Claire.response.create_actor
{
  "attachment": null,
  "published": "2026-03-20T15:21:19.019057",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://abel/actor/osa0C-6oaWyqfS__77QTGQ#legacy-key-1",
    "owner": "http://abel/actor/osa0C-6oaWyqfS__77QTGQ",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5MdNKKgPKmKhTnDNE3l2\n6+xSJOtqEVwRkWFmbpWzh2R9axn8IxuqMYgvyf79KnrKBuprFLdpn75FCeFBVTjh\niSc/kufN8BbWcLOdfuGD9aSresXqkWU/tk5RWAKA+TfDt5L94ULHTDSLf1W4Ndtc\nAHU0z7NGrZvG2MMu+oZFSXEujVmYhE8e3Qqq/+WbjcYYKgkvjDhOmOgnS83Eoagm\nzfFCBR6fzkNYxSZxiZv3yeHEairfyIZ6jVuEPG9oiI7RTy+rSaIrXYzrwQwmgQ0u\nNN7DutZ3hroh5Bzf99oEm+H1P5mW6/TCklb6u5Yi7XsopzIfOZFcU0MoWjOhw8hY\n7wIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://abel/actor/osa0C-6oaWyqfS__77QTGQ",
  "type": "Person",
  "inbox": "http://abel/inbox/yTJQPfFeKdJUlQ1-4w_l4g",
  "outbox": "http://abel/actor/osa0C-6oaWyqfS__77QTGQ/outbox",
  "followers": "http://abel/actor/osa0C-6oaWyqfS__77QTGQ/followers",
  "following": "http://abel/actor/osa0C-6oaWyqfS__77QTGQ/following",
  "preferredUsername": "Claire",
  "name": "Claire",
  "identifiers": [
    "acct:Claire@abel",
    "http://abel/actor/osa0C-6oaWyqfS__77QTGQ"
  ],
  "endpoints": {
    "sharedInbox": "http://abel/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

when: "Bob" sends "Alice" a Follow Activity

send.Bob.trigger.send_message
{
  "actor": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw",
    "to": [
      "http://abel/actor/C1t6cu60inhvsDRkGeur-A"
    ],
    "id": "follow:bfe557a2-7f71-47cb-94ed-8978d095cc79",
    "published": "2026-03-20T15:21:19Z",
    "object": "http://abel/actor/C1t6cu60inhvsDRkGeur-A"
  }
}
receive.Bob.outgoing.Follow
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw",
      "to": [
        "http://abel/actor/C1t6cu60inhvsDRkGeur-A"
      ],
      "id": "follow:bfe557a2-7f71-47cb-94ed-8978d095cc79",
      "published": "2026-03-20T15:21:19Z",
      "object": "http://abel/actor/C1t6cu60inhvsDRkGeur-A"
    }
  },
  "actor": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw",
  "event_type": "outgoing",
  "history_id": null
}
receive.Alice.incoming.Follow
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw",
      "to": [
        "http://abel/actor/C1t6cu60inhvsDRkGeur-A"
      ],
      "id": "follow:bfe557a2-7f71-47cb-94ed-8978d095cc79",
      "published": "2026-03-20T15:21:19Z",
      "object": "http://abel/actor/C1t6cu60inhvsDRkGeur-A"
    }
  },
  "actor": "http://abel/actor/C1t6cu60inhvsDRkGeur-A",
  "event_type": "incoming",
  "history_id": null
}

when: "Alice" sends an Accept to this Follow Activity

send.Alice.trigger.send_message
{
  "actor": "http://abel/actor/C1t6cu60inhvsDRkGeur-A",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://abel/actor/C1t6cu60inhvsDRkGeur-A",
    "to": [
      "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw"
    ],
    "published": "2026-03-20T15:21:19Z",
    "object": "follow:bfe557a2-7f71-47cb-94ed-8978d095cc79",
    "id": "accept:8310a893-ce24-4b52-9032-00fd9cb91f2c"
  }
}
receive.Alice.outgoing.Accept
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://abel/actor/C1t6cu60inhvsDRkGeur-A",
      "to": [
        "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw"
      ],
      "published": "2026-03-20T15:21:19Z",
      "object": "follow:bfe557a2-7f71-47cb-94ed-8978d095cc79",
      "id": "accept:8310a893-ce24-4b52-9032-00fd9cb91f2c"
    }
  },
  "actor": "http://abel/actor/C1t6cu60inhvsDRkGeur-A",
  "event_type": "outgoing",
  "history_id": null
}
receive.Bob.incoming.Accept
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://abel/actor/C1t6cu60inhvsDRkGeur-A",
      "to": [
        "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw"
      ],
      "published": "2026-03-20T15:21:19Z",
      "object": "follow:bfe557a2-7f71-47cb-94ed-8978d095cc79",
      "id": "accept:8310a893-ce24-4b52-9032-00fd9cb91f2c"
    }
  },
  "actor": "http://banach/actor/54P9aUdnLVuk1WoFf3NKdw",
  "event_type": "incoming",
  "history_id": null
}

when: "Alice" creates an object addressed to "public"

then: "Bob" is "authorized" to view this object