Unirep
  • 👏Welcome
  • 🧩Introduction
  • 🎮Getting Started
    • Install & build 🛠
    • Start with cli commands 🔌
      • 0. Install and build
      • 1. Spin up the testing chain
      • 2. Deploy Unirep contract
      • 3. User generates semaphore identity
      • 4. User signs up
      • 5. Attester signs up
      • 6. User generates epoch key and epoch key proof
      • 7. Attesters/Users verify epoch key proof
      • 8. Submit epoch key proof to Unirep smart contract
      • 9. Attester attest to epoch key
      • 10. Epoch transition
      • 11. User state transition
      • 12. User generates reputation proof
      • 13. Attesters/ Users verify the reputation proof
      • 14. User generates sign up proof
      • 15. Attesters/ Users verify the sign up proof
    • Start with Typescript 📠
      • 0. Install packages
      • 1. deploy
      • 2. User signs up
      • 3. Attester signs up
      • 4. Epoch key proof
      • 5. Attest
      • 6. Epoch transition
      • 7. User state transition
      • 8. Reputation proof
    • Computation happens off-chain â„šī¸
  • â˜€ī¸Protocol
    • Glossary
      • Users and Attesters
      • Epoch
      • Epoch Key
      • Reputation
      • Trees
      • Nullifiers
      • Epoch Transition
      • User State Transition
    • Circuits
      • Epoch Key Proof
      • Reputation Proof
      • User Sign Up Proof
      • User State Transition Proof
    • Contract
      • Sign up
      • Attestations
      • Epoch transition
      • User state transition
      • Verify proofs
  • 🌈Package usage
    • @unirep/crypto
    • @unirep/circuits
    • @unirep/contracts
    • @unirep/core
    • @unirep/subgraph
    • cli
      • Deploy Unirep Contract
      • User Identity
      • User Sign Up
      • Epoch Key And Proof
      • Attestation
      • Epoch transition
      • User state transition
      • Reputation Proof
      • Airdrop Reputation
      • Spend Reputation
  • đŸŒģApplications
    • Unirep Social
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Getting Started
  2. Start with cli commands 🔌

6. User generates epoch key and epoch key proof

Previous5. Attester signs upNext7. Attesters/Users verify epoch key proof

Last updated 2 years ago

Was this helpful?

npx ts-node cli/index.ts genEpochKeyAndProof \
    -x $UNIREP_CONTRACT_ADDRESS  \
    -id $USER_IDENTITY  \
    -n 0

NOTE: -id is user's identity and -n is epoch key nonce which should be less than the system parameter maxEpochKeyNonce

See: for more genEpochKeyAndProof options.

NOTE: epoch key and base64url encoded epoch key proof and public signals will be printed and they should be handed to attester to be verified, for example:

Epoch key of epoch 1 and nonce 0: 1421637519
Unirep.epk.proof.WyIyMTA5NTc4NDAyNzkwNTE1NTM4MTQ3NzE5ODAwMjMzNTU0ODgxMTkzOTk4NjcxNzE1NzY0MDU1MTQ2MTY4MTQ3Nzg4Mjc5MjAxMDM2NiIsIjEyMzYzNTc3NjM0NDc1MzM2NDQ2MjkyNjg3NTk5NTYyODU1MjY5ODA1MDUzNTE0OTExNjMwMjY1MzIwOTYyNDAxNTkxNjY0OTI0NzA1IiwiMTEzOTkxNzYwMTgzOTY0ODM1NjM4OTY3NzIzMzg1MTg1NzA2MzYxOTI2MTk1OTkyMDA3MjcwNDU0MTAzODExMDE1MzI5MDMwNzMxNjEiLCIxMzk5NTQ0NzUzMjMxMTE0OTM4MDU4NTQ1MjI1Mzg3MDk0MzQ1MzM1NDM3MjU5MjYyNjk4NjI1NDAzNTM4ODU1NDY5MjgwMzIyNjE4MSIsIjE0MDc0NDk5OTIyMDE1NTgzNzMwNjMyMjEzNjc5NDYyNTQ0NTk0NzE5MDI0NzIyMTQyNjg1Mzg3MjIzOTA3NDkzMTE0MTc0ODA1OTQiLCIxMDQ4NzU1NjIxMzIxNDM4MTMzMjgyODUwOTA3ODgzMzYzOTIwMjI1NjMwMTgwNDU5MjA0NDk1ODE3NTk0NjE3MDYyMjIyMDU4NzAyNSIsIjU4NDQxMzU5NjgwOTI1MjU5ODA4MzgxNTU1MTg2OTgwMzc1NzkyMzc1NzI5NzgwMzYxMTY0NTI5MDM1MjMwOTM0MDQyMjY3MzA1MDAiLCIxNDQxMTk1NDU0NzM0NzcwNDM5NjU3MDkxMjE0MTkzOTMwMDYyNjc3Mzg3MTE2OTUzOTE4OTc0MjU4Njk5OTcxOTQ5MzQ5NjM5ODI1MCJd
Unirep.epk.publicSignals.WyIxNDI3MDkxNTA5MjcyNTk3MDQ1MTI2ODIwNDUzODc3OTUwMDUwMjI3ODgwNzE2NzY5MDY2MTU5NTczNDE0OTExNjgzMzA2NTg3Mjk1MiIsIjEiLCIxNDIxNjM3NTE5Il0

Export those values to the environment:

export EPOCH_KEY=1421637519 && \
export EPOCH_KEY_PROOF=Unirep.epk.proof.WyIyMTA5NTc4NDAyNzkwNTE1NTM4MTQ3NzE5ODAwMjMzNTU0ODgxMTkzOTk4NjcxNzE1NzY0MDU1MTQ2MTY4MTQ3Nzg4Mjc5MjAxMDM2NiIsIjEyMzYzNTc3NjM0NDc1MzM2NDQ2MjkyNjg3NTk5NTYyODU1MjY5ODA1MDUzNTE0OTExNjMwMjY1MzIwOTYyNDAxNTkxNjY0OTI0NzA1IiwiMTEzOTkxNzYwMTgzOTY0ODM1NjM4OTY3NzIzMzg1MTg1NzA2MzYxOTI2MTk1OTkyMDA3MjcwNDU0MTAzODExMDE1MzI5MDMwNzMxNjEiLCIxMzk5NTQ0NzUzMjMxMTE0OTM4MDU4NTQ1MjI1Mzg3MDk0MzQ1MzM1NDM3MjU5MjYyNjk4NjI1NDAzNTM4ODU1NDY5MjgwMzIyNjE4MSIsIjE0MDc0NDk5OTIyMDE1NTgzNzMwNjMyMjEzNjc5NDYyNTQ0NTk0NzE5MDI0NzIyMTQyNjg1Mzg3MjIzOTA3NDkzMTE0MTc0ODA1OTQiLCIxMDQ4NzU1NjIxMzIxNDM4MTMzMjgyODUwOTA3ODgzMzYzOTIwMjI1NjMwMTgwNDU5MjA0NDk1ODE3NTk0NjE3MDYyMjIyMDU4NzAyNSIsIjU4NDQxMzU5NjgwOTI1MjU5ODA4MzgxNTU1MTg2OTgwMzc1NzkyMzc1NzI5NzgwMzYxMTY0NTI5MDM1MjMwOTM0MDQyMjY3MzA1MDAiLCIxNDQxMTk1NDU0NzM0NzcwNDM5NjU3MDkxMjE0MTkzOTMwMDYyNjc3Mzg3MTE2OTUzOTE4OTc0MjU4Njk5OTcxOTQ5MzQ5NjM5ODI1MCJd && \
export EPOCH_PUBLIC_SIGNALS=Unirep.epk.publicSignals.WyIxNDI3MDkxNTA5MjcyNTk3MDQ1MTI2ODIwNDUzODc3OTUwMDUwMjI3ODgwNzE2NzY5MDY2MTU5NTczNDE0OTExNjgzMzA2NTg3Mjk1MiIsIjEiLCIxNDIxNjM3NTE5Il0
🎮
cli/genEpochKeyAndProof