Skip to content

Protocol

DragonDev1906 edited this page May 4, 2026 · 1 revision

Protocol Documentation

Preparation (compile/setup time)

  • Prepare the repo: make init
  • Compile the circuits and generate key material (will be published later once the circuit changes less often): make prep-release
  • Compile cardano script with the vkey: make verifier/cardano/eudi2web3_demo.script
  • Generate key material for deployment and execution (needs to be funded from a faucet before continuing): make me.sk me.vk me.addr
  • Deploy script: BLOCKFROST_KEY="..." cargo run --bin deploy
  • Start the service: BLOCKFROST_KEY="..." cargo run --release --bin main (note: completing the OpenID workflow may require fully working TLS).

Protocol steps for requesting and processing the Credential VP

  1. User opens the website (server binds to "127.0.0.1:8080" by default) and enters a cardano address (+ circuit selection)
  2. Address is sent to the server and stored until the VP is available /submit_data
  3. The server returns a VP request URL, shown to the user as a QR code
  4. The user scans the QR code with his wallet
  5. The wallet requests additional request data /vp_request/{id} and verifies this request.
  6. After the user shares his credential, the wallet sends the VP to /vp_auth/{id}, where it is matched to the data from step 1 and put into the processing queue.
  7. When taken out of the queue, the credential is given to the circuit to compute the proof (VP -> Input -> Witness -> Proof -> Verify). This also verifies the credential integrity.
  8. If requested by the user, the proof is published on-chain (eudi2web3_demo script).
  9. Once completed the user also gets the proof (regardless of whether it is published on-chain).

Clone this wiki locally