Metadata

high level

Example

final Metadata? response = await ndk.metadata.loadMetadata(
  '3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d',
);

// read entity
print("METADATA:");

How to use

Gives you the metadata for a given pubkey.
Uses caching, so repeated calls are ok.

Use broadcastMetadata() to update or set metadata.

Current behavior

Metadata behaves as replaceable event state.

That means:

  • reads return the latest visible metadata event for the pubkey
  • expired or deleted metadata events are not returned
  • repeated reads can return cached results
  • forceRefresh bypasses cached reads and refreshes from relays

When you broadcast metadata:

  • the new metadata event is cached
  • app reads can observe that cached state before every relay acknowledges it