Difficulty: Expert
Type: Feature
Recommended labels (if available in this repo): enhancement, protocol, multi-chain
Background
docs/rfcs/cross-chain-guild-identity.md documents a design for resolving a single guild identity across multiple EVM chains, but the SDK currently only has single-chain provider/config plumbing (src/config/networkConfig.ts, per-chain contract clients).
Problem
GuildPass communities that deploy membership contracts on more than one chain currently have no SDK-level way to resolve 'this wallet's guild identity' as a unified concept spanning chains — each chain must be queried and reconciled manually by the consumer.
Expected Outcome
A resolveGuildIdentity(walletAddress, guildId) API that implements the RFC's identity-linking design, querying configured chains for the guild and returning a unified identity object with per-chain membership/role details plus an aggregated view.
Suggested Implementation
Follow the RFC's data model precisely. Extend networkConfig.ts to support multiple chain configs per guild. Add a resolution module under src/access/ or a new src/identity/ directory that fans out per-chain contract reads (using the existing provider infrastructure) and merges results per the RFC's precedence/aggregation rules. Handle partial-chain failures explicitly (e.g. one chain's RPC is down) per whatever degradation behavior the RFC specifies.
Acceptance Criteria
- Implementation matches the data model and resolution rules described in
docs/rfcs/cross-chain-guild-identity.md
- Correctly aggregates membership/roles across at least 2 configured chains in tests
- Partial chain failure (one RPC down) is handled per the RFC's specified degradation behavior, not a silent full failure
- Unit tests cover full-success, partial-failure, and all-chains-failed scenarios
pnpm test:run and pnpm typecheck pass
Likely Affected Files/Directories
docs/rfcs/cross-chain-guild-identity.md
src/config/networkConfig.ts
src/access/access.service.ts
src/contracts/contractClient.ts
Difficulty: Expert
Type: Feature
Recommended labels (if available in this repo):
enhancement,protocol,multi-chainBackground
docs/rfcs/cross-chain-guild-identity.mddocuments a design for resolving a single guild identity across multiple EVM chains, but the SDK currently only has single-chain provider/config plumbing (src/config/networkConfig.ts, per-chain contract clients).Problem
GuildPass communities that deploy membership contracts on more than one chain currently have no SDK-level way to resolve 'this wallet's guild identity' as a unified concept spanning chains — each chain must be queried and reconciled manually by the consumer.
Expected Outcome
A
resolveGuildIdentity(walletAddress, guildId)API that implements the RFC's identity-linking design, querying configured chains for the guild and returning a unified identity object with per-chain membership/role details plus an aggregated view.Suggested Implementation
Follow the RFC's data model precisely. Extend
networkConfig.tsto support multiple chain configs per guild. Add a resolution module undersrc/access/or a newsrc/identity/directory that fans out per-chain contract reads (using the existing provider infrastructure) and merges results per the RFC's precedence/aggregation rules. Handle partial-chain failures explicitly (e.g. one chain's RPC is down) per whatever degradation behavior the RFC specifies.Acceptance Criteria
docs/rfcs/cross-chain-guild-identity.mdpnpm test:runandpnpm typecheckpassLikely Affected Files/Directories
docs/rfcs/cross-chain-guild-identity.mdsrc/config/networkConfig.tssrc/access/access.service.tssrc/contracts/contractClient.ts