If you wanted to tip me while reading this article, you could do it right here (what you see below is a live working form not a screenshot, try it):

And you could have done that in-line in-place to anyone across any of these websites as well:

And thousands more:

embed.ly customer list

Wow! I’m a blogger I want it for my wallet!

Pretty cool uh? Its very simple to setup.

I’m going to assume you don’t have an ENS Name ready (Names are friendly monikers for your ETH wallet). Let’s get one for free first:

Goto https://enslisting.com |ENSNow tab

Type in the name you want, and click “buy” under <yourname>.thisisme.eth (or if you want other extensions like buymecoffee.eth or atmedium.eth, get those for the equivalent of 1–2 USD)

Click on “Buy”, check “I agree” and then click on “Buy Now”

Then go to “Manage Tab”, scroll to the section “I want to receive ETH Payments / Tips!”

Type in your newly acquired name, your expected payment (in any currency), click on “Generate Link”

Copy the link you see below and paste on Medium, Reddit or places that support embed.ly.

Viola! you are done!

The page also has examples on how to embed this directly on your website.

I provide a service, can I setup payment processing using this?

This is a pretty light weight widget/service intended to solve the last mile problem, but if you are determined, there is nothing stopping you:

You could easily pre-fill the message with your order number, and quote the amount in USD and let the widget do the conversion for you. You can also lock down the amount and message fields (remember, determined coders can simply override this via javascript console, so this is just a soft recommendation for the user not to change them, if you want assurance, verify yourself if you got the right payment before offering service)

Hard part is how to get notified when a payment is made. For that you need to write some solidity code:

The widget calls Deposit(message) to send Ethers to the receiver wallet, so if you switch out your regular wallet with a smart contract that implements the below interface, you can watch it to get notified on payments, with the message

pragma solidity ^0.4.17;

/**

* Wallet Contract that raises event on Deposit.

*/

contract DepositWallet {

/**

* Accepts ether payment with a message, and raise Deposit event

* @param message Message corresponding to the payment.

*/

function deposit(string message) public payable;

/**

* Raises Deposit event if ethers was sent to it

*/

function () public payable;

}

Here is an un-audited implementation of such a wallet, dont blame me if you end up losing all your tip money:

pragma solidity ^0.4.17;

/**

* Wallet Contract that raises event on Deposit.

*/

contract DepositWallet {

// Logged when a new deposit is made.

event Deposit(address indexed sender, uint256 value, string message);

// Logged when a withdrawal is made.

event Withdrawn(address indexed sender, uint256 value);

address public owner;

// Permits modifications only by the owner of the contract.

modifier only_owner() {

if (owner != msg.sender)

revert();

_;

}

/**

* Constructs a DepositWallet.

*/

function DepositWallet(address walletOwner) public {

owner = walletOwner;

}

/**

* Accepts ether payment with a message, and raise Deposit event

* @param message Message corresponding to the payment.

*/

function deposit(string message) public payable {

Deposit(msg.sender, msg.value, message);

}



/**

* Allows owner to withdraw funds

*/

function withdraw(uint256 amount) public only_owner {

require(this.balance >= amount);

Withdrawn(msg.sender, amount);

msg.sender.transfer(amount);

}

/**

* Raises Deposit event if ethers was sent to it

*/

function () public payable {

Deposit(msg.sender, msg.value, ‘’);

}

}

Why is this better than all the 3rd party payment services out there?

By eliminating all the intermediate layers, and linking up the last mile:

You interact pretty much directly with your user, from literally anywhere

You get first-class ethereum smart contract notification upon payment

There is no limit to what you can do in your deposit method, say call your order tracking smart contract and create a shipment status, so your block-chain savy users can start tracking their order directly in ethereum? Or transfer your cryptokitty to them instantly upon payment? You decide.

Bottom line is, there is no intermediary between your customer’s wallet and yours, and that is a good thing.

Can I use my own ENS Name (bought via ENSAuction) instead of free ENSNow name?

Absolutely, first go check if it is correctly setup by typing your name in the “I want to setup a name for my Wallet!” section, the screen will guide you through any missing setup, and if you get all green, go ahead and use it.

But wait, why ENS Name, why not plain simple address as valid recipient?

Lets use as much of the ecosystem as possible folks!

This service is offered on an as-is basis, with no warranties, we are not liable for any loses/damages.

I’ll soon post code that you can use to monitor your wallet contract for deposits when I find time (not hard to find if you look around, anyways).

Think we are missing a feature that can make this more usable? Ping me at mano@enslisting.com