ActivityPub Viewer

A small tool to view real-world ActivityPub objects as JSON! Enter a URL or username from Mastodon or a similar service below, and we'll send a request with the right Accept header to the server to view the underlying object.

Open in browser →
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "ostatus": "http://ostatus.org#", "atomUri": "ostatus:atomUri", "inReplyToAtomUri": "ostatus:inReplyToAtomUri", "conversation": "ostatus:conversation", "sensitive": "as:sensitive", "toot": "http://joinmastodon.org/ns#", "votersCount": "toot:votersCount", "litepub": "http://litepub.social/ns#", "directMessage": "litepub:directMessage", "Hashtag": "as:Hashtag" } ], "id": "https://neuromatch.social/users/jonny/statuses/114060313170646694", "type": "Note", "summary": null, "inReplyTo": null, "published": "2025-02-24T18:37:39Z", "url": "https://neuromatch.social/@jonny/114060313170646694", "attributedTo": "https://neuromatch.social/users/jonny", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://neuromatch.social/users/jonny/followers" ], "sensitive": false, "atomUri": "https://neuromatch.social/users/jonny/statuses/114060313170646694", "inReplyToAtomUri": null, "conversation": "tag:neuromatch.social,2025-02-24:objectId=24285554:objectType=Conversation", "content": "<p>There is this big glaring problem in the <a href=\"https://neuromatch.social/tags/bittorrent\" class=\"mention hashtag\" rel=\"tag\">#<span>bittorrent</span></a> v2 spec that basically defeats the whole purpose of the spec. So v2 introduces per-file merkle trees, which rocks. That ostensibly means that you can match identical files in different torrents, and cross-seed them e.g. if someone has a single item but another person has a larger pack that includes that item. That could also be useful for mutable torrents that contain a hash tree of versions like git. The problem is that peer matching is done on the top-level infohash - which includes non-tree data - and peers are specifically required to sever connection without a matching infohash. Maybe it would be expensive for trackers to match peers by file hashes, but for DHT peers it makes perfect sense to advertise what file hashes you have for cross-seeding - that's sort of how the entire keyspace in kademlia works.</p>", "contentMap": { "en": "<p>There is this big glaring problem in the <a href=\"https://neuromatch.social/tags/bittorrent\" class=\"mention hashtag\" rel=\"tag\">#<span>bittorrent</span></a> v2 spec that basically defeats the whole purpose of the spec. So v2 introduces per-file merkle trees, which rocks. That ostensibly means that you can match identical files in different torrents, and cross-seed them e.g. if someone has a single item but another person has a larger pack that includes that item. That could also be useful for mutable torrents that contain a hash tree of versions like git. The problem is that peer matching is done on the top-level infohash - which includes non-tree data - and peers are specifically required to sever connection without a matching infohash. Maybe it would be expensive for trackers to match peers by file hashes, but for DHT peers it makes perfect sense to advertise what file hashes you have for cross-seeding - that's sort of how the entire keyspace in kademlia works.</p>" }, "attachment": [], "tag": [ { "type": "Hashtag", "href": "https://neuromatch.social/tags/bittorrent", "name": "#bittorrent" } ], "replies": { "id": "https://neuromatch.social/users/jonny/statuses/114060313170646694/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://neuromatch.social/users/jonny/statuses/114060313170646694/replies?min_id=114060348114218613&page=true", "partOf": "https://neuromatch.social/users/jonny/statuses/114060313170646694/replies", "items": [ "https://neuromatch.social/users/jonny/statuses/114060348114218613" ] } }, "likes": { "id": "https://neuromatch.social/users/jonny/statuses/114060313170646694/likes", "type": "Collection", "totalItems": 7 }, "shares": { "id": "https://neuromatch.social/users/jonny/statuses/114060313170646694/shares", "type": "Collection", "totalItems": 6 } }