# 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 ```