FAQ - Frequently Asked Questions

Wallet crashes or has crashed and now won’t launch. Fails every time. What do I do?

An abnormal exit of the wallet could result in a blockchain inconsistency from that point onwards. This can happen due to a PC reboot without first closing the wallet gracefully or if the existing locally downloaded blockchain somehow got corrupt (due to environmental issues etc) and cause the wallet to crash.


If experiencing wallet launch failures with the latest wallet, it is suggested to first try using the -forcestart startup flag to see if it will recover from a failed start.
In Windows OS, you need to edit the shortcut properties and append it to the end of the "Target" field, so that the end reads:
pivx-qt.exe" -forcestart


If the wallet startup issue is not fixed by upgrading to v3.1.0.2 or higher and/or the -forcestart flag, the user should resync the blockchain as per steps below.


As you are not deleting the conf and wallet.dat file, this procedure will not affect your coins nor your masternodes.


Easy Method

GUI Wallet users: 

"Tools > Wallet Repair > Delete Local Blockchain Folders (-resync)" to initiate the full re-sync.

(unless you have a known good backup of the blockchain that you know how to restore)


Command line users:

You can initiate the full resync during daemon startup with the command switch `pivxd -resync`


Advanced Method

1) Navigate to your PIVX data directory and delete the files pointed in red arrow in the following image:


You must also delete the folders called: zerocoin & sporks if you are following this guide


2) Now re-launch the wallet and wait for it to Sync. This can take few hours on slower internet connection.

**Please note that during the sync your balance will show as 0 until near the end, this is normal and nothing is lost**



How do I make a backup of the blockchain so I can avoid a full resync if something goes wrong?


Now, if you face a corrupt blockchain again, just delete the 4 folders blocks, chainstate, sporks, & zerocoin only, copy over the good backup blocks, chainstate, sporks, & zerocoin folders, then restart the wallet and you will only have to sync transactions since the backup, not the beginning of PIVX.


When will my MN get the next payment, and is masternode list related?

(adapted from https://github.com/PIVX-Project/PIVX/issues/216#issuecomment-316534805 by Mrs-X)

The ranking from masternode list rank (or masternodelist for newer versions of PIVX), even when it might sound so, is NOT related to masternode payments, it's used to build consensus for SwiftTX and other things. Naming it rank was, umh, unlucky :-)

The decision to reward a masternode is (besides some other technical things) based on:

  • It must be enabled (have the 10000 PIV collateral, valid protocol version, and some other things)
  • The 10000 PIV collateral must be at least as many blocks (plus one) old as masternodes exist (e.g. would be 2172 right now)
  • It must be amongst the 10% oldest nodes (by last received payment)

If those prerequisites are all fulfilled the score for each of those 10% masternodes is computed.

The score is (basically) the hash (!) from some data from the blockchain and some properties of your masternode, so each node comes to the same result. The masternode with the highest score gets the payment.

But, and this is the important part: the hash is (more or less) a random number, so you never know which masternode will win beforehand.

And, if you have really bad luck, your masternode might stay in that 10% list for quite some time until it gets paid, I've had cases where I was paid after 8000 blocks instead of about 2000 blocks. But as long as you're masternode is enabled it stays in that 10% of nodes. In the long run, good and bad luck equals out and everyone gets the same number of rewards, so no need to worry.

My wallet seems to have become stuck syncing and says remains at X hours left. It’s been many hours and status hasn't changed. What do I do?

This may happen due to connecting to some bad peers or your chain has been corrupted somehow.

First, try simply restarting the wallet then after it's synced up, check if you are on the right chain via article below:

If you are on the right chain but isn't syncing the newer blocks, please follow solution steps outlined in below article to resync cleanly off the network with a new peers.dat.

Also, ensure that your pivx.conf doesn't have any connect= or addnodes= lines unless you know why they are there.
(pivx.conf is located in the folders listed in below KB article)

Where are my wallet.dat, blockchain and configuration(.conf) files located?

Your PIVX data directory stores your blockchain, configuration, wallet, and masternode data. By default, they are located in the following locations for each OS type:


Go to Start > Run > %APPDATA%\PIVX
(or just enter the above path in explorer)
or C:\Users\%username%\AppData\Roaming\PIVX
(Hidden folder "AppData" - How to view hidden folders on Windows)


Open a finder window, then select the "Go" dropdown menu. In this menu please press the "Go to Folder..." option. In the window that opens type: ~/Library/Application Support/PIVX and press enter. If the folder cannot be found please repeat the steps and enter: ~/.pivx

~/Library/Application\ Support/PIVX
(/Users/YourUserName/Library/Application\ Support/PIVX)
(How to view the hidden folder on OSX)

MacOS High Sierra Only
(How to view the hidden folder on OSX)

(Hidden folder ".pivx" - control+h to display in the GUI, ls -a to display in terminal)

The Android wallet backs up your wallet file to the Download folder. Android does not use the typical data directory because it is an SPV wallet relying on a full node running PIVX Core. It does not host the blockchain or need a conf file for advanced functions like staking and masternode operation.

How do I make a backup of the blockchain so I can avoid a full resync if something goes wrong?

After a successful full resync, and if your wallet it working fine, you can make a backup of the good blockchain by following these steps below:

1) Close your wallet gracefully (File -> Exit or ./pivx-cli stop)

2) Go to your blockchain data directory. (default directories listed in this article)

3) Copy the 4 folders (blocks, chainstate, sporks, & zerocoin) elsewhere. (Some other directory or drive)

4) You can now start the wallet again.

Now, if you face a corrupt blockchain issue again (as in Question 1 above), you can close the wallet then delete the 2 folders (chainstate & blocks), copy over the good backup blocks & chainstate folders to it, then restart the wallet.

My staking or masternode reward is much higher than expected. And/or my recent transactions aren't showing up in block explorer but my wallet is fully synced and seems up to date.

There is a possibility that your wallet may be not synced up with the network properly or that your wallet may have somehow forked and isn't connected to the main network. Just to make sure that you are on the right block and is on the right network, please perform the following check:

  1. From your wallet's debug console (Tools -> Debug console or just use ./pivx-cli getinfo in linux), type:
  2. Note the block number. ("blocks":) That is the block number that your wallet is currently synced up to.
  3. Now type:
    getblockhash xxxxxx (where xxxxxx is the block number you got from getinfo output above)
  4. Compare the hash to the block explorer's block hash for that same block via the following URL:
    http://www.presstab.pw/phpexplorer/PIVX/block.php19 (search your block number that you used in step 2 & 3)
  5. If the hash is different, you are not on the right chain. Update to the latest wallet (if not already on it), restart the wallet, wait until wallet is synced, and follow steps 1 through 4 again.
  6. If you are still not matching block:hash of the presstab block explorer, then perform a reindex.
    Qt Wallet = Tools -> Wallet Repair -> Rebuild Index (this can take many minutes to complete)
    Linux = Close wallet. Start the wallet with `-reindex=1` (e.g. `./pivxd -reindex=1`)
  7. If that still fails, follow the steps outlined in this article to re-sync back fresh (but skip the -forcestart part): KB article
  8. If the hash matched up between your wallet and the block explorer, then your wallet is on the right network.
  9. If your recipient still hasn't received your coins, you need to ensure that the recipient is also on the right network and synced up to the latest block with no delays.

If you see lots of conflicted transactions, follow the steps below in this KB article to clear them. (conflicted transactions means they aren't/weren't valid transactions)

I'm seeing a lot of conflicted and/or orphan transactions as a result of staking but not winning those blocks. Is there a way to clean them up and not show them? I don't like seeing them.

Yes, there is a simple way and it doesn't (or shouldn't) affect your coin balance.

1) Backup your wallet if you haven't done so recently. (this is just a precaution and not mandatory)

2) In your Qt wallet, go to Tools -> Wallet Repair

3) Run the Recover Transactions 1 (zapwallettxes=1)

It will now go through your wallet and scrub out the orphan transaction. Should take few minutes.

How can I control which address my coins are sent from?

Open the PIVX wallet
Click the "Settings" option on the toolbar
Then select "Options"
Click the "Wallet" tab on the top
Check the "Coin Control" checkbox
Close the Options window
Click the "Send" tab and control which addresses to send from with the "Inputs..." button.

My PIVX wallet is missing some of my PIV or has no balance at all!, Easy steps to solve this

As a safety precaution always go to your PIVX data directory and backup your wallet.dat, Preferably on an offline location such as a secure flashdrive. Avoid online storage.

Now open your PIVX wallet, Select the TOOLS tab, select Wallet Repair in the drop down menu and lastly Select RESCAN BLOCKCHAIN FILES as seen in the image below

Your wallet should begin the rescan on the blockchain files for your missing transactions and your funds should show as normal. In some cases you may need to delete the old blockchain and completely resync everything. So if this tutorial doesn't work then please follow the blockchain deleting steps as mentioned in this one https://pivx.freshdesk.com/solution/articles/30000004661-wallet-crashes-or-has-crashed-and-now-won-t-launch-fails-every-time-what-do-i-do-


  • Immature (PIV) - The maturity of coins refers to their staking eligibility, which is controlled by their amount of confirmations. PIV are considered mature once they have 101 confirmations, which takes about 101 minutes.
  • Immature (zPIV) - A new zPIV mint that has not yet been followed by 2 other mints of that denomination. (Reduced from 3 to 2 on v3.0.5) (source)
  • Unconfirmed (PIV) - A PIV transaction that has not yet been included in a block
  • Unconfirmed (zPIV) - A new zPIV mint that has not seen 20 confirmations
  • Orphan block - A block that is no longer part of the active chain. This can happen most often after fixing your chain or if you stake a block successfully, but someone else staked one slightly sooner.
  • Fork - In general terms, a fork is a divergence like a fork in a road. The most common use of this term in cryptocurrency is for code or chain forks. In both situations, the data leading up to the fork will match, but after the fork it will differ between the forks.
  • Chain fork - A divergence of a blockchain, usually due to expanding or constricting the rules about what kind of blocks are valid
  • Code fork - A copy of existing code to be developed toward different goals
  • Wrong chain - The incorrect blockchain, usually by not updating your software with a mandatory version in time
  • HD Wallet - Hierarchical Deterministic Wallet - A wallet that can use a seed mnemonic phrase to generate addresses and keys, rather than loading them from a wallet.dat file.
  • SPV wallet - Simplified Payment Verification - A wallet that relies on a full node elsewhere to send and receive blockchain data. The mobile PIVX wallets are examples of SPV wallets
  • GUI - Graphical User Interface
  • CLI - Command Line Interface
  • Zerocoin - A cryptographic blockchain privacy protocol that uses ZK Proofs to break linkage and hide balances. https://pivx.org/zpiv/
  • Zerocash - Zerocash is a different method of using ZK proofs for privacy, used in ZCash.
  • ZK Proofs - Zero Knowledge Proofs - Technology that allows you to prove you know a secret without disclosing the information. Used in the zerocoin and zerocash protocols as part of the privacy mechanism
  • zk-SNARKS - Technology used in the zerocash protocol used by ZCash and soon to be adopted by Ethereum
  • zk-STARKS - A theoretical improvement to zerocash with no trusted setup, smaller proofs, and lower resource requirements
  • Scaled - A scaled transaction or balance indicates that it is on an old wallet version and the wallet has not been upgraded yet

Nothing happens when I click Open Wallet Config File on my Mac


Within PIVX Core, clicking Open Wallet Config File does not do anything


MacOS has no default program association with the .conf file type. PIVX runs without admin rights for security reasons and so the wallet has to rely on the operating system to know which program to use.


Users can make the association manually by opening up the file from the Finder the first time and ticking the checkbox that sets it to “always use this program…”. To find the .conf file in Finder, follow the OSX instructions here: Where is my PIVX data directory?

Staking FAQ

  • Does staking require 24/7 uptime?
    No, but you will only be eligible for staking rewards while staking is active. If your computer is asleep, off, or offline you would not be eligible.
  • Does my amount of time staking or coin age affect my chances of winning rewards?
    No, PIVX proof of stake does not give more weight to older coins or clients with longer consecutive uptime. The only weight you have in staking is your (mature) PIV balance. Think of the block reward each minute like a lottery and each mature PIV is a ticket that increases your chances of winning
  • Can I optimize my inputs/UTXOs for better staking chances?
    This is debatable, but some people do swear by it. If you look at Stake Weight Spent on presstab's block explorer homepage, you will see that the network seems to choose UTXO of a certain size more often (2700 at time of writing). However, this could also be due to stakers optimizing their UTXOs to this size and creating a self-fulfilling prophecy situation.
  • Can I stake with zPIV?
    Yes, staking zPIV will reward a stake with 3 zPIV while staking with PIV will reward a stake with 2 PIV.
  • Why do I need to unlock my wallet for staking?
    An option to "unlock for staking only" has been included for security so normal transactions can't be sent during this type of unlock. An unlock is required because if you win the block reward, your PIVX client will send out the winning UTXO and it will come back with the reward included. So if your 2,010 PIV UTXO wins and the reward is currently 2.29, your client will send 2,010 PIV and get back 2,012.29 PIV. Here is an example on the block explorer (Output 2 is the masternode's reward). Please note, this is considered a transaction and the 3,004.25 PIV in that new input will be considered immature and ineligible for staking for 101 confirmations (about 101 minutes). After that time they will automatically be added back to your staking balance.
  • Can I stake on a Raspberry Pi?
    Yes, the Raspberry pi 3 can use the 32bit ARM build for Linux. The GUI usage matches other systems and there is a command line guide here. The Raspberry pi 2 Model B has been reported to work as well
    Its recommended to set a 1024Mb swap file at your Raspberry Pi, because the wallet requires more than 1GB of RAM at peaks (esp. when staking). Here are some instructions how to set the swap file. Stake without a swap file on a Raspberry Pi could corrupt your local copy of the Blockchain.

    Do I need to add "staking=1" to my configuration file?
    No, the only conditions for staking are listed here

Mandatory Upgrade and Hard Fork FAQ

What is a mandatory upgrade?

A mandatory upgrade is when you are required to upgrade your software to a minimum version in order to stay on the PIVX network and correct chain. This is usually due to a software upgrade that will cause a hard fork, but sometimes is due to other factors like a software security concern.

What is a hard fork?

A hard fork is an upgrade to PIVX that is not backwards compatible and would cause the blockchain to diverge. For example, PIVX Core v3.0 will allow usage of the zerocoin protocol, but clients on the old v2.3 software would not recognize these new blocks and reject them. More information can be found here.

What happens if I don't upgrade before the deadline?

If you are running an old version of PIVX during or after the fork, you will start recording blocks on the wrong chain. You will not be able to send PIV or otherwise interact with the PIVX network and correct blockchain.

How do I get back on the right chain?

Remediation for this problem involves upgrading your software, clearing your local cache, starting PIVX Core, and resyncing the chain. Follow these instructions starting at step 1 after the force start part.

What happens if I tried to send or receive PIV while I was on the wrong chain?

Don't worry, your PIV are not lost if you have your wallet.dat file. If you sent PIV while on the wrong chain, your address still has those PIV on the correct chain. If someone sent you PIV, your address on the correct chain has those PIV, your client just can't see them yet (assuming the sender is on the correct chain). To confirm PIV did or did not send on the correct chain, check the destination address on the block explorer.

What happens to the other chain?

The other chain is only populated by clients on the old software, so it does not have enough users or nodes to survive and quickly stops working. A second chain only survives if the upgrade is highly contentious and the old software has significant support from users, miners/stakers, nodes, exchanges, and merchants. Popular examples are bitcoin cash forking from bitcoin and ethereum forking from ethereum classic.

Why do some of my zPIV not appear?

Modified on: Mon, 16 Jul, 2018 at 1:29 PM

Backing up and Restoring V2 zPIV from a Deterministic Seed

Please note that zPiv take at least 20 confirmations to complete minting, so if the confirms are around/near there, please wait for more confirmations. Also, zPiv mintings require further mintings of the same denomination in the pool to complete, so you can find if these are still awaiting more mintings of the same denomination under Privacy -> zPiv control -> drop down arrows to the left, and check the rightmost column.

Please be aware zPiv v1 signatures are stored in the wallet.dat used at the time of minting, so if you have loaded an older/different backup since then, or used this wallet on more than one machine, you will want to check your other wallet.dat backups from around the time of minting. You may need to run the below steps on all relevant wallet.dats.

If you are missing zPiv, please try the following steps:

First, go to tools -> debug console and enter the following commands in this order:

resetmintzerocoin true

The last command may lock up the client briefly.

Then, go to the Privacy tab and use the Reset and then ReScan buttons (this last one will take some time)

After the rescan is complete, missing zPiv should appear within a few minutes.

If the above information does not assist, check out this video guide by presstab:


If you are missing v2 zPIV, please try the following steps:

First, fully unlock you wallet, then go to tools -> debug console and enter the following command:

searchdzpiv 0 1000 2

This command may take some time to complete.

How can I export / import zPIV?

If you have zPIV on separate wallet.dat files and want to combine them, you can use the following steps:

  1. Open the wallet with the wallet.dat you want to export zPiv from and go to tools -> debug console and enter the command
    exportzerocoins true
  2. Copy the resulting output of this command, everything from [ to ]
    Please note: NEVER share the full output of this command with others as it contains the signatures needed to load and use your zPIV!
  3. Close the wallet and replace the wallet.dat with the one you want to use (do not delete the wallet.dat, simply move or rename it)
  4. Open the wallet with the preferred wallet.dat and go to tools -> debug console and enter the command
    importzerocoins '
    (Note the opening ') and then paste the output from the export command, followed by a final '

Again, the input following importzerocoins should be wrapped in apostrophes (') so it should look like:
importzerocoins '[ multiple lines of data ]'

My wallet is still autominting even though I added the line to disable it in my config file


The wallet continues to automint even after adding "enablezeromint=0" to the config file


The most common cause is that the config file line was added while the wallet was running and it has not yet been restarted. Failing that, the same wallet may be running somewhere else where automint is not disabled


Restart the wallet and confirm that there are no other clients running your wallet. Please also note that running the same wallet on two computers at the same time can lead to file corruption and is not recommended


A transaction does not appear in the destination wallet

This can happen if either the sender or receiver is forked, not synced, or otherwise not aware of the transaction, but either way there is no need to worry. If the sender had a problem with their wallet, they will still have that money when the problem is resolved. If the recipient has a problem with their wallet, they have the money and they just can't see it until the problem is resolved.

To determine where the problem is, check if your transaction appears on the block explorer by looking up the transaction ID or the destination address. If the transaction appears, the problem is with the recipient wallet. If it doesn't, the sender has a problem they need to fix.

The wallet with the issue can find out if they are forked or unsynced and fix it by following this article: https://pivx.freshdesk.com/support/solutions/articles/30000004667-my-staking-or-masternode-reward-is-much-higher-than-expected-and-or-my-recent-transactions-aren-t-sh

How can I setup alerts or other actions when I win a staking or masternode reward?

We get many questions about getting an email or text when a reward is won. This process may become easier when blockchain monitoring web services pop up, but for now there is a parameter that will help us accomplish this from the Core client. This command can be used as a startup switch or in your config file

Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)


For example, you could run a script:

-walletnotify=%userprofile%\scripts\email.ps1 %s

-walletnotify=/home/turtleflax/scripts/email.sh %s

These examples would launch a script and passes the transaction ID as a parameter to the script. The script could then do whatever you like, including logging to a file or sending an email. For email, you would need to set that up on your system independently. The following links may be useful for that:


If you would like to get a text message, you'll have to set up email and follow this guide: http://www.popularmechanics.com/culture/web/how-to/a3096/email-to-text-guide/

Automatic zPIV minting and zPIV backup requirements

What is the automint?

As of PIVX Core v3.0 your wallet will automatically mint about 10% of your balance to zPIV. If your wallet is encrypted, this will happen once you send a transaction or unlock the wallet (even for staking and anonymization only). You can configure the automint to any percentage 0 to 100% or disable it using the link at the bottom of this article.

Why does PIVX Core Wallet automint zPIV?

PIVX’s Zerocoin Protocol works by automatically “mixing” zPIV of the same denomination together, making zPIV transactions virtually impossible to trace. The PIVX Core Wallet automatically mints 10% of users’ unlocked PIVX balances into zPIV, which ensures there are enough zPIV denominations available to mix and make Zerocoin Protocol effective regardless of manual zPIV minting volume.

What are the backup requirements for zPIV?

Beginning with PIVX Core v3.1, PIVX uses an innovative system called dzPIV, which provides a one-time seed backup for your zPIV. Please follow this guide to backup your zPIV seed.

This means that you don't need to make a new backup after every zPIV mint, but periodic wallet.dat backups are still a good idea. It is still important to keep all of your wallet.dat files because your normal piv are still stored in there and the seed does not cover them.

Never delete any wallet.dat files.

How do I disable the automint?

Which wallet download do I need?

This page is here to help you choose your correct wallet download from the PIVX wallet download page.



32bit or 64bit
You will need the version that matches your operating system, although 64bit windows is generally backwards compatible with 32 bit apps. How to check your version of Windows.

exe or zip
The exe is the recommended download as this will install everything to standard locations and updating is easier. The zip download allows you to download the binaries in a more portable format, but please note that your data directory will still be saved to the C: drive unless you specify otherwise. If you use the zip version, please remember to update your shortcuts when you update the software.


dmg or tgz
This is similar to the exe or zip section above. The dmg will install PIVX Core in standard locations and update easily. The tgz is a portable set of binaries. If you use the tgz version, please remember to update your shortcuts when you update the software.

High Sierra
Changes in the High Sierra version of OSX require a special build of PIVX Core. If you have High Sierra you must use this download.


32bit or 64bit
You will need the version that matches your operating system. How to check your OS type on Linux.

tgz or arm
The ARM option is for low power processors like a raspberry pi. All others should use the standard tgz install. Please note the tgz is a portable set of binaries, so you when you need to run or update your PIVX Core software you'll need to know where you downloaded and unzipped it.


PIVX Mobile Wallet for Android
This is the official PIVX Android app. It is an HD and SPV wallet.

Coinomi is a 3rd party multicoin HD and SPV wallet that works based on a seed phrase and supports PIVX. It can also sweep wallets, which is useful for recovery or redemption of paper wallet balances.

Single Board Computers (SBCs)

The Raspberry Pi runs Linux and runs Raspbian, a 32bit operating system (even though the CPU is 64bit ARM). For this you will need the 32bit ARM download.

Other SBCs like the Odroid or banana pi are likely to use the linux ARM build but may be full 64bit

How Do I Open my Wallet Configuration file on a Mac?

MacOS has no default program association with the .conf file type; this prevent the PIVX Wallet application from opening the Wallet Configuration file (or pivx.conf) from the Tools dropdown menu.

To Navigate to the configuration file from the Desktop:

  1. Open a finder window,
  2. Select the "Go" dropdown menu.
  3. In this menu please press the "Go to Folder..." option.
  4. In the window that opens type: ~/Library/Application Support/PIVX and press enter

If the folder cannot be found please repeat the steps and enter: ~/.pivx
If the folder still cannot be found:

  1. Open the wallet and select the tools drop down menu
  2. Select the Wallet Repair option.
  3. Make note of the folder which contains the wallet in use.
  4. Use the specified folder in the "Go to Folder..." option.
  5. Double click on pivx.conf
  6. A popup window will state that "There is no application set to open the document “pivx.conf”. Press the Choose Application... button
  7. Now in the window that opens scroll down to select the TextEdit application and select open.
  8. Enter your configuration updates.
  9. Click the file dropdown menu and select save.
  10. Click the file dropdown menu and select close.
  11. Restart the wallet for the configuration to take effect.

To Navigate to the configuration file from within the Application:

  1. Open the PIVX Wallet
  2. Click the Tools dropdown menu and select "Show Automatic Backups." This will open a finder window with a bunch of wallet.dat files in it.
  3. Click this finder window and press the cmd key along with the up arrow at the same time. This will cause your finder window to move up one directory into the PIVX data directory.
  4. Double click on pivx.conf
  5. A popup window will state that "There is no application set to open the document “pivx.conf”. Press the Choose Application... button
  6. Now in the window that opens scroll down to select the TextEdit application and select open.
  7. Enter your configuration updates.
  8. Click the file dropdown menu and select save.
  9. Click the file dropdown menu and select close.
  10. Restart the wallet for the configuration to take effect.

To navigate to the configuration file from the Terminal:

  1. Open the terminal by using Spotlight search in OS X, searching for “terminal”
  2. Determine your user name by entering:
            id -un
  3. Enter the following where <username> is replaced with the output from line 2:

High Sierra:

            open -a TextEdit /Users/<username>/.pivx/pivx.conf


open -a TextEdit /Users/<username>/Library/Application\ Support/PIVX.pivx.conf

4. Enter your configuration updates.
5. Click the file dropdown menu and select save.
6. Click the file dropdown menu and select close.
7. Restart the wallet for the configuration to take effect.