Skip to main content
Every user and resource in the Sumvin ecosystem is addressed by a Sumvin Resource Identifier (SRI) — a URI-style string that uniquely identifies the resource and encodes its type and resolution path. The scheme is stable, deterministic, and human-legible — the same SRI is used in JWT claims, API paths, and signed PINT payloads.

The three SRI families

SRIs come in three shapes, disambiguated by segment count and position.
FamilyExampleWhat it names
User SRIsr:us:person:safe:0xE23c…9e992A Sumvin user, resolved by their Safe address
PINT resource SRIsr:us:pint:abc123def456A specific Purchase Intent
Scope SRIsr:us:pint:spend:execute?max=10000000&asset=USDC@seiA capability a PINT is requesting
Scope SRIs and PINT resource SRIs share the sr:us:pint:… prefix but are shaped differently — scope SRIs have a {domain}:{action} pair and optional query params; resource SRIs are a single opaque ID. Parsers distinguish the two by segment count.

Where you see SRIs

  • JWT sub claim — the user’s SRI
  • JWT pint_uri claim — the PINT resource SRI
  • JWT scopes claim — an array of scope SRIs
  • PINT payload scopes field — the same scope SRIs, signed verbatim
  • SIS lookup paths/v0/users/{sri} takes a user SRI (URL-encoded)

Format

sr:{region}:{resource_type}:{sub_type}:{identifier}
SegmentDescriptionExamples
srProtocol prefix (always sr)
regionGeographic region codeus, eu, gb
resource_typeThe kind of resourceperson, pint
sub_typeResolution method or qualifiersafe, eoa
identifierThe unique valueWallet address, PINT ID

Common SRI Patterns

User SRIs

Users are identified by their wallet address. The sub-type indicates which wallet type is used for resolution:
sr:us:person:safe:0xE23c9A70BC749EBddd8c78a864fd911D04E9e992
sr:us:person:eoa:0x742d35Cc6634C0532925a3b844Bc9e7595f2bD78
The safe sub-type is the canonical identifier for most operations, as the Safe smart wallet is the user’s primary identity anchor.

PINT SRIs

Purchase Intents are identified by a generated PINT ID:
sr:us:pint:abc123def456
PINT SRIs appear in JWT claims (sub, pint_uri), API responses, and revocation checks.

Scope SRIs

Scope SRIs are a third URI family in the same scheme — they identify capabilities rather than users or resources. A scope SRI is the string form of a PINT’s requested permission; partners consume them via the scopes claim on the exchanged JWT.
sr:{region}:pint:{domain}:{action}[?{key}={value}&{key}={value}]
Scope SRIGrants
sr:us:pint:identity:kyc_statusAttest the user’s KYC status
sr:us:pint:spend:execute?max=10000000&asset=USDC@sei&chain_id=1329Authorise on-chain spend up to 10 USDC on Sei
sr:us:pint:perpetual:search?time=2592000Create an IPA with a 30-day search window
sr:us:pint:accounts:link?provider=plaidLink a bank account via Plaid
Scope SRIs are distinct from PINT resource SRIs (e.g. sr:us:pint:abc123def456). Both use the sr:…:pint:… prefix, but they differ in shape and purpose:
  • Scope SRI — 5 fixed segments (sr, region, pint, domain, action) plus optional ?k=v query params. The third segment pint is the disambiguator that marks the URI as a scope rather than a PINT resource.
  • PINT resource SRI — 4 segments (sr, region, pint, PINT ID), no query params.
Parsers use the segment count and the presence of the {domain}:{action} pair to disambiguate the two families.
Scope SRIs support per-scope parameters for fine-grained capability envelopes — amount caps in base units, asset + chain context as SYMBOL@context, provider choices as enums, and time windows / timestamps in unix seconds. See the Scopes Reference for the full 14-scope MVP catalog, parameter conventions, and verification-tier mapping.

Using SRIs

Looking Up Users via SIS

Pass an SRI to the SIS user lookup endpoint to retrieve user data. The fields returned depend on your API key’s authorisation level:
curl https://sis.sumvin.com/v0/users/sr:us:person:safe:0xE23c9A70BC749EBddd8c78a864fd911D04E9e992 \
  -H "Authorization: Bearer <your-api-key>"
{
  "sri": "sr:us:person:safe:0xE23c9A70BC749EBddd8c78a864fd911D04E9e992",
  "user": {
    "external_id": "usr_abc123",
    "account_status": "active",
    "email": "alice@example.com",
    "username": "alice"
  },
  "_links": {
    "self": {
      "href": "/sis/v0/users/sr:us:person:safe:0xE23c9A70BC749EBddd8c78a864fd911D04E9e992",
      "method": "GET"
    }
  }
}

SRIs in JWTs

When the SIS issues a JWT for a PINT exchange, the sub claim contains the user’s SRI and the pint_uri claim contains the PINT’s SRI:
{
  "sub": "sr:us:person:safe:0xE23c9A70BC749EBddd8c78a864fd911D04E9e992",
  "pint_uri": "sr:us:pint:abc123def456",
  "aud": "partner-x.example.com"
}

URL Encoding

When SRIs appear in URL paths, the colon separators must be URL-encoded as %3A:
GET /sis/v0/users/sr%3Aus%3Aperson%3Asafe%3A0xE23c9A70BC749EBddd8c78a864fd911D04E9e992
Most HTTP client libraries handle this encoding automatically.