← All NIPs

NIP-48

Bridged Events

DraftEvents

Marks events that were copied into Nostr by a bridge from ActivityPub, Bluesky, RSS or the web. A proxy tag points back to the original object, so clients can link to it and avoid showing the same post twice.

At a glance

Status
In use and still allowed to change.
Tags
  • proxy
Last changed
May 28, 2026

Try it

Edit the form or the JSON: both stay in sync, the badge says whether the result is valid, and tapping any field explains it.

Examples
Valid 1 note

Not signed yet · Demo keys only. These personas' secret keys are public on purpose.

Form
Jan 1, 2025, 12:00 AM UTC

Content

The bridged post's content, converted to the event kind's normal format.

Tags

  1. proxy Required

    Links the event to its source object on another protocol.

Add tag

How this NIP works

Step 1 of 4

A bridge copies a post

Bridges such as Mostr watch another network and republish its posts as Nostr events, usually under a key the bridge controls for each remote account.

In the course

No course chapter covers this NIP yet. The editor above is the quickest way in.

Extends

Specification

Specification text is quoted in English from the nostr-protocol/nips repository. Our explanations and the interface are translated. Source on GitHub at commit 0046368

Read the spec224 words, quoted from the repository at commit 0046368.

Nostr events bridged from other protocols such as ActivityPub can link back to the source object by including a "proxy" tag, in the form:

["proxy", <id>, <protocol>]

Where:

  • <id> is the ID of the source object. The ID format varies depending on the protocol. The ID must be universally unique, regardless of the protocol.
  • <protocol> is the name of the protocol, e.g. "activitypub".

Clients may use this information to reconcile duplicated content bridged from other protocols, or to display a link to the source object.

Proxy tags may be added to any event kind, and doing so indicates that the event did not originate on the Nostr protocol, and instead originated elsewhere on the web.

Supported protocols

This list may be extended in the future.

Protocol ID format Example
activitypub URL https://gleasonator.com/objects/9f524868-c1a0-4ee7-ad51-aaa23d68b526
atproto AT URI at://did:plc:zhbjlbmir5dganqhueg7y4i3/app.bsky.feed.post/3jt5hlibeol2i
rss URL with guid fragment https://soapbox.pub/rss/feed.xml#https%3A%2F%2Fsoapbox.pub%2Fblog%2Fmostr-fediverse-nostr-bridge
web URL https://twitter.com/jack/status/20

Examples

ActivityPub object:

{
  "kind": 1,
  "content": "I'm vegan btw",
  "tags": [
    [
      "proxy",
      "https://gleasonator.com/objects/8f6fac53-4f66-4c6e-ac7d-92e5e78c3e79",
      "activitypub"
    ]
  ],
  "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6",
  "created_at": 1691091365,
  "id": "55920b758b9c7b17854b6e3d44e6a02a83d1cb49e1227e75a30426dea94d4cb2",
  "sig": "a72f12c08f18e85d98fb92ae89e2fe63e48b8864c5e10fbdd5335f3c9f936397a6b0a7350efe251f8168b1601d7012d4a6d0ee6eec958067cf22a14f5a5ea579"
}

See also