Skip to content

Publish Object Works

given: "Alice" created an actor on "abel" called "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": "2025-12-19T09:49:46.627288",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw#legacy-key-1",
    "owner": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvUAv0NZ5X15oDltd57bl\ncT0WnElf4qtgJRLLiGixN4u4aNjDRyM9jSK9HItICCEbhlDrPvijOC171aYSr82w\nR+/enHYHWiH1V22JToNDZ4QoYZJmza2EMvY90RIoIeYB8/P8046VbjUYcvPa3GGN\nitKkP8C3s4ZU0j+NEoibha9AZzuQDMx3E1cGKMzcY/c9qyPA7tr6S3eu9N17z3mt\nU/OMXWOLDSdGQGdzpIZIbjEnkOm7sw7OfOJTLKUdAb/UQU00vQWSbRWsJqxXYImL\nA3BjSm5Ttu1qYEvTaL7WQYBVM9awX0HwwMcKTNwm1St+LlOJrEdwrwFFNI2mz0go\nfwIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
  "type": "Person",
  "inbox": "http://abel/inbox/I4R9chHp3Y2wqGUVNPckCw",
  "outbox": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw/outbox",
  "followers": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw/followers",
  "following": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw/following",
  "preferredUsername": "Alice",
  "name": "Alice",
  "identifiers": [
    "acct:Alice@abel",
    "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw"
  ],
  "endpoints": {
    "sharedInbox": "http://abel/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

given: "Bob" created an actor on "abel" called "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": "2025-12-19T09:49:47.641508",
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
    }
  ],
  "publicKey": {
    "id": "http://abel/actor/Mq454O4noR4biRJFJQSfug#legacy-key-1",
    "owner": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwSCG/GdHty1owhsS0eiK\nTo72/d/x12+T/JfXd5U5G/PO8nD5bh10W/ZZogpHHGDINCLCj+U4XcKTkAahCBrS\nYJ7CNbJTcxFK+xI96OKt7BX26BOs38ZvUKeGhg7qm0Jw8J56xKM7ZXEnGbpqQxr1\nlC0Za1W/a14EzbfKF/bulYaEs4+vdv6JBhEaKitdwrykjXk/yp4daaUEXg+SIK2R\nn0+AHg1MzYarf2SE2U2vdJmpipqInkV4Wh+ZJuUqKSlOqsXNoOOiH7+FNHOQgNai\nu+HYRh1qLa5ve3rtBeG3F06S9HPxXgsM7Vur1WXi9fYw6uYDXeb7bXFbp/XH28K1\nDwIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
  "type": "Person",
  "inbox": "http://abel/inbox/vDRYtSuUjnpU5SYHk_jQvg",
  "outbox": "http://abel/actor/Mq454O4noR4biRJFJQSfug/outbox",
  "followers": "http://abel/actor/Mq454O4noR4biRJFJQSfug/followers",
  "following": "http://abel/actor/Mq454O4noR4biRJFJQSfug/following",
  "preferredUsername": "Bob",
  "name": "Bob",
  "identifiers": [
    "acct:Bob@abel",
    "http://abel/actor/Mq454O4noR4biRJFJQSfug"
  ],
  "endpoints": {
    "sharedInbox": "http://abel/shared_inbox"
  },
  "manuallyApprovesFollowers": true
}

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

send.Bob.trigger.send_message
{
  "actor": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
    "to": [
      "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw"
    ],
    "id": "follow:e786dc9a-b114-442d-a641-6c3b76bfea05",
    "published": "2025-12-19T09:49:47Z",
    "object": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw"
  }
}
receive.Bob.outgoing.Follow
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
      "to": [
        "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw"
      ],
      "id": "follow:e786dc9a-b114-442d-a641-6c3b76bfea05",
      "published": "2025-12-19T09:49:47Z",
      "object": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw"
    }
  },
  "actor": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
  "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://abel/actor/Mq454O4noR4biRJFJQSfug",
      "to": [
        "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw"
      ],
      "id": "follow:e786dc9a-b114-442d-a641-6c3b76bfea05",
      "published": "2025-12-19T09:49:47Z",
      "object": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw"
    }
  },
  "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
  "event_type": "incoming",
  "history_id": null
}
send.Alice.trigger.send_message
{
  "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
    "to": [
      "http://abel/actor/Mq454O4noR4biRJFJQSfug"
    ],
    "published": "2025-12-19T09:49:48Z",
    "object": "follow:e786dc9a-b114-442d-a641-6c3b76bfea05",
    "id": "accept:18769826-a7d2-48f5-a349-7cbd30af5a3c"
  }
}
receive.Alice.outgoing.Accept
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
      "to": [
        "http://abel/actor/Mq454O4noR4biRJFJQSfug"
      ],
      "published": "2025-12-19T09:49:48Z",
      "object": "follow:e786dc9a-b114-442d-a641-6c3b76bfea05",
      "id": "accept:18769826-a7d2-48f5-a349-7cbd30af5a3c"
    }
  },
  "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
  "event_type": "outgoing",
  "history_id": null
}

when: "Alice" publishes a message "moo" to her followers

receive.Bob.incoming.Accept
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
      "to": [
        "http://abel/actor/Mq454O4noR4biRJFJQSfug"
      ],
      "published": "2025-12-19T09:49:48Z",
      "object": "follow:e786dc9a-b114-442d-a641-6c3b76bfea05",
      "id": "accept:18769826-a7d2-48f5-a349-7cbd30af5a3c"
    }
  },
  "actor": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
  "event_type": "incoming",
  "history_id": null
}
send.Alice.trigger.publish_object
{
  "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Note",
    "attributedTo": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
    "to": [
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "cc": [
      "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw/followers"
    ],
    "published": "2025-12-19T09:49:49Z",
    "content": "moo"
  }
}
receive.Alice.outgoing.Create
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "cc": [
        "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw/followers"
      ],
      "published": "2025-12-19T09:49:49Z",
      "object": {
        "@context": "https://www.w3.org/ns/activitystreams",
        "type": "Note",
        "attributedTo": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
        "to": [
          "https://www.w3.org/ns/activitystreams#Public"
        ],
        "cc": [
          "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw/followers"
        ],
        "published": "2025-12-19T09:49:49Z",
        "content": "moo",
        "id": "http://abel/simple_storage/019b3603-fa67-747d-a154-36acab8f0f2c"
      },
      "id": "http://abel/simple_storage/019b3603-fa79-7aeb-a0ee-9817a7749261"
    }
  },
  "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
  "event_type": "outgoing",
  "history_id": null
}
receive.Bob.incoming.Create
{
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "actor": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "cc": [
        "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw/followers"
      ],
      "published": "2025-12-19T09:49:49Z",
      "object": {
        "@context": "https://www.w3.org/ns/activitystreams",
        "type": "Note",
        "attributedTo": "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw",
        "to": [
          "https://www.w3.org/ns/activitystreams#Public"
        ],
        "cc": [
          "http://abel/actor/itGwKLlvi7Q6N4FpOf0sqw/followers"
        ],
        "published": "2025-12-19T09:49:49Z",
        "content": "moo",
        "id": "http://abel/simple_storage/019b3603-fa67-747d-a154-36acab8f0f2c"
      },
      "id": "http://abel/simple_storage/019b3603-fa79-7aeb-a0ee-9817a7749261"
    }
  },
  "actor": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
  "event_type": "incoming",
  "history_id": null
}

then: "Bob" receives an activity

then: the received activity is of type "Create"

then: "Bob" can retrieve the activity

send.Bob.request.fetch
{
  "actor": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
  "uri": "http://abel/simple_storage/019b3603-fa79-7aeb-a0ee-9817a7749261"
}
receive.Bob.response.fetch
{
  "actor": "http://abel/actor/Mq454O4noR4biRJFJQSfug",
  "uri": "http://abel/simple_storage/019b3603-fa79-7aeb-a0ee-9817a7749261",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Tombstone",
    "id": "http://abel/simple_storage/019b3603-fa79-7aeb-a0ee-9817a7749261"
  }
}