Skip to content

Bob deletes himself

given: "Alice" created an actor on "banach" called "Alice" with username "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": "2026-03-20T15:23:42.575977",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA#legacy-key-1",
    "owner": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw1B28pkDImgoxuiX2bej\nyuVMVNVPJ8kq+VicLDctL/gJRDgAUrfX8LGC65G4iITMHgXnYE7YeHIn0/Xa2j6+\nGWmgzrfUfNmmxM12hieOEowxo/r1SXo8HLaQJp1ahAK+YcOqw8NDNlqEcqlQmGJj\n/RMfy8/h5Pv8h/uFczgEhuA4M9AywqILzuTqq3Z83Sp65poZkE55TerUABSPQ9WB\naAsRWVf0Zpwxu1x2/YVkqoEKr/+wjnIjDT06/j0UWQ406IrWbjqQkqkkHjxg5RkC\nAz/uugLP2H73LGic8t7OiQX1M8yQivxKF5qcxhi0L5ajDqG2amMlpuQ9B4iRRWC3\npQIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
  "type": "Person",
  "inbox": "http://banach/inbox/fYXkcBvjXLTg0acnckIXTA",
  "outbox": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA/outbox",
  "followers": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA/followers",
  "following": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA/following",
  "preferredUsername": "Alice",
  "name": "Alice",
  "identifiers": [
    "acct:Alice@banach",
    "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA"
  ],
  "endpoints": {
    "sharedInbox": "http://banach/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

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

send.Bob.request.create_actor
{
  "base_url": "http://abel",
  "preferred_username": "Bob",
  "profile": {},
  "automatically_accept_followers": null,
  "name": null
}
receive.Bob.response.create_actor
{
  "attachment": null,
  "published": "2026-03-20T15:23:43.165654",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A#legacy-key-1",
    "owner": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4FEHXrCSq4PCg1H/xhzq\ngjINUL1Z8S1qRlX8JuNxmpbXbyqu/gnItB8hTTPFhgNG+Kcw8e5KqrMKFML0tV7s\nBuv6ZbMC8JPBRTk/MRNWC5ijiDm7oeEYPA3/7x7DcPQQDshCehcIy+N3In8JYj7x\nWqxJlfqG3vn6KQJAxA3ShQIHZSmUOGdqoZHAtnCb6nfUX7lCCwURcXwUoTASgBpa\nnRYuLeGxKGOURtsznLlWiEhCRggBrcPa7dPBa5xvpWFokC1UPHgiz/eUj7+90d59\nL2Kc6qRmtBV8QpYtOPAOBYH/xA0ewOStyxeAwrrujDhxaOI4OmVVsOQ7Yio62BTE\nEQIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
  "type": "Person",
  "inbox": "http://abel/inbox/ILvenjvHPuMPh5MSGwSJzQ",
  "outbox": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A/outbox",
  "followers": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A/followers",
  "following": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A/following",
  "preferredUsername": "Bob",
  "name": "Bob",
  "identifiers": [
    "acct:Bob@abel",
    "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A"
  ],
  "endpoints": {
    "sharedInbox": "http://abel/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

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

send.Bob.trigger.send_message
{
  "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
    "to": [
      "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA"
    ],
    "id": "follow:eddc7783-98b6-4c34-8418-dde2ff697436",
    "published": "2026-03-20T15:23:43Z",
    "object": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA"
  }
}
receive.Bob.outgoing.Follow
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
      "to": [
        "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA"
      ],
      "id": "follow:eddc7783-98b6-4c34-8418-dde2ff697436",
      "published": "2026-03-20T15:23:43Z",
      "object": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA"
    }
  },
  "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
  "event_type": "outgoing",
  "history_id": null
}
receive.Alice.incoming.Follow
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
      "to": [
        "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA"
      ],
      "id": "follow:eddc7783-98b6-4c34-8418-dde2ff697436",
      "published": "2026-03-20T15:23:43Z",
      "object": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA"
    }
  },
  "actor": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
  "event_type": "incoming",
  "history_id": null
}

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

send.Alice.trigger.send_message
{
  "actor": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
    "to": [
      "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A"
    ],
    "published": "2026-03-20T15:23:43Z",
    "object": "follow:eddc7783-98b6-4c34-8418-dde2ff697436",
    "id": "accept:38b540c0-1817-4a99-8fe1-b60539b3420b"
  }
}
receive.Alice.outgoing.Accept
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
      "to": [
        "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A"
      ],
      "published": "2026-03-20T15:23:43Z",
      "object": "follow:eddc7783-98b6-4c34-8418-dde2ff697436",
      "id": "accept:38b540c0-1817-4a99-8fe1-b60539b3420b"
    }
  },
  "actor": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
  "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/peRBmAWB5h7fMQsQ6TPLtA",
      "to": [
        "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A"
      ],
      "published": "2026-03-20T15:23:43Z",
      "object": "follow:eddc7783-98b6-4c34-8418-dde2ff697436",
      "id": "accept:38b540c0-1817-4a99-8fe1-b60539b3420b"
    }
  },
  "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
  "event_type": "incoming",
  "history_id": null
}

when: "Bob" deletes himself

send.Bob.trigger.delete_actor
{
  "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A"
}
receive.Bob.outgoing.Delete
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Delete",
      "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "cc": [
        "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A/followers",
        "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A/following"
      ],
      "published": "2026-03-20T15:23:43Z",
      "object": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
      "id": "http://abel/object/019d0bd8-63fa-7051-b17e-efa00d79a6e3"
    }
  },
  "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
  "event_type": "outgoing",
  "history_id": null
}
receive.Alice.incoming.Delete
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Delete",
      "actor": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "cc": [
        "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A/followers",
        "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A/following"
      ],
      "published": "2026-03-20T15:23:43Z",
      "object": "http://abel/actor/0Og7q7FUvw_3YM4Yucfs9A",
      "id": "http://abel/object/019d0bd8-63fa-7051-b17e-efa00d79a6e3"
    }
  },
  "actor": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
  "event_type": "incoming",
  "history_id": null
}

then: The "followers" collection of "Alice" does not include "Bob"

send.Alice.request.fetch
{
  "actor": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
  "uri": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA/followers"
}
receive.Alice.response.fetch
{
  "actor": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA",
  "uri": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA/followers",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "OrderedCollection",
    "id": "http://banach/actor/peRBmAWB5h7fMQsQ6TPLtA/followers",
    "orderedItems": [],
    "totalItems": 0
  }
}