Links

$ZKP FAQ

Frequently Asked Questions about Panther's $ZKP token

Table of Contents

General

Tokenomics

Launch and Vesting

Technical issues

Others

What is $ZKP used for?

$ZKP is a utility and governance token. It is used to participate in incentivized voting on DAO governance matters such as grants, new Panther Improvement Proposals, and protocol fees. In the protocol itself, $ZKP can:
  • Be privately staked to earn rewards for adding tokens to Pools and increasing the anonymity set.
  • Be earned by relayers as they pay for fees privately on behalf of users, furthering anonymity.
  • Be staked by token holders to secure the interchain bridges in an AMM model.
  • Be optionally used by users to pay for services on the platform at a discounted rate, such as:
    1. 1.
      To pay for mint and burn fees associated with zAssets.
    2. 2.
      To pay transaction fees for sending zAssets.
    3. 3.
      To pay Panther Reveal fees;
    4. 4.
      To pay for DEX trades.
  • Be used by the DAO to pay for services provided to the protocol such as:
    1. 1.
      To pay incentive fees to privacy stakers and transactors;
    2. 2.
      To pay relayer service fees;
    3. 3.
      To pay DEX stakers securing vaults;
    4. 4.
      To pay DEX liquidity providers (LPs);
    5. 5.
      To pay voting stakers.

Can $ZKP holders vote on proposals using a fair and weighted voting system? What aspects of the project can $ZKP holders modify and improve?

One of the unique features that will be observed in the later stages of the Panther DAO is the eventual inclusion of quadratic voting, a mechanism to infuse systems with fairness by reducing the voting power of whales. Voting proposals cover aspects such as setting charges, privacy thresholds, new improvements to protocol — the list is long and always growing.

What's the difference between zAssets and $ZKP?

The interesting thing with zAssets is that they can be used across the entire DeFi ecosystem. They are composable, can be used as collateral in other DeFi protocols, can act as a private means of payment, or used in private dark pools for securities, as a few examples. The idea isn’t to build every imaginable use case, but to facilitate use cases we haven’t yet thought of by creating a comprehensive solution for privacy.
Panther Token, on the other hand ($ZKP) it is a finite supply, privacy-preserving token. It is used to pay for fees within the Panther ecosystem, and it represents a right to participate in Panther governance, voting on Panther Improvement Proposals (PIPs), as well as other functions detailed above.

How are $ZKP tokenomics designed?

All key information about the tokenomics of $ZKP is disclosed in the image below.
$ZKP Tokenomics
You can have a look at $ZKP Tokenomics for more in-depth details.

What is $ZKP's maximum / circulating / initial supply?

$ZKP has a finite maximum (i.e. fully diluted) supply of 1 billion tokens which is expected to be reached over a 12 years time frame.
The current circulating supply can be viewed on the token's page on Etherscan (look for "Max Total Supply"), and can also be obtained by invoking the totalSupply() method on the token's smart contract. This figure includes all $ZKP circulating on Polygon, since the tokens can only be minted on Ethereum, and must be bridged to other networks before they can be used there. The circulating supply on Polygon can be seen by checking the $ZKP balance of the Polygon (Matic) PoS bridge contract.
The initial supply was approximately 11% of the total supply.

Where can I track $ZKP price, market cap etc.?

Here are some of the places you can obtain the latest and historical data on $ZKP:

What is the contract address of the $ZKP ERC-20 token?

Network
Contract address
Ethereum Mainnet
Polygon Mainnet

What are the vesting schedules for unlocking tokens?

There are multiple vesting pools, each with an independent schedule. See our page on $ZKP Tokenomics for an explanation. For the raw technical smart contract data which configured these vesting pools via a private decentralized vote, please see section 1.3 of LaunchDAO proposal #3.

How does vesting work?

Vesting (a.k.a. unlocking) happens linearly, per block. However, this does not mean that participants entitled to vesting receive new tokens every block; once unlocked, vested tokens still need to be released to recipients.
Releasing vested tokens from any given vesting pool is done by the owner of that vesting pool. In some cases, such as private sale pools, the owner is another smart contract, in which case that other smart contract needs to be called in order to release the tokens to their final recipient. (See Claiming $ZKP (for Private and Seed buyers) for more information on how to do this.) For public sale pools, release is handled by the Panther team on behalf of the community.
All the technical details were listed in LaunchDAO proposal #3 prior to TGE, approved by the community via private voting with an overwhelming majority, and executed via a decentralized mechanism.

How can I change my address for claiming vested $ZKP?

The address you selected for claiming $ZKP from our private sales is not set in stone. You can always change it by writing a transaction directly into the contract. You will have to do this using the Ethereum wallet on which you're currently receiving $ZKP and will incur transaction fees.
Note: This will only work to change your claiming address from one in the Ethereum Mainnet to another one in the same network.
To change your claiming address, please follow the instructions below to interact with the contract using Etherscan:
1. Prepare the wallet that you use to claim $ZKP. It is strongly recommended to have MetaMask wallet installed as a tool to manage funds and interact with contracts.
2. Check that the wallet address is correct and listed in one of the private sale lists under section 1.3 of the TGE launch proposal. One way of doing this is to use your browser's "Find in page" function to search for your address; however please note that there appears to be a strange bug either with GitBook or Chrome/Chromium/Brave which prevents this find function from working with some addresses. If you can't find your address this way, try looking for it manually, bearing in mind that each list is sorted alphanumerically. So it should not be too much effort to look for. If the address is not on one of the lists, you will not be able to claim tokens to it or reallocate tokens from it. If you were expecting it to be on one of these lists and it is not, please double-check that you got the right address registered with Tokensoft, and then email [email protected] for support.
4. Into the search field, input the address of the contract you need to trigger. This depends on the round you have participated in. After inputting, press Enter. The addresses are:
5. Check your current stake’s information via stakes(<account>) using the Read Contract tab. The number will be displayed multiplied by 10¹⁸ (in quintillionths/gwei format). To see your balance in units of $ZKP, click the number and look at the “Ether (1)” row.
6. Navigate to the Write Contract tab and connect the wallet you have been using to receive your tokens.
7. In the splitStake function, there are two parameters:
  • newHolder - the wallet address into which you’re going to split your allocated tokens.
  • newAmount - The $ZKP token amount out of the original allocation (not out of remaining unclaimed tokens) which you want to reallocate to the newHolder wallet.
    • Important: newAmount must be less than or equal to the total token amount originally allocated to your current wallet (including already claimed tokens). If it’s less than the full allocation, newAmount will be reallocated to newHolder, and the remainder will continue vesting to the current wallet.
8. After you enter the new parameters, click the Write button in the splitStake function. We advise you to check and re-check that the information that you entered is correct.
9. A MetaMask window will pop up prompting you to confirm the transaction. In the window's lower half, you will be able to see an estimate of the gas costs for the transaction. If you're satisfied with the gas costs and certain that the parameters you wrote are correct, click the "Confirm" button to continue.
10. After doing this, you’ll start receiving your allocation of $ZKP into the wallet you entered.

Why did you launch $ZKP on mainnet where it's so expensive?

While Panther’s vision is to be a multi-chain protocol, we believe that the Ethereum Layer-1 Mainnet is currently unbeatable in terms of economic security, credible neutrality, and decentralization. We consider these factors crucial since they are aligned with the governance and long-term goals of Panther Protocol. Therefore, it made sense to deploy $ZKP on Ethereum Mainnet. Unfortunately, the Panther Protocol team can't do anything to change the fee scheme the Ethereum Mainnet uses.
However, there are several techniques we are using to make interactions with Panther cost-efficient for users. These include (but are not limited to) the following:
  • Where possible, $ZKP and other Panther transactions will be supported on side chains (such as Polygon's PoS chain) and rollups.
  • The Panther smart contracts and ZKP circuits are already highly optimized to minimize gas fees.
  • EIP-2612 is used as a replacement for the standard ERC-20 approve mechanism, to avoid the need for an extra transaction allowing Panther smart contracts to handle users' $ZKP tokens.

Why are Huobi and Bittrex the only CEXs supporting $ZKP so far?

We put all of our initial efforts into landing Tier-1 exchanges first, and these two exchanges fit the description perfectly.
Not all centralized exchanges are equipped to deal with listing a token that had a decentralized launch as Panther did with LaunchDAO. Because of this, we are grateful to both the Huobi and the Bittrex teams for their understanding and flexibility.
Panther is hard at work in preparing more exchange listings and these will be announced in due time.

When will $ZKP be listed in Uniswap and other Decentralized Exchanges?

The only decentralized exchange where $ZKP is currently available is Uniswap Polygon, through the ZKP/USDT pair.
Last updated 13/05/2022.

How can I set my MetaMask/MyCrypto wallet with a cold storage wallet?

Amongst the multiple ways to store a private key, a hardware wallet is widely regarded as one of the safest.
If you wish to store your private key on a hardware wallet while remaining able to interact with the blockchain and dApps straightforwardly, it’s possible to connect your hardware wallet with software wallets (such as the above) without transferring your private keys.
Note that your hardware wallet must sign any transaction you initiate with your software wallet if you do this. This means that interacting with the blockchain requires your hardware wallet to be connected to the computer. It will also require you to input your security PIN and/or passphrase for each transaction. With the assumption that your recovery phrase is uncompromised, it’s safe to believe that your funds are secured while the hardware wallet is unplugged.
Below we’ve prepared an explanation of how to store your $ZKP in a hardware wallet, connect your hardware wallet to MetaMask or MyCrypto, and the process to approve transactions through your Ledger or Trezor hardware wallet.
Sending your $ZKP to a hardware wallet
  1. 1.
    Purchase a hardware wallet from a reputable hardware wallet manufacturer. The current leaders of this market segment are Trezor and Ledger. Acquiring a wallet from one of these manufacturers will result in greater compatibility with the broadest range of applications.
  2. 2.
    Set up your hardware wallet following the manufacturer’s instructions.
  3. 3.
    Obtain your wallet’s public address for Ethereum or Polygon (depending on which network you want to withdraw $ZKP through).
  4. 4.
    Initiate a withdrawal with your hardware wallet’s address as the destination.
  5. 5.
    If your $ZKP is currently stored on a software wallet:
    • You will need either $ETH (for the Ethereum Mainnet) or $MATIC (for the Polygon network) to pay for gas fees depending on the network you’re using. Note that to transfer $ZKP from Ethereum to Polygon, you must first use the Polygon Bridge.
  6. 6.
    If your $ZKP is on a centralized exchange (CEX) account:
    • Go to the withdrawal page on your exchange account.
    • Select $ZKP as the asset to withdraw.
    • Input your hardware wallet’s public address.
    • Select the network to which you want to withdraw $ZKP (Ethereum or Polygon) through. Note that some exchanges might only support one of these.
    • Each CEX has its way of collecting withdrawal fees. You will be prompted by yours to pay a fee, which you must accept if you want to withdraw.
    • Input the amount of $ZKP you intend to withdraw.
  7. 7.
    Confirm that you’ve received your funds in your hardware wallet. You can either do so in your wallet’s application or Etherscan/PolygonScan.

Connecting your hardware wallet to MetaMask

  1. 1.
    If you don’t have Metamask installed yet, install it from MetaMask’s official website. This process will require you to create a new address or import an existing one within the extension.
  2. 2.
    On MetaMask’s home screen, click on the colored circle icon at the right of “Ethereum Mainnet.”
  3. 3.
    Click “Connect Hardware Wallet.”
  4. 4.
    Plug your hardware wallet into a USB port on your computer.
  5. 5.
    Select your hardware wallet brand and click “Continue.”
    • If you selected Trezor:
      • On MetaMask, click on “Continue”.
      • A TrezorConnect prompt will pop up in another tab. Go to this new tab.
      • Click on “Export” to export your public keys. Insert your PIN to confirm. You may have to enter your passphrase if you have this feature enabled.
      • Select which wallet(s) on your hardware wallet you want to connect with MetaMask. Click “Unlock” when you’re ready to finish.
    • If you selected Ledger:
      • You might need to enable contract data if you never sent ERC-20 tokens or interacted with smart contracts through your Ledger.
        • Connect your Ledger and unlock it.
        • Open the Ethereum application.
        • Navigate to Settings using the right button in your device. Press both buttons in your device to enter.
        • Navigate to the Contract data settings. Press both buttons in your device to enable transactions that contain contract data. You should see “Allowed” on the device’s screen.
      • Open the Ethereum application in your Ledger.
      • On MetaMask, click on “Continue”.
      • A pop-up will appear in your browser for you to select your Ledger device. If it does not show up on the list, make sure it is plugged into the computer. Select it and click “Connect.”
      • The hardware wallet might ask you to input your pin and/or passphrase. Input your pin and/or passphrase to proceed.
      • Select which wallet(s) on your hardware wallet you want to connect with MetaMask. Click “Unlock” when you’re ready to finish.
  6. 6.
    The addresses you selected in your hardware wallet are now successfully connected to MetaMask.

Connecting your hardware wallet to MyCrypto

  1. 1.
    Access MyCrypto’s web app through this link. It will take you directly to the “Add Account” page.
  2. 2.
    Below “How would you like to access your assets?”, click on the brand of your hardware wallet.
  3. 3.
    Select the network you want to use for this wallet. $ZKP is currently available on Ethereum and Polygon.
  4. 4.
    Now, plug your hardware wallet into a USB port on your computer.
  5. 5.
    If you selected Trezor:
    • On MyCrypto, click the “Connect to TREZOR” button.
    • A TrezorConnect prompt will pop up in another tab. Go to this new tab.
    • Click on “Export” to export your public keys. Insert your PIN to confirm. You may have to enter your passphrase if you have this feature enabled.
    • Select which addresses you want to export and confirm.
  6. 6.
    If you selected Ledger:
    • You might need to enable contract data if you’ve never sent ERC-20 tokens or interacted with smart contracts through your Ledger.
      • Connect your Ledger and unlock it.
      • Open the Ethereum application in your Ledger.
      • Navigate to Settings using the right button in your device. Press both buttons in your device to enter.
      • Navigate to the Contract data settings. Press both buttons in your device to enable transactions that contain contract data. You should see “Allowed” on the device’s screen.
    • Open the Ethereum application in your Ledger.
    • On MyCrypto, click on “Connect to your Ledger Wallet.”
    • A pop-up will appear in your browser for you to select your Ledger device. If it does not show up on the list, make sure it is plugged into the computer. Select it and click “Connect.”
    • The hardware wallet might ask you to input your pin and/or passphrase. Input your pin and/or passphrase to proceed.
    • Select which addresses you want to export and confirm.
  7. 7.
    The addresses you selected in your hardware wallet are now successfully connected to MyCrypto.

Why can't I see $ZKP in my MetaMask?

If you are a private or seed buyer, first see Claiming $ZKP (for Private and Seed buyers).
To ensure you can see your $ZKP balance in MetaMask, please follow these instructions once for each account and network:
If you are a public sale buyer and don't see the expected amount of $ZKP in the wallet you registered with Tokensoft, then please contact [email protected] for support. However please note that at this time we believe all $ZKP has been correctly distributed to public sale buyers.

How do I bridge my tokens from the Ethereum Mainnet to Polygon?

Bridging your $ZKP from the Ethereum Mainnet into the Polygon network is as simple as bridging any other ERC-20 token. To do so, all you need to do is:
  1. 1.
    Go to a Polygon bridge, such as the Polygon Web Wallet Bridge dApp. We recommend this bridge as it features a simple user interface.
  2. 2.
    Connect your wallet (Metamask, WalletConnect, Coinbase Wallet, etc) holding $ZKP. Remember this wallet should also hold $ETH to pay for transaction fees.
  3. 3.
    You'll be asked to sign a message. This signature won't cost any fees. Click “Sign” to proceed. You should be redirected to the Polygon Bridge interface. If not, click “Bridge” on the left menu bar.
  4. 4.
    Go to the Deposit tab. Select the appropriate token and then enter the number of tokens you want to bridge. Press the “Transfer” button to initiate the bridging process. You will see a warning about delegating MATIC tokens, which is not relevant in this situation.
  5. 5.
    Press the “Continue” button to proceed with the transfer. You will see an estimate of the transaction fees. Decide whether you want to proceed.
  6. 6.
    Accept the transaction on your wallet’s pop-up message. After your transaction is confirmed, you will see your $ZKP on your Polygon wallet.
    1. 1.
      If you do not see your wallet’s compatibility with Polygon, see how to add Polygon to your Metamask here.
    2. 2.
      It's possible that you won't immediately be able to see your Polygon $ZKP in MetaMask. If this is the case, add $ZKP as a custom token for Polygon in MetaMask. $ZKP's Polygon contract address is 0x9A06Db14D639796B25A6ceC6A1bf614fd98815EC.

I have a question about rewards.

Please see the Staking FAQ for info on staking rewards, and the Rewards FAQ for info on other rewards.