Basic Concepts

Bean Cash is a digital cash system. Bean Cash uses a variety of concepts and technologies to create a digital cash eco-system. Bean Cash is comprised of a digital currency system and a peer-to-peer network, upon which digital currency transactions can move and be verified. Bean Cash uses a protocol based upon the original Bitcoin Protocol proposed by Satoshi Nakamoto. The Bean Cash Network is an overlay network, which uses primarily the Internet to communicate over, but can use other networks as well. Bean Cash, the digital currency can also be transacted off network in person to person transactions that latter settled on-network. This is a similar to how one would transact using checks, which settle later in a traditional banking system. Bean Cash transactions are settled on-network in as little as 20 seconds, compared with traditional bank checks taking sometimes days to settle.

Bean Cash transactions can be used to buy and sell goods or services world-wide, using digital signatures based on encryption technology. Transactions themselves are not encrypted, but relies on digital keys, based on strong cryptography. Bean Cash is a form of money for the Internet that is fast, secure, and borderless.

The Bean Cash Network is a full-distributed peer-to-peer system. It is a near complete Graph Network. As such, there is no single point of failure, or central authority --unlike banks.

Bean Cash, the digital currency, is real money. It is a store of value, a unit of account, is fungible to varying degrees, and can be traded person to person for goods or services -- both on-line or off-line. Bean Cash units of currency, represent transactions of implied value, that transfer value from sender to recipient. Users of Bean Cash own keys, which allow them to transfer or prove ownership of transactions on the Bean Cash network. Keys are usually stored in a digital wallet on each user's computing device, but can also be store on other media such as cards, paper cash, or even memorized!

Bean Cash units are called BEANs. Other monetary units are SPROUTs or ADZUKIs. 1 SPROUT equals 1,000 BEANs. 1 ADZUKI represents .00000001 BEAN. As such, Bean Cash offers varying degrees of units to make it easy to transact in high values or micro-transactions.

Bean Cash monetary units are created through a process called SPROUTING. SPROUTING utilizes a process known as Proof of Bean (POB), where by existing units of BEANs are accumulated in the market, using real value from real Proof of Work in the real world, and used to secure the network. The process of SPROUTING is much like a problem of looking for a needle in a haystack, it is in essence a very difficult mathematical problem. The more BEAN weight one has, the easier it becomes to solve the problem and thus a higher probability of earning a reward called a SPROUT. The network limits the amount of BEANs created to around 1.5 Million per day. BEANs are distributed in set amounts of 1,000 (Known also as 1 SPROUT). The protocol ensures a disinflationary model that provides enough incentive to the node operators to maintain a strong network, while also providing enough supply to prevent significant market pumps during periods of strong demand.

Bean Cash uses a system of strong cryptographic proofs based on encryption technology. Keys based on cryptographic proofs are needed to spend or move BEANs on the network. Bean Cash has embedded in its blockchain a significant amount of computing power. During its Proof of Work distribution, a peak of 2.4 Petahashes, using double sha256. Even with many of the top supercomputers in the world today, it would be an extremely difficult undertaking to change a transaction on the Bean Cash network after 6 confirmations.
Because of the highly decentralized and distributed nature of Bean Cash, even if a block rewrite were to occur, it would have a difficult time becoming accepted by the rest of the network.

Trying to change a transaction in the blockchain, the ledger system of Bean Cash, to steal money is EXTREMELY difficult. Due to how transactions are recorded and confirmed, each block is built upon the block that came before it. Change a block in the middle and the rest of the blocks to the present one are out of sync and easily detectable (due to the open nature of the transaction recording/approval process). EVERYONE along the block chain would know the block chain ledger had been altered.

Bean Cash uses a consensus system of Proof of Bean, which utilizes the currency of the holders which are active SPROUTERs on the network. Full nodes on the Bean Cash network, have to come to agreement (consensus) on a valid transaction, before it can be added to the blockchain. This makes it extremely impossible for any one person or group to change a Bean Cash transactions.

A blockchain, originally block chain, is a growing list of records, called blocks, which are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data.

A Blockchain is a very important technology to cryptocurrencies (it can also be used for other things). The best way to think of a blockchain is as a public, chronological, transparent, digital ledger, that is encrypted with the strongest possible encryption. It is used to record and verify every transaction that occurs.>

We call it transparent, because, everyone in the network has the same ledger of transactions and several of those copies must accept the current transaction for it to be added to the ledger (blockchain).

It is public, because everyone in the network has the same copy of the ledger and it is almost impossible (without a supercomputer) to alter the list of transactions. If someone did try to insert a transaction into the blockchain or to alter an existing transaction, it would change the encryption for every transaction that follows and would be rejected by the network.

The fact that the blockchain is chronological (time and date based - as it happens), means that anything inserted or altered afterwards would be very obvious to see and, again, would be rejected by the network.

Forcing multiple copies of the ledger to agree before any changes are made to this ledger ensures that theft or destruction of the network would be very difficult to accomplish.

Like everything else we are discussing here, a smart contract takes place in the digital world. It is a computer protocol used to negotiate or execute a contract between 2 or more parties. The "smart" part of the contract comes in where parts of the contract are automatically executed by a computer program, without the involvement of a third party contract enforcer.

Taking a simple example, if party A wants to buy land from party B, normally it involves a ton of paperwork, a title company, and possibly lawyers for both sides. With a smart contract, it is written into the contract that if party B vacates the land by a certain date, they are to get currency from party A. If party B keeps to the agreement, funds are transfered by the computer from the account of Party A to the account of party B. If party B does not keep to the agreement, the deposit is automatically returned from the account of party B to party A. There is no lawsuit. No involving the sherrif's deputies. Everything is automatic and cannot be changed. It can be added to after the fact, but not changed.

This saves everyone money and time. It also eases the burden on the court system.

Mining needs both a computer and a special computer program to perform the mining. The hardware in the computer can be very specialized or it can be just a normal computer (depending on the cryptocurrency). The program is set up to solve very complicated mathematical problems.

Miners use their computer to zero in on a hash value less than a target value and whoever is the first to find that hash value is considered the one who mined the block and is eligible for a reward. The reward is an amount of cryptocurrency. The amount depends on each cryptocurrency.

There are two main methods of mining:

Proof of Work (PoW)

Proof of Stake (PoS) (we call it Proof of Bean - PoB)

There are other mining methods and various combinations, but the above are the main ones.

"Proof of Work" and "Proof of Stake" are two different types of coin "mining". Proof of Work is based on you being able to prove that you actually did work for the reward, while there is still work involved with Proof of Stake, your coin holdings are what is more important here.

Proof of Work uses heavy-duty, specialized computer equipment for preforming the "mining". It is heavy on electricity usage. While "Proof of Stake" does not require the extremely specialized equipment now required to "mine" Proof of Work currencies like Bitcoin, it can definitely help.

"Proof of Work" is a requirement to define an expensive computer calculation, also called mining, that needs to be performed in order to create a new group of trustless transactions (the so-called block) on a distributed ledger called blockchain.

Mining for cryptocurrency serves two purposes:

To verify the legitimacy of a transaction, or avoiding the so-called double-spending

To create new digital currencies by rewarding miners for performing the previous task

When you want to set a transaction this is what happens behind the scenes:

Transactions are bundled together into what we call a block

Miners verify that transactions within each block are legitimate

To do so, miners should solve a mathematical puzzle known as proof-of-work problem

A reward is given to the first miner who solves each blocks problem

Verified transactions are stored in the public blockchain

Unlike the Proof of Work, where the algorithm rewards miners who solve mathematical problems with the goal of validating transactions and creating new blocks, in the original proof of stake system, the creator of a new block is chosen in a deterministic way, depending on its wealth, also defined as stake.

In the original Proof of Stake, there was no block reward. The miners were rewarded with the transaction fee. This has been modified in some of the Proof of Stake coins, in order to keep the transaction fees low.

Some of the Proof of Work coins are changing into Proof of Stake coins because, in 2015 one Bitcoin transaction required the same amount of electricity as powering 1.57 American households for one day.

These energy costs are paid with fiat currencies, leading to a constant downward pressure on the digital currency value. Using recent research, experts argued that bitcoin transactions may consume as much electricity as Denmark by 2020.

Developers are pretty worried about this problem, and some coins want to exploit the proof of stake method for a greener and cheaper distributed form of consensus.

Credit in this and many other definitions goes to the wonderful BlockGeeks website for an excellent education. Check them out if you want a more in-depth explanation on how all of this cryptocurrency works.

With a maximum block size of 20MB and a 60 second target block time, Bean Cash enables near real-time confirmation of transactions in blocks. A single confirmation can take as little as 20 seconds to become confirmed. Within a minute or less, Bean Cash verifies, validates and settles transactions in near real-time, something many other leading 'crypto currencies' fail to do in the same time period.

Another benefit for merchants, with Bean Cash, there is zero counter-party risk and no charge-backs! This provides real value to the market, by improving on the charge-back prone, lengthy settlement times, and expensive fees associated with credit cards and Bitcoin (Bitcoin Segwit fees can range as high as $15-$30 USD or more per transaction!).

With Bean Cash, transactions can be as low as a fraction of a cent!

Bean Cash's mission is: "To be an enduring digital currency, with high integrity, a store of value and a means of exchange for every day transactions -- that stands the test of time!"

In its mission to be a transaction-centric digital currency with real-world use, one of the main goals for Bean Cash, is to solve the "last mile" issue in the digital currency space. Instrumental in achieving this objective, will be to partner and work with companies that implement Bean Cash at the Point of Sale/Service. Bean Cash builds on the original Bitcoin protocol, which is turing complete and has the capability to handle 'Smart Contracts'. To realize this potential, Bean Core will be working to fix and re-enable the dormant Op-codes in its protocol. With the original Bitcoin Op-codes restored, along with new ones added, it will be possible to build a higher level language and environment on-top, allowing Bean Cash to reach a wider market of developers and adoption.

"Sprouting" is another name for mining. It is Bean Cash's term for mining. Get it? Bean? Sprout? Ahhh, never mind. Anyway, that is what it is. Please see the definitions of mining and Proof of Stake above for a more complete definition.

To put it very succinctly, an airdrop is a promotional activity undertaken by a cryptocurrency to distribute free currency to people. Sometimes people may need to do something to participate in an airdrop or they may need to hold a certain amount of the cryptocurrency. Other times, it is a marketing effort to the public with no qualifications to get the free cryptos.

With the latest Bean Cash software, your wallet should be able to synchronize on its own. By default the software will look for nodes by using our our customized DNS servers. In addition there are nodes that are already built into the software. Connecting to these nodes can sometimes take awhile. Adding a configuration file can force the wallet to synchronize. For BitBean versions 1.1.2 and earlier this file is called 'BitBean.conf'. For versions that start with 1.1.2.2 the config file is called 'Beancash.conf'. To maintain compatibility, in all cases, this configuration file will be located in a data directory called ".BitBean"

First close your wallet or daemon.

From the File menu, select "exit". If your using Windows, its especially important to shutdown using the File menu, rather than clicking the "X" in the window control.

If your running a damon, execute the following in a shell:

./BitBeand stop

If your running a Bean Cash daemon: ./Beancashd stop

To create your own config file, use ours below as a template. Pressing Ctrl+A should allow you to select all the text, Ctrl+C should copy it to your clipboard, then use Ctrl+V to paste it into your editor. (Note that if your using a Mac replace Ctrl key with Apple's Command key.) Save the text file and you are set to go.

Another option is you can download our config files that we've made for you. Right click on the file name below for your operating system, then select the "Save link as" from the menu that appears. Save it in the following directory path for your operating system:

* To open your AppData Folder: Press the Windows Key+R then type: %appdata% Mac OS does not show hidden files by default.

To save the file to your downloads folder:

Click the link and save the file to your Downloads Folder

Open the Finder

Select 'Go' from menu bar and press the Shift+Command+G keys

Copy and paste the path listed above into the text box. This will display the folder. If you see the wallet.dat file, you have opened the correct folder

Copy/move the file from the Downloads folder to this folder

If you are running the Bean Cash wallet, save the file as Beancash.conf, if you are running the BitBean wallet, save the file as BitBean.conf.

Restart your wallet and it should start connecting to some of the addresses in the conf file. Be patient, please... If the wallet does not start connecting, it could be the addresses in the .conf file are out of date.

Every now and then, it is a good idea to update your .conf file with the current addresses. People go online and offline for various reasons and so do machines. You can get those updates by first trying the following (shorter process):

Open the .conf file you just saved in your favorite plain text editor (not word processor)

Copy all of the lines in the above file that begin with "addnode"

Paste all of those "addnode" lines you just copied, over all of the "addnode" lines in your .conf file

Save your new .conf file over the old one

Restart your wallet

For other lists of Bean Cash nodes, you can try:

Cryptoid You should see various "nodelist" buttons, click on the one that shows the highest count.

Coinexchange On the left column you will see a log of addnodes, scroll down and click on the "copy addnodes" button.

A "generated but not accepted" block is a normal occurrence within the Bean Cash network. These are orphaned blocks, and the network uses them to signal to other nodes. This is a part of the consensus protocol and occurs when you generate a block within a short time of another node. When this occurs, the network has to choose which block to accept. Generally, a node that can broadcast a newly signed block faster will likely get their block accepted. Those that are slower, will get this message. You can improve your blocks getting accepted by the network, by doing the following:

Stop being a cheap ass and buy some Dam BEANS! This will increase your sprouting weight! The goal is to create a separation of 1% or more in BEAN weight.

Stop trying to run a Bean Cash node on a Raspberry Pi connected over a Wifi network! Get a real job, a real computer and a decent Internet connection.

In summary switch from wifi to a hard-wired ethernet or fibre connection

If you have a low number of connections (less than 16), try forwarding port 22460* for for the computer you have Bean Cash running on.

First off, the term "Reblocking" is a (sic) term that is used by many that don't understand blockchain technology. The Bean Cash blockchain is immutable, which means it can not be changed, therefore you can not "reblock" or change the blocks.

A better term for what most are trying to describe is "Regrouping Transactions".

If you are looking to optimize your groupings of BEANs in your wallet, for better SPROUTING, you could try "Regrouping Transactions".

Regrouping transactions between 5,000 BEANs and 100,000 BEANs will generally improve SPROUTING in the short-term. Longterm SPROUTERS should not be concerned with Regrouping Transactions, as the wallet automatically splits your BEANs into new transactions.

If you would like to Regroup your BEANs, check out the following videos of how to Regroup your BEANs:

In short, you can't! The Bean Cash network is not a light weight network. The minimum specifications for running a node are now 4GB of RAM, Dual-core CPU running at least at 3Ghz, and a low-latency Internet connection. Anything less than these specifications will not be able to adequately compete for sprouts on the network. (A solid state drive is further recommended to decrease read/write latency.)

Yes, you can!
The easiest way to accomplish this is as follows:
Create a new directory to house the testnet data. Name it anything you like, e.g. "beantestnet"
Start up a second instance of the Bean Cash wallet using the "‑datadir=

" and "‑testnet" command line options, e.g. Beancash‑qt ‑datadir=full/path/to/dir/ ‑testnet. (You will always start the node with this command line.)
Let it sync.
If you want this node to sprout some test beans, ask one of the devs to send you some. (NOTE: Test beans have no monetary value. They are used for system tests for development of applications that support Bean Cash.)

Yes, you can!
The easiest way to accomplish this is as follows:
Create a new directory to house the additional wallet data. Name it anything you like, e.g. "beancash2"
Start up a second instance of the Bean Cash wallet using the "‑datadir=

" command line option, e.g. Beancash‑qt ‑datadir=full/path/to/dir/ . (You will always start the node with this command line.)
You will need to edit the 'port' parameter in the Beancash.conf file to make the wallet use a separate port.
Let it sync. You may wish to use a snapshot to speed things up.
To speed up the process follow the instructions in tutorial 19.

A bootstrap file or a snapshot of the blockchain can be used to speed up synchronization of your wallet with the blockchain. The "snapshot vs bootstrap" argument centers around speed and security. Both methods are faster than a full download of the blockchain via your wallet, but the snapshot method is the fastest, because it bypasses the validation step for all the blocks included in the snapshot. The wallet software sees the snapshot files as native files and simply begins downloading and validating any subsequent blocks to catch up. In essence, you are trusting that the creator of the snapshot has given you a valid copy of the blockchain.
The bootstrap.dat file decreases the amount of data the wallet software has to download, but does not eliminate the validation step. The wallet software will import the blocks from the bootstrap.dat file and validate them against the live blockchain by connecting to peers on the network to perform the validation step.
Which is better depends on your situation and whether or not you trust the source of the data. You decide!
Here is the step-by-step process:
Start up your wallet program and let it initialize the files.
Make sure you are able to synchronize with the network and are getting more than one connection.
***Encrypt your Wallet with a Passphrase using the Menu - Settings - Encrypt Vault.
***Backup your Wallet using the Menu - File - Backup Vault. (It is recommended to backup two copies to offline media (USB drive/devices).)
Stop Bean Cash/BitBean from running with the Menu - File - Exit.
In the Bean directory, delete all subfolders and files except: peers.dat, wallet.dat and any *.conf file if you have one. If you have written or added a configuration file (Beancash.conf or Bitbean.conf depending on the version of your wallet) keep it as well.
Windows: C:\Users\%YourWindowsUsernameHere%\AppData\Roaming\BitBean
Linux: ~/.BitBean/
Mac: ~/Library/Application Support/BitBean/
Now to apply a snapshot or bootstrap:
Download a snapshot or bootstrap (A current Snapshot is available in the Downloads menu at the top of this page.) and save it to the same Bean Cash/BitBean folder as the files you kept.
Extract the contents of the archive file to the same folder.
Make sure the unzip fully completes, then restart Bean Cash Core (or BitBean-qt if you have the older version).
You will now be able to fully syncronize with the blockchain in a matter of hours instead of days!

System Issues

No. This is not a hard fork. This wallet is mostly performance enhancements and bug fixes. The same blockchain is running in all wallet versions. As long as you are happy with your current wallet, there is no requirement to upgrade. Sprouting and transactions will continue to work as they have up to this point.

The number of connections has no effect on your chances of sprouting. Sprouting is directly related to the number of beans you hold. More beans means a better chance of sprouting.

Having more connections DOES decrease the chances of 'generated but not accepted' sprouts. When you sprout at the same time as someone else, it becomes a race to get your sprout broadcast to the most nodes on the network for acceptance into the blockchain. With more connections your newly sprouted beans will get propogated to and accepted by the network more quickly.

Whether or not you run 24/7 is up to you. The wallet must be running and connected to the internet in order to sprout. Sprouts are rewards for contributing resources (processing transactions) to the network. You will NOT sprout for any time the wallet is not running or you are not connected to the internet.

Antivirus programs analyze the behavior and structure of programs running on your system to determine if they are malicious. They make mistakes and can flag valid software as a virus, including crypto wallets and mining software.

Generally, getting your wallet from an official source (bitbean.org, beancash.org or the github repository linked from the official website), is the best way to know your software is safe. However, even in some official places, criminals can hack in and replace valid software with a virus and the intrusion may not be detected in those official sources for a while.

If your official antivirus software is detecting a virus, it is possible. Try running a second virus scan using a different antivirus program than the one that first detected the virus. Almost all of the major antivirus makers have a free scanner that will scan your hard drive for malware.

If the new antivirus software says your machine is clean, go to the website of your antivirus maker and look for instructions on how to add an exception or exclusion for your wallet.

This will download and validate a new copy of the blockchain. The process can take up to 2-3 days. To speed the process up, see the Technical Questions section, under the question about snapshots/bootstrapping.

Make sure your wallet is unlocked. The most frequent cause of not sprouting is not unlocking your wallet after doing something that causes the wallet to lock. It is always a good idea to check and make sure the wallet is unlocked when you leave, so it will sprout.

Sprouting is randomly assigned after taking bean weight into account. If your wallet is unlocked and synced, it is possible you just have not been randomly picked in a while. These usually even out with you getting picked for several sprouts back to back.

No. They are not gone. The beans are actually in your account, but you won't see them until you have downloaded the block that contains the information for your transfer, which will be one of the most recent blocks. You will see your beans once your wallet finishes syncing.

If you download a snapshot or a bootstrap, the wallet should sync faster. You can check if the beans are actually there, by entering the address you think the beans were sent to in the field below and clicking on the button.

Shut down the wallet and restart it, appending a space and "-rescan" to the command you normally use to start the wallet. Only use the rescan option if your wallet is not recognizing transactions.

If your not able to start Bean Cash from a terminal or command shell, you will want to instead edit Beancash.conf and add in "rescan=1", without quotes. You can edit Beancash.conf by opening the Menu -> Help -> Debug Window and select the Information Tab. Within the Information tab is a button called "Edit Config File". Pressing this may open up a dialog asking you to choose an application, you may choose any text editor in your system. After adding rescan=1 to your Beancash.conf file, save and exit your editor. You can then restart the Bean Cash Application. After it restarts, use the same proceedure to remove "rescan=1" from Beancash.conf.

General Questions

A company called '1 on 1 Development' decided they wanted the name 'bitbean' for themselves and trademarked it. Rather than fight them in court, the Bean Core Executive Board proposed to rename BitBean to something that would be a more common name. The community generally agreed.