Skip to content

Add wallet-personalized trust circle Reality Tunnel#49

Open
Ghost-tech-ng wants to merge 1 commit into
intuition-box:devfrom
Ghost-tech-ng:feat/wallet-trust-circle
Open

Add wallet-personalized trust circle Reality Tunnel#49
Ghost-tech-ng wants to merge 1 commit into
intuition-box:devfrom
Ghost-tech-ng:feat/wallet-trust-circle

Conversation

@Ghost-tech-ng

Copy link
Copy Markdown

Summary

Resolves the Reality Tunnel half of #45 — adds the three wallet-personalized
trust circle modes from the original spec, complementing the mainnet
migration and trust-threshold filter already in #47.

This is additive: #47's global "Trust Threshold" slider filters the whole
graph by raw vault share weight, regardless of who's connected. It doesn't
use the connected wallet's own attestations. This PR fills that specific
gap.

What's included

Reality Tunnel — wallet-personalized trust circle

  • My Trust Circle — graph built from the connected wallet's own
    on-chain attestations about other accounts (src/trustCircle.js,
    src/TrustCirclePanel.js)
  • Peer Perspective — pick someone from your circle and view the graph
    rooted at their attestations instead
  • All Trust Circle — aggregated view: your circle plus a second hop
    (who the people you trust, trust)
  • Weighting — node size and link width scaled by real vault stake on
    each attestation (applyWeighting in src/trustCircle.js,
    nodeVal/linkWidth wiring in GraphVisualization.js)

A note on what "trust circle" means here

Intuition is permissionless — there's no single canonical "trust" or
"follows" predicate atom. I checked mainnet directly: there are multiple
independently-created atoms labeled "trusts"/"follows", and the one atom
matching the SDK's following/followers helpers has only 2 instances on
all of mainnet. Not enough to build a feature on.

Instead, this defines a trust-circle edge structurally: a triple where the
connected wallet's Account atom is the subject and another Account atom is
the object — i.e. "this wallet made an on-chain claim about that wallet."
That pattern has real volume (~1,002 such triples mainnet-wide as of
writing) and is exactly what the protocol already treats as an attestation
(a triple backed by a vault position). Predicate labels vary ("follows",
"trusts", "recommends", "is a member of", etc.) — the structural pattern is
the trust signal, not a specific word choice.

This was verified against live queries to mainnet.intuition.sh/v1/graphql
before writing any code, not assumed or mocked.

Mainnet migration

Also included so this branch is self-contained and testable on its own —
same endpoint swap as #47 (api.js, api/Base.js, env badge).

Testing

  1. Connect a wallet that has made on-chain attestations about other
    accounts (most wallets currently have none — mainnet trust-circle data
    is still sparse; the panel says so explicitly rather than faking
    results)
  2. Enable the "Reality Tunnel: Trust Circle" panel (top right)
  3. Switch between My Trust Circle / Peer Perspective / All Trust Circle
  4. Confirm node size and edge thickness scale with stake
  5. Disable the panel to confirm the graph falls back to normal behavior

Adds the three trust-circle view modes from the original Mission 05 spec
(My Trust Circle, Peer Perspective, All Trust Circle) using the connected
wallet's real on-chain attestations, not a global popularity filter.

Intuition is permissionless, so there's no single canonical "trust"
predicate (mainnet has several independently-created atoms labeled
"trusts"/"follows", and the literal "follows" atom has only 2 instances
mainnet-wide). The trust circle is therefore defined structurally: any
triple where the connected wallet's Account atom is the subject and
another Account atom is the object, weighted by real vault stake. This
was verified directly against mainnet.intuition.sh/v1/graphql before
implementation (~1,002 such triples exist mainnet-wide).

Also swaps the GraphQL endpoint and env badge from testnet to mainnet so
this branch is self-contained and deployable on its own.
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