How to Stake BELA in MEW and Mist Wallets

Live Bela
Belacam
Published in
12 min readApr 2, 2018

--

Minting of new BELA will no longer occur through mining but instead through a unique staking procedure. We have taken BELA’s current inflation rate per annum and kept it the same. Instead of earning a % interest on staked BELA, every user staking BELA will be competing for a share of this pre-set amount of BELA every day that will be minted. This will take power away from a small centralized group of miners that currently mine BELA and hand it over to the true everyday users. It will also empower the Belacam team to add other exciting and innovative staking related features to the platform in further upgrades.

Mist Ethereum Wallet Staking Tutorial

To stake BELA through the Mist Ethereum wallet you’ll need to have an ERC20 token address where you’ve received your BELA, and enough ETH in that same address to cover transaction fees (gas spent). Typical transaction cost is ~0.001 ETH.

In the header of the Mist Ethereum Wallet click on “CONTRACTS”:

Then click on “WATCH CONTRACT”:

Enter the CONTRACT ADDRESS:

0x2e98a6804e4b6c832ed0ca876a943abd3400b224

Give it whatever CONTRACT NAME you like. I’m going to call mine “Stake Bela”.

Enter the JSON INTERFACE:

[
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "claimStake",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_subtractedValue",
"type": "uint256"
}
],
"name": "decreaseApproval",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_addedValue",
"type": "uint256"
}
],
"name": "increaseApproval",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "ownerClaim",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "vester",
"type": "address"
},
{
"indexed": true,
"name": "stakeSplitAddress",
"type": "address"
},
{
"indexed": false,
"name": "stakedAmount",
"type": "uint256"
},
{
"indexed": false,
"name": "stakingGains",
"type": "uint256"
}
],
"name": "Vest",
"type": "event"
},
{
"constant": false,
"inputs": [],
"name": "reclaimEther",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "owner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "staker",
"type": "address"
},
{
"indexed": true,
"name": "stakeSplitAddress",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Stake",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "amount",
"type": "uint256"
}
],
"name": "Mint",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_stakeAmount",
"type": "uint256"
}
],
"name": "stakeBela",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_stakeAmount",
"type": "uint256"
},
{
"name": "_stakeSplitAddress",
"type": "address"
}
],
"name": "stakeBelaSplit",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"payable": false,
"stateMutability": "nonpayable",
"type": "fallback"
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
},
{
"name": "_spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getStakedBalance",
"outputs": [
{
"name": "stakedBalance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ownerMintRate",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ownerTimeLastMinted",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "stakeBalances",
"outputs": [
{
"name": "initialStakeBalance",
"type": "uint256"
},
{
"name": "initialStakeTime",
"type": "uint256"
},
{
"name": "initialStakePercentage",
"type": "uint256"
},
{
"name": "stakeSplitAddress",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalBelaStaked",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]

Then click “OK”:

Now we are watching this Custom Contract. Go ahead and click on it:

To stake, go down to “Pick a Function”:

And select “Stake Bela”:

How many BELA would you want to stake? The amount is counted in wei so it should be your value multiplied by 1000000000000000000 (1e18), I have100 BELA so I will put 100000000000000000000, or 100e18

Make sure that you have enough ETH to cover the gas and then click “EXECUTE”:

Enter your password and then click “SEND TRANSACTION”:

To check and make sure that our BELA was successfully staked, we’re going to “Read” the same contract.

The contract is read automatically, we just need to scroll down to “Get staked balance” to see that it is 100000000000000000000, or 100e18

At any time, I can get my BELA back by executing the “Claim Stake” function, but 30 days is the mandatory wait period. If you do it earlier you will not receive any new BELA.

MyEtherWallet Staking Tutorial

To stake BELA through https://myetherwallet.com/ you’ll need to have an ERC20 token address where you’ve received your BELA, and enough ETH in that same address to cover transaction fees (gas spent). Typical transaction cost is ~0.001 ETH.

At https://myetherwallet.com/ go to “Contracts”.

Enter the Contract Address:

0x2e98a6804e4b6c832ed0ca876a943abd3400b224

Enter the ABI / JSON Interface:

[
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "claimStake",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_subtractedValue",
"type": "uint256"
}
],
"name": "decreaseApproval",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_addedValue",
"type": "uint256"
}
],
"name": "increaseApproval",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "ownerClaim",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "vester",
"type": "address"
},
{
"indexed": true,
"name": "stakeSplitAddress",
"type": "address"
},
{
"indexed": false,
"name": "stakedAmount",
"type": "uint256"
},
{
"indexed": false,
"name": "stakingGains",
"type": "uint256"
}
],
"name": "Vest",
"type": "event"
},
{
"constant": false,
"inputs": [],
"name": "reclaimEther",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "owner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "staker",
"type": "address"
},
{
"indexed": true,
"name": "stakeSplitAddress",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Stake",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "amount",
"type": "uint256"
}
],
"name": "Mint",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_stakeAmount",
"type": "uint256"
}
],
"name": "stakeBela",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_stakeAmount",
"type": "uint256"
},
{
"name": "_stakeSplitAddress",
"type": "address"
}
],
"name": "stakeBelaSplit",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"payable": false,
"stateMutability": "nonpayable",
"type": "fallback"
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
},
{
"name": "_spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getStakedBalance",
"outputs": [
{
"name": "stakedBalance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ownerMintRate",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ownerTimeLastMinted",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "stakeBalances",
"outputs": [
{
"name": "initialStakeBalance",
"type": "uint256"
},
{
"name": "initialStakeTime",
"type": "uint256"
},
{
"name": "initialStakePercentage",
"type": "uint256"
},
{
"name": "stakeSplitAddress",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalBelaStaked",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]

And click “Access”

If you entered the Contract Address and JSON Interface correctly, you should now have the option to “Select a function”.

Select “stakeBela”

Now MEW is asking us for a stake amount:

How many BELA would you want to stake? The amount is counted in wei so it should be your value multiplied by 1000000000000000000 (1e18), I have100 BELA so I will put 100000000000000000000, or 100e18

Now we need to access our wallet containing BELA and enough ETH to cover gas. I’m going to use my Private Key to unlock it.

Now that the wallet is unlocked, click “WRITE”:

You will then get a pop-up. Leave the “Amount to Send” as 0 because we are not sending any ETH, use the pre-filled “Gas Limit”, and click “Generate Transaction”:

Then click “Yes, I am sure! Make transaction.”:

There will be a green footer that comes up briefly. Click on the link to view your transaction on https://etherscan.io/

To check and make sure that our BELA was successfully staked, we’re going to “Read” the same contract.

Enter the same Contract Address and ABI / JSON Interface as before and click the “stakeBalances” function:

Then enter the public address that you staked from:

And click “READ”:

And you’ll see that my stake balance is 100000000000000000000, or 100e18

At any time, I can get my BELA back by executing the “claimStake” function, but 30 days is the mandatory wait period. If you do it earlier you will not receive any new BELA.

If you have any questions please join us on Slack, or email us at contact@livebela.com

--

--