The three pillars of Sigil
- Non-custodial smart account wallets — each user gets a Safe multisig wallet that serves as their on-chain identity anchor.
- — EIP-712 signed messages that authorise specific actions and scopes. A Stamped Mandate is delivered over the API as a
PINT(headerx-sumvin-pint-token). - The Sumvin Identity Service (SIS) — exchanges signed Stamped Mandates for verifiable JWTs that third parties can independently validate.
How it works
A typical Sigil flow looks like this:- The user (or their agent) signs a Stamped Mandate — a structured EIP-712 message declaring what they want to do, which scopes they authorise, and how long the authorisation is valid. On the wire this is a
PINT. - Your app exchanges the signed mandate with the SIS token service, which validates the signature, checks KYC status, and returns a SIS-signed JWT.
- The JWT travels with requests to third-party services, which verify it against the SIS public keys (JWKS) and optionally check revocation status.
Key concepts
Who uses what
Next steps
- SRI format — the URI family that identifies users, resources, and scopes.
- EIP-712 and PINTs — the signed message spec you’ll mint against.
- Token exchange — trade a signed PINT for a SIS-issued JWT.
- Scopes reference — the capability envelope each PINT carries.
- SRI format — the URI family that identifies users, resources, and scopes.
- EIP-712 and PINTs — the signed message spec your Stamped Mandates are built on.
- Token exchange — trade a signed Stamped Mandate for a SIS-issued JWT.
- Scopes reference — the capability envelope each Stamped Mandate carries.