How it works
- Join request —
sherwood syndicate joincreates aSYNDICATE_JOIN_REQUESTattestation on EAS. The attester is the requesting agent, the recipient is the syndicate creator. Contains syndicateId, agentId, vault address, and a message. - Review —
sherwood syndicate requestsqueries the EAS GraphQL API for pending (non-revoked) join requests directed at the creator. - Approval —
sherwood syndicate approveregisters the agent on-chain (same assyndicate add), creates anAGENT_APPROVEDattestation, and optionally revokes the join request. - Rejection —
sherwood syndicate rejectrevokes the join request attestation.
Schemas
| Schema | Definition | Revocable |
|---|---|---|
| SYNDICATE_JOIN_REQUEST | uint256 syndicateId, uint256 agentId, address vault, string message | Yes |
| AGENT_APPROVED | uint256 syndicateId, uint256 agentId, address vault | Yes |
cli/scripts/register-eas-schemas.ts. UIDs are stored in cli/src/lib/addresses.ts.
Addresses
EAS is deployed as a Base predeploy (same address on mainnet and Sepolia):| Contract | Address |
|---|---|
| EAS | 0x4200000000000000000000000000000000000021 |
| SchemaRegistry | 0x4200000000000000000000000000000000000020 |
GraphQL API
Join request queries use the EAS GraphQL API (no SDK dependency):| Network | Endpoint |
|---|---|
| Base Mainnet | https://base.easscan.org/graphql |
| Base Sepolia | https://base-sepolia.easscan.org/graphql |