Skip to content

Alice sends her followers a message

given: "Alice" created an actor on "banach" called "Alice"

send.Alice.request.create_actor
{
  "base_url": "http://banach",
  "preferred_username": "Alice",
  "profile": {},
  "automatically_accept_followers": null,
  "name": null
}
receive.Alice.response.create_actor
{
  "attachment": null,
  "published": "2025-12-19T09:51:34.516195",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw#legacy-key-1",
    "owner": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0330ZBi6+H/tlvuKoRME\nvT2CIZL+aUDN0lrYF7CsymG54cgtEmoI1cuDJcmTM/5cpAYfFVw5/9Mhr0LHQ9sf\nwo/vQpnRx6bvxJFcokQvh3nJW552YP5NRt/Jsu2fMu+Xg3RBrF9887irRWYBbO5A\nojVJ8hOByjrlMg8glyll9G/eObTiGUxwN6WKyhtativ8MKFw4sI0+Hxe/8x1oytG\nGABAC5+m698Wx60i9XQMI/1cPPmihbQtgjueFBl9UAv3GdI1degr4WljjF3n3y+P\nRLFIg2lkdeQjEvX6xj/AcOl2X7XjmwFmueHgp0+AE2AODeSNlswnibCGdoGH22Sr\n1QIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
  "type": "Person",
  "inbox": "http://banach/inbox/KUMBpnRyKn8LLsI5xfYcYQ",
  "outbox": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/outbox",
  "followers": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/followers",
  "following": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/following",
  "preferredUsername": "Alice",
  "name": "Alice",
  "identifiers": [
    "acct:Alice@banach",
    "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw"
  ],
  "endpoints": {
    "sharedInbox": "http://banach/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

given: "Bob" created an actor on "banach" called "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": "2025-12-19T09:51:35.346785",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ#legacy-key-1",
    "owner": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0cQjCvfZDZ2/z8Ro81sw\nRgfo2PFf60/5/a2pn22HuLWKh/82EqgYiBzArYLYhAvak11RMM6auVbegaMbwobr\n27rFeR0MXl+Ji5RBWivbApaVINDJaY7mKpS0UmipE5+QJh3YtBCtJ6AxxRhJcY7Q\n+RUZyVnmyGEU6VMOfAtoLBqMR3Nri5yzPwzJCUK0xI2Yi4HKdQDb/5xxaI/HaDxM\nCckkQ5ElYtHImzwndJ8IUObojuetTJlJofVBN7bZXoLYgfd9s6+A8bpCuZgabVwY\nyy58VW1kfE65nq3clFhK6nNT7S4qdI4ZLvfzZQH9FUO3/TMovEvUH1EBQZe69Ehk\n6QIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ",
  "type": "Person",
  "inbox": "http://banach/inbox/LgcvDSsZ06iD5wiQKGw39g",
  "outbox": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ/outbox",
  "followers": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ/followers",
  "following": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ/following",
  "preferredUsername": "Bob",
  "name": "Bob",
  "identifiers": [
    "acct:Bob@banach",
    "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ"
  ],
  "endpoints": {
    "sharedInbox": "http://banach/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

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

send.Bob.trigger.send_message
{
  "actor": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ",
    "to": [
      "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw"
    ],
    "id": "follow:43116812-42f9-4ca7-9232-0c9dfc34f2bf",
    "published": "2025-12-19T09:51:35Z",
    "object": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw"
  }
}
receive.Bob.outgoing.Follow
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ",
      "to": [
        "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw"
      ],
      "id": "follow:43116812-42f9-4ca7-9232-0c9dfc34f2bf",
      "published": "2025-12-19T09:51:35Z",
      "object": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw"
    }
  },
  "actor": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ",
  "event_type": "outgoing",
  "history_id": null
}

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

receive.Alice.incoming.Follow
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ",
      "to": [
        "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw"
      ],
      "id": "follow:43116812-42f9-4ca7-9232-0c9dfc34f2bf",
      "published": "2025-12-19T09:51:35Z",
      "object": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw"
    }
  },
  "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
  "event_type": "incoming",
  "history_id": null
}
send.Alice.trigger.send_message
{
  "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
    "to": [
      "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ"
    ],
    "published": "2025-12-19T09:51:36Z",
    "object": "follow:43116812-42f9-4ca7-9232-0c9dfc34f2bf",
    "id": "accept:1df48e9f-2c57-4767-a2a4-545a4ff433b5"
  }
}
receive.Alice.outgoing.Accept
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
      "to": [
        "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ"
      ],
      "published": "2025-12-19T09:51:36Z",
      "object": "follow:43116812-42f9-4ca7-9232-0c9dfc34f2bf",
      "id": "accept:1df48e9f-2c57-4767-a2a4-545a4ff433b5"
    }
  },
  "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
  "event_type": "outgoing",
  "history_id": null
}

when: "Alice" messages her followers "Got milk?"

send.Alice.trigger.send_message
{
  "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Create",
    "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
    "to": [
      "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/followers"
    ],
    "id": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/410c97170677dd2e",
    "published": "2025-12-19T09:51:36Z",
    "object": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "attributedTo": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
      "to": [
        "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/followers"
      ],
      "id": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/31b808a9cc7d043f",
      "published": "2025-12-19T09:51:36Z",
      "content": "Got milk?"
    }
  }
}

then: "Bob" receives a message saying "Got milk?"

receive.Alice.outgoing.Create
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
      "to": [
        "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/followers"
      ],
      "id": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/410c97170677dd2e",
      "published": "2025-12-19T09:51:36Z",
      "object": {
        "@context": "https://www.w3.org/ns/activitystreams",
        "type": "Note",
        "attributedTo": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
        "to": [
          "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/followers"
        ],
        "id": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw/31b808a9cc7d043f",
        "published": "2025-12-19T09:51:36Z",
        "content": "Got milk?"
      }
    }
  },
  "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
  "event_type": "outgoing",
  "history_id": null
}
receive.Bob.incoming.Accept
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://banach/actor/NDWmml2-w9CZ1HhW7qpyDw",
      "to": [
        "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ"
      ],
      "published": "2025-12-19T09:51:36Z",
      "object": "follow:43116812-42f9-4ca7-9232-0c9dfc34f2bf",
      "id": "accept:1df48e9f-2c57-4767-a2a4-545a4ff433b5"
    }
  },
  "actor": "http://banach/actor/pBut2qPawR-2BYDsZtIoUQ",
  "event_type": "incoming",
  "history_id": null
}