Skip to content

feat: index indexer avatar and profile metadata - #16

Closed
MoonBoi9001 wants to merge 3 commits into
mb9/index-indexer-urlsfrom
mb9/index-indexer-profile-metadata
Closed

MoonBoi9001 wants to merge 3 commits into
mb9/index-indexer-urlsfrom
mb9/index-indexer-profile-metadata

Conversation

@MoonBoi9001

@MoonBoi9001 MoonBoi9001 commented Jun 5, 2026 •

Copy link
Copy Markdown
Member

Stacked on #15 — please review and merge that first.

TL;DR

Reading an indexing agreement now gives you the indexer's address and service URL, but not the indexer's avatar or profile, so anything that displays an indexer still cross-queries the network subgraph for those. This indexes each indexer's avatar and profile details from the same on-chain registry the network already uses and links them to the indexer, so they come back in one query.

Motivation

The indexing payments subgraph records each indexer with its on-chain address and, as of #15, its service URL. Products that display an indexer — such as Studio's indexing-progress view — also show the indexer's avatar and a short profile, and today those come only from the network subgraph, so a consumer that already reads this subgraph must make a second query elsewhere just to show a picture and a description.

Indexers publish that profile on-chain themselves: an entry in the Ethereum DID registry points at a metadata document on IPFS holding the avatar, description, and website. Indexing it here lets a consumer read an indexer's URL and profile together in one query, dropping the extra round-trip for the common case of showing who an indexer is.

Summary

  • Add an Account record per indexer address, linking to its latest profile metadata.
  • Add an AccountMetadata record holding the avatar image, description, website, and related fields.
  • Fetch that metadata from IPFS, pointed to by the indexer's on-chain DID registry entry.
  • Link each indexer to its account so the avatar reads alongside the service URL.
  • Stop showing an indexer's profile once it retracts the on-chain pointer.
  • Wire the DID registry address and start block into the Arbitrum One, Sepolia, and local configs.
  • Guard against a malformed on-chain hash before decoding, so a bad value can't crash indexing.
  • Add tests for the metadata decode, IPFS document parsing, and the malformed-value guard.
  • Add tests for profile retraction and the indexer-to-account link.

An indexer record carried only its service URL, so consumers cross-queried the network
subgraph for the avatar and display name. Index each account's metadata document (avatar,
display name, description), pointed to on-chain and fetched from IPFS, and link it per indexer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
MoonBoi9001 and others added 2 commits June 6, 2026 01:49
An indexer's profile pointer is published on-chain with a validity deadline. Retracting the
profile re-publishes the pointer with that deadline set to the current moment, so it is expired.
The subgraph now drops the profile link when the deadline has passed instead of re-indexing it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Registering an indexer also links it to an account record stored under the same address, but no
test covered that link. This checks the link is set once an indexer registers.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@MoonBoi9001
MoonBoi9001 force-pushed the mb9/index-indexer-profile-metadata branch from 77ed4ac to 2c00e0c Compare June 5, 2026 13:49
@MoonBoi9001

Copy link
Copy Markdown
Member Author

Closing this, if needed we can reopen. For now just going with pr 15 that has the URL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant