Registration.
Anybody can become a member for free by providing his/her permanent withdrawal address and captcha.
Each member receives a referral link to attract newcomers.
Each member receives a permanent address to deposit funds.
If newcomer follows the referral link and gets registered within 30 days, then he/she becomes a referral of the link owner (and the link owner becomes a sponsor of newcomer).
If newcomer didn't register via referral link then he/she becomes a referral of a random member (see 2.3).
Money distribution.
Each member receives up to 50% of his/her referral's income (but not more than s/he deposited + 0.01 btc at a time) and pays about 50% of his/her income to his/her sponsor and possibly random member(s). [3]
Member's income = member's deposits + referral payments + random payments.
Member's expenditure = member's withdrawals + withdrawal fees + sponsor payments + random payments.
Member's balance = member's income - member's expenditure.
Withdrawals and all other outgoing payments are done automatically when member's balance hits the threshold of 0.021 btc. Withdrawal fee is 0.001 btc per withdrawal.
Each member's chances to receive random payments or to become a random sponsor of newcomer depend on sum of his/her deposits. [1] Moreover each random payment's size is limited by member's deposits [2]. Thus if member doesn't deposit anything, then he/she is unlikely to receive random payments or random referrals.
Each member any time may deposit any amount to his permanent deposit address to increase his/her chances of being selected for random payments and to increase the amount of money can be received at a time.
Rules are a subject to change.
[1] The following algorithm is used to select random member:
maximumDeposit = SELECT max(fromWallet) FROM bpMember;
SELECT MemberId FROM bpMember ORDER BY rand()*maximumDeposit/(1+fromWallet) limit 1;
where "fromWallet" is the total amount of money deposited by a member
[2] The following algorithm is used to distribute money among random members:
selectedMember = select random member[1]
send min(money left, sum deposited by selectedMember) btc to selectedMember
if money left then goto 1.
[3] The following algorithm is used to distribute member's income when balance hits the threshold of 0.021 btc:
send 0.001 btc to Bitcoin Pyramid
send money left / 2 to member's withdrawal address
send min(sum deposited by sponsor + 0.01 btc, money left) to member's sponsor
distribute the remainder among random member(s)[2]
The following algorithm is used to distribute member's deposit:
send min(sum deposited by sponsor + 0.01 btc, money left / 2) to sponsor
distribute the remainder among random member(s)[2]