📃

Cheatsheet: zkDrop Template

➡️

This cheatsheet contains the full zkDrop template config, as well as an explanation for each parameter.

zkDrop Template

// COPY FROM HERE

{
  // NO UPDATE. Template type
  type: "zkDrop",
  // UPDATE. App information
  metadata: {
    name: "Sismo Early Community NFT", // UPDATE. Your app name
    slug: "zk-drop-early-community", // UPDATE. Your app name in the form of a slug (no spaces allowed). It will be the last part in the URL, eg: apps.sismo.io/sismo/zk-drop-early-community
    description: "Prove you are an early member of Sismo Community to claim your Sismo Early Community NFT.", // UPDATE. The description is used for SEO and social media preview of your app
    image: "sismo_zkdrop_early_community_500x500.png", // UPDATE. Image for your app, to be placed in the images folder
    tags: ["NFT"], // UPDATE. Add one or two tags to describe your app
    createdAt: new Date("2022-07-01T00:00:00.000Z"), // UPDATE. Edit the date here to today's date YYYY-MM-DD
    lastUpdateAt: new Date("2022-07-01T00:00:00.000Z"), // UPDATE OR REMOVE. Edit the date here to last update date YYYY-MM-DD
  },
  // UPDATE. Sismo Connect request, see "Cheatsheet: Build Your Sismo Connect Request"
  sismoConnectRequest: {
    appId: "{{ auto-fill }}", // NO UPDATE. Sismo Connect appId is automatically created based on your app metadata
    authRequests: [{ authType: AuthType.VAULT }], // UPDATE OR REMOVE. Select auth
    claimRequests: [{ groupId: "0xc90878eaa974c31bc62c52ad86121765" }], // UPDATE OR REMOVE. Select group
  },
  // UPDATE. Config for zkForm
  templateConfig: {
    owner: "{{ evm address }}", // UPDATE OR REMOVE. Evm address owner of the contract. If empty, Sismo is owner by default. Owner will have rights to update NFT metadata and expiry date.
    isTransferable: true, // UPDATE. Make the NFT transferable or not
    nftMetadata: {
      name: "Sismo Early Community NFT", // UPDATE. Name for your NFT
      description: "Claimable by the early community of Sismo, this NFT is a small gift to everyone that helped us to build Sismo before July 11 2023.", // UPDATE. Description for your NFT
      image: "nft_sismo_early_community_1000x1000.png", // UPDATE. Image for your NFT, to be placed in the images folder
      symbol: "SEarlyNFT", // UPDATE. Symbol for your NFT
    },
    chains: [
      {
        contractAddress: "{{ auto-fill }}", // The contract address will be automatically created based on your chain name
        name: "gnosis", // UPDATE. Your chain name: "gnosis", "mainnet", "arbitrum", "optimism", "polygon", “mumbai”, “arbitrum-goerli”, “goerli”, “optimism-goerli”
        relayerEnabled: true, // UPDATE. Relayer enabled or not to pay fees for users and ensure full privacy-preserving claiming, set to false by default.
      },
    ],
    step1CtaText: "Prove you are Eligible", // UPDATE OR REMOVE. 1st step text when users click on the app, "Sign in with Sismo" by default
    step2CtaText: "Claim your Sismo Early Community NFT", // UPDATE. 2nd step button text, on submitting the form
  },
  // UPDATE OR REMOVE. App dates
  options: {
    startDate: new Date("2023-05-12T18:00"), // UPDATE OR REMOVE. Your start date YYYY-MM-DD
    endDate: new Date("2024-05-19T18:00"), // UPDATE OR REMOVE. Your end date YYYY-MM-DD
  },
}, 

// UNTIL HERE

Parameters Explanation

  1. type: zkDrop template.
  1. metadata: app information.
    1. name: formal app name, should reflect the app's function or purpose.
    2. slug: URL-friendly "your-app-slug”, unique and descriptive, in lowercase and with hyphens. Part of the URL that refers to your specific app, eg: “apps.sismo.io/space-name/your-app-slug”.
    3. description: summary of what your app does or its purpose.
    4. image: name of your image, to be placed in images folder space-configs/images/.
    5. tags: keywords associated with your app used to classify it.
    6. createdAt: creation date for your app, eg: "2023-07-05T18:00" for a creation date on July 2023, 5 at 18:00.
    7. lastUpdateAt(optional): last update for your app, eg: "2023-07-05T18:00" for a creation date on July 2023, 5 at 18:00.
  1. sismoConnectRequest: Sismo Connect request made to users’ Data Vault. To learn how to customize this part, read
    📃
    Cheatsheet: Build Your Sismo Connect Request
  1. templateConfig: config specific to zkDrop.
    1. owner(optional): evm address owner of the contract. If empty, Sismo is owner by default. The owner will have the rights to update the NFT metadata and expiry date at anytime.
    2. isTransferable: NFT is transferable or not (= SoulBound Token).
    3. nftMetadata: config specific to NFT metadata.
      1. name: name of your NFT.
      2. description: description of your NFT.
      3. image: name of your image, to be placed in images folder space-configs/images/.
      4. symbol: symbol of your NFT.
    4. chains: config specific to chains on which the NFT is claimable.
      1. contractAddress: automatically created based on your chain name.
      2. name: chain name, "gnosis", "mainnet", "arbitrum", "optimism", "polygon", “mumbai”, “arbitrum-goerli”, “goerli”, “optimism-goerli”.
      3. relayerEnabled: relayer enabled or not to pay fees for users and ensure full privacy-preserving claiming, set to false by default.
    5. step1CtaText(optional): call to action. Displayed when users click on the app, before being redirected to their Data Vault to generate a proof.
    6. step2CtaText: call to action. Displayed after users return from their Data Vault with a valid proof.
    7. appDescription(optional): brief description of what to expect from your app.
  2. options(optional): dates of your app.
    1. startDate(optional): start date YYYY-MM-DD, eg: "2023-07-05T18:00" for July 2023, 5 at 18:00.
    2. endDate(optional): end date YYYY-MM-DD, eg: "2024-07-05T18:00" for July 2024, 5 at 18:00.

🙇
Contact us if you need help creating your Pull Request: 👉  Telegram | Discord | App Request form