It's all about the BJs.

The BJ is a simple ERC20 token on the ethereum blockchain. It is not an ICO token, and that's the beauty of it. Ether sent to the BJ contract are immediately forwarded to a "sink." The sink can be a personal wallet, a charity's wallet, a DAO, or another wallet. At the same time, someone gets a BJ. For example, John can buy a blowjob for Luke.

John buys Luke a blowjob

The price of BJ's is set in the contract. 1 BJ = 0.01 eth. John has sent 0.01 ether to the BJ contract and with Luke's wallet address. The contract sends Luke 1 BJ and sends the 0.01 ether on to the sink. The BJ contract owner can change the wallet address. The blockchain shows that John sent the ether to the sink. Here, John has used the buyToken(addr) method of of the BJ contract, where "addr" is Luke's ethereum wallet address.

People sometimes send ether directly to a contract address. Sometimes that ether is lost, sometimes the contract refuses the transfer, sometimes the contract has a default behavior. The BJ contract simply gives the sender some BJ and sends the ether to the sink.

John gets a blowjob

John transferred 0.01 ether directly to 0x0e68e030c68604840017194d90b535eabe1ea059 just the same as if he were sending ether to a friend's wallet. The contract gives John a BJ, that's friendly. The contract also forwards the 0.01 ether to the sink. Perhaps this could be put to good use. Even charitable use.

John gets a blowjob

Here contract owner has configured the sink to be the ethereum wallet of a charity. In fact, from Sept. 9, 2017 until Dec. 5, 2017 the contract sent ether to a wallet for Habitat for Humanity in Houston. That charity was for Hurricane Harvey relief. Back to the example, John has made a charitable donation and received a BJ for his largess. If John had bought Luke a BJ instead, the charity would still receive the ether because the sink receives all the ether. The sink receives all the ether even if the sink is a DAO, a lottery, or something else.

John gets a blowjob for funding a DAO

Most DAO's are smart contracts that can hold ether. Some DAOs are for initial coin offerings, others are something else. They all hunger for ether. The BJ contract is not a DAO because it can't hold ether. It just gives BJs and transfers the ether away. As an example, the BJ contract's sink can be a lottery. When John sends his ether to the BJ contract, he gets BJ and he gets entered in the lottery. As far as the lottery can tell, John sent the ether directly to the lottery. Handy, eh?

Why am I doing this?

I'm doing this for fun, as an experiment, and for the experience. I've learned more from this live experiment than I would have from the most copious reading agenda. Maybe there will be some profit along the way. Maybe not. There will not be any profit for me while the sink is aimed elsewhere. Such is life. Tell me about charities having ethereum wallets for donations.

The future of this little experiment

1. Get BJ listed amongst the other available tokens on an exchange.

2. Verified and fully listed on etherscan etherscan.io.

3. Add some javascript so that it's easier for people to interact with the contract without hassle.

4. Go to the next project building on the lessons and bits of infrastructure built up in this project.

5. If BJs get popular enough, and how could they not, then I can open a geth rpc endpoint to the community. Or... I could just aim the contract sink at their donation wallet.