diff --git a/docs/user-flows.md b/docs/user-flows.md index b2a1234..18d38ac 100644 --- a/docs/user-flows.md +++ b/docs/user-flows.md @@ -7,9 +7,10 @@ Semaphore public key (identity commitment) to the [`signup-sequencer`](https://github.com/worldcoin/signup-sequencer) queue. The signup sequencer will create a batch of size 10, 100 or 1000 (based on current parameters), create a zk proof of insertion using [`semaphore-mtb`](https://github.com/worldcoin/semaphore-mtb), calls `registerIdentities()` -and the contract verifies the proof, updates the merkle tree root, inserts the new identities and -propagates it to other chains using the -[`StateBridge`](https://github.com/worldcoin/world-id-state-bridge). +and the contract verifies the proof and updates the merkle tree root. Each chain that World ID +supports (currently Base, Optimism and Polygon PoS) has a state bridge contract which fetches the +state from the `WorldIDIdentityManager`contract and propagates it further to the other chains. The +state bridge contracts can be found [here](https://github.com/worldcoin/world-id-state-bridge). ![creation flow](./world-id-creation-flow.svg) diff --git a/docs/world-id-creation-flow.svg b/docs/world-id-creation-flow.svg index 4afa5e6..92e4187 100644 --- a/docs/world-id-creation-flow.svg +++ b/docs/world-id-creation-flow.svg @@ -1,4 +1,4 @@ - + @@ -14,4 +14,4 @@ - signup-sequencerWorldIDRoutersemaphore-mtbidentity commitment batch(size 10, 100 or 1000) /insertionProofbatch insertionproofWorld ID creation floworb-backend/insertIdentityorb-authenticated Semaphore pub key(identity commitment)( routeFor(groupId) )params:- groupID0 - phone1 - orbregisterIdentities()WorldIDIdentityManager(0 - phone)(1 - orb)registerIdentities()StateBridge \ No newline at end of file + signup-sequencerWorldIDRoutersemaphore-mtbidentity commitment batch(size 10, 100 or 1000) /insertionProofbatch insertionproofWorld ID creation floworb-backend/insertIdentityorb-authenticated Semaphore pub key(identity commitment)( routeFor(groupId) )params:- groupID0 - phone1 - orbregisterIdentities()WorldIDIdentityManager(0 - phone)(1 - orb)registerIdentities()_latestRoot is updated,state bridge contracts will propagate it byquerying latestRoot() and propagating it periodicallyto their destination chains using a relayer \ No newline at end of file diff --git a/docs/world-id-verification-flow.svg b/docs/world-id-verification-flow.svg index 5336b50..06ce231 100644 --- a/docs/world-id-verification-flow.svg +++ b/docs/world-id-verification-flow.svg @@ -1,4 +1,4 @@ - + @@ -14,4 +14,4 @@ - World ID verification flowgroupIDWorldIDRouterEthereum /Optimism/PolygonSmart contract integratingWorld IDverifyProof()(0 - phone)(1 - orb)WorldIDIdentityManagerverifyProof()proof validproof invalidrevert InvalidProof()verification successfulIDKit.js /semaphore-rsClientgenerates proof \ No newline at end of file + World ID verification flowgroupIDWorldIDRouterEthereum /Optimism/PolygonSmart contract integratingWorld IDverifyProof()(0 - phone)(1 - orb)WorldIDIdentityManagerverifyProof()proof validproof invalidrevert InvalidProof()verification successfulIDKit.js /semaphore-rsClientgenerates proof \ No newline at end of file