How to Deploy Smart Contracts via MEW

Deploying an Ethereum smart contract is an easy task thank to MyEtherWallet’s Deploy Contract interface. All you need to have is the following:

  • Byte Code
  • ABI/JSON Interface
  • Contract Name

Once you have those three ready, the first two of which you can get once your smart contract is compiled, you can head over to MEW and deploy:

MyEtherWallet Deploy Contract interface

Just for clarification, the byte code looks something like this:

0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610503806100606000396000f3fe60806040526004361061005c576000357c010000000000000000000000000000000000000000000000000000000090048063075461721461006157806327e235e3146100b857806340c10f191461011d578063d0679d3414610178575b600080fd5b34801561006d57600080fd5b506100766101d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100c457600080fd5b50610107600480360360208110156100db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101f8565b6040518082815260200191505060405180910390f35b34801561012957600080fd5b506101766004803603604081101561014057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610210565b005b34801561018457600080fd5b506101d16004803603604081101561019b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506102e3565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561026b57600080fd5b789f4f2726179a224501d762422c946590d910000000000000008110151561029257600080fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561039a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f496e73756666696369656e742062616c616e63652e000000000000000000000081525060200191505060405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055507f3990db2d31862302a685e8086b5755072a6e2b5b780af1ee81ece35ee3cd3345338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505056fea165627a7a72305820f43ea59fe43f23cbc5125d0529e5e284545e00ae88b06fd88e9913027b7a750d0029

And the ABI/JSON interface can look something like this:

[
{
“constant”: true,
“inputs”: [],
“name”: “minter”,
“outputs”: [
{
“name”: “”,
“type”: “address”
}
],
“payable”: false,
“stateMutability”: “view”,
“type”: “function”
},
{
“constant”: true,
“inputs”: [
{
“name”: “”,
“type”: “address”
}
],
“name”: “balances”,
“outputs”: [
{
“name”: “”,
“type”: “uint256”
}
],
“payable”: false,
“stateMutability”: “view”,
“type”: “function”
},
{
“constant”: false,
“inputs”: [
{
“name”: “receiver”,
“type”: “address”
},
{
“name”: “amount”,
“type”: “uint256”
}
],
“name”: “mint”,
“outputs”: [],
“payable”: false,
“stateMutability”: “nonpayable”,
“type”: “function”
},
{
“constant”: false,
“inputs”: [
{
“name”: “receiver”,
“type”: “address”
},
{
“name”: “amount”,
“type”: “uint256”
}
],
“name”: “send”,
“outputs”: [],
“payable”: false,
“stateMutability”: “nonpayable”,
“type”: “function”
},
{
“inputs”: [],
“payable”: false,
“stateMutability”: “nonpayable”,
“type”: “constructor”
},
{
“anonymous”: false,
“inputs”: [
{
“indexed”: false,
“name”: “from”,
“type”: “address”
},
{
“indexed”: false,
“name”: “to”,
“type”: “address”
},
{
“indexed”: false,
“name”: “amount”,
“type”: “uint256”
}
],
“name”: “Sent”,
“type”: “event”
}
]

Once you have filled in the fields, just click the Sign Transaction button and confirm. Then you need to wait for the transaction to be mined and voilĂ , your contract has been deployed.

Here is what an example contract deployment transaction looks like (we have used a sample contract created by TokenGen):

At this point, you can interact with the smart contract, again via MyEtherWallet (here’s how), and modify its state as you deem fit.

LEAVE A REPLY

Please enter your comment!
Please enter your name here