---
# System prepended metadata

title: Alternative SIOP diagrams

---

# Alternative SIOP diagrams

#### Web3 flow using OIDC + PKCE

```mermaid
sequenceDiagram
    dApp->>SDK: signIn (+ requested claims)
    SDK-->>dApp: create OIDC request + redirect
    dApp->>OP: redirect with OIDC request
    OP->>OP: authn + authz (eip712, eip2844, + enter user data)
    OP->>Wallet: eip712, eip2844
    Wallet-->>OP: signature
    OP-->>dApp: redirect with code
    dApp->>OP: code for id_token (+PKCE stuff)
    OP-->>dApp: id_token (including VPs + DID)
    dApp->>SDK: verify id_token
    SDK-->>dApp: verified data (+ DID)
```

#### Web3 flow using SIOP Bridge

```mermaid
sequenceDiagram
    dApp->>Bridge: signIn (+ requested claims)
    Bridge->>Bridge: provide widget with wallet options
    Bridge->>Wallet: eip712, eip2844, SIOPv2, + enter some data ...
    Wallet-->>Bridge: signed id_token (alg=urn:eip712, ...)
    Bridge-->>dApp: verified data
```

#### Web3 flow using OIDC + SIOPv2

```mermaid
sequenceDiagram
    dApp->>SDK: signIn (+ requested claims)
    SDK->>SDK: provide widget with wallet options
    SDK->>Wallet: eip712, eip2844, SIOPv2 ...
    Wallet-->SDK: signed id_token (alg=urn:eip712, ...)
    SDK-->dApp: id_token
```

#### ENS Web2 flow using SIOPv2

```mermaid
sequenceDiagram
    note over Browser: loading VCs into ENS
    SomeApp->>ENS: add VCs and claims
    ENS-->>SomeApp: ok
    note over Browser: sign-in process starts here
    Browser->>Web2RP: get sign-in page
    Web2RP->>SDKServer: create request
    SDKServer-->>Web2RP: SIOP request
    Web2RP-->>Browser: sign-in page (with SIOP request)
    Browser->>SDKFrontend: SIOP request
    SDKFrontend->>Wallet: web3 connect
    Wallet-->>SDKFrontend: eth accounts
    SDKFrontend->>ENS: reverse resolution
    ENS-->>SDKFrontend: ENS name
    SDKFrontend->>ENS: lookup other claims and VCs
    ENS-->>SDKFrontend: claims and VCs
    SDKFrontend->>SDKFrontend: ENS name to did:ens (defaults to simple secp256k1 auth/assertion key)
    SDKFrontend->>Wallet: EthereumEip712Signature2021 (id_token and optionally second call to sign VP)
    Wallet-->>SDKFrontend: signature
    SDKFrontend->>SDKFrontend: pack id_token and optionally VP with signature(s)
    SDKFrontend->>Web2RP: id_token
    Web2RP->>SDKServer: verify id_token (+ VCs)
    SDKServer-->>Web2RP: ok
    Web2RP-->>SDKFrontend: session + userinfo
    SDKFrontend-->>Browser: ok
    Browser->>Browser: request new page with session, or just reload, or just set userinfo
```