Eternity Wall

Messages lasting forever  

Messages written on the wall are embedded in the blockchain, the public registry underneath bitcoin.
There are almost 100 thousands copies of this ledger all around the world and soon it will also be in space.
Even if this site goes down or disappears, your message is guaranteed to persist for generations to come.

 For love

Publicly declare your love for someone

 In memory

Memorialize an event or a person

 For fun

Just say hello to the entire world




Protocol (draft)

Any Bitcoin transaction that contains OP_RETURN data starting with "EW " (hex:455720) is considered a valid Eternity Wall message, the expected encoding of the following bytes is UTF-8.
It's not required that the transaction is created from the Eternity Wall web site, any transaction from third party services that respect the protocol is shown on Eternity Wall.
The address of the first output of the tx (if any and before the OP_RETURN output) is used as a message identifier if it's the first time it's used for this reason in the blockchain.
The address of the second output of the tx (if any and before the OP_RETURN output) is considered a reply to the message identified by this address (if any).
Any transaction that: has an output with any value to a valid message identifier after his creation and has no OP_RETURN is considered a like.
Any Bitcoin transaction containing OP_RETURN data starting with "EWA" (hex:455741) is considered an Eternity Wall Alias identified by the first input address of the transaction. Every following message consider the first output after the OP_RETURN a bitcoin address owned by the same person and thus consider the message sent by the same person.



Api

The following API endpoints are available:

Main

https://eternitywall.it/?format=json&cursor=[cursor]
returns a json with Eternity Wall messages. example


Rss feed

https://eternitywall.it/?format=rss
returns the rss feed with the last hundred Eternity Wall messages (updated once a day).


Single message details

https://eternitywall.it/m/[hash]?format=json
returns detail info on specified message (with father message (if any), current message and answer list (if any) example


Rankings

https://eternitywall.it/sortby/[type]?format=json
returns first 50 messages sorted by [type] example



Write paying in bitcoin

https://eternitywall.it/bitcoinform?format=json&text=[text]&reply=[replyid]&source=[source]
returns a json with a bitcoin address to pay to write on the wall. example


Notification

https://eternitywall.it/v1/notify?email=[email]&hash=[hash]&address=[address]&subscribe=[subscribe]¬ifyreply=[notifyreply]
if called, user will be notified with an email when the message has been written (block confirmed) and optionally to receive notification when there are replies



Authenticated API

Authenticated API works with [account]s having an EW Alias in the blockchain. You can create one by your own or with the Android app

Authentication

https://eternitywall.it/v1/auth/[method]?account=[account]&signature=[signature]&challenge=[challenge]
Authenticate request for calling [method]


Hash

https://eternitywall.it/v1/auth/hash/[hash]?account=[account]&signature=[signature]&challenge=[challenge]&nonce=[nonce]

POST
GET
if [hash] has been committed in the blockchain returns the merkle tree containing the requested hash, the merkle root and the transaction hash containing the committed root.
It returns also the OpenTimestamps Proof.



Machine-payable API

Machine payable API works by paying every call with fractions of bitcoins (satoshi). Since you pay every call you don't need an account.
You can use 21 library to pay for the API

Hash

http://21.eternitywall.it/v1/hash?hash=[hash]

POST 1000 satoshi
example:
21 buy http://21.eternitywall.it/v1/hash?hash=44ee321219c5db38b31f876521ba950af4c347445de5e2366a45c1c1685e50aa --request POST
GET 100 satoshis
if [hash] has been committed in the blockchain returns the merkle tree containing the requested hash, the merkle root and the transaction hash containing the committed root.

example:
21 buy http://21.eternitywall.it/v1/hash?hash=44ee321219c5db38b31f876521ba950af4c347445de5e2366a45c1c1685e50aa



Widget

Copy and paste this HTML code to show Eternity Wall messages in your site.

<script src="https://eternitywall.appspot.com/js/widget.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="https://eternitywall.appspot.com/css/widget.css">
<div id="example-widget-container" class="ew-div-style"></div>

You can edit the script to point to a copy of the css file hosted on your site and edit to become more appropriate for you web site style.

The following are some known sites that are hosting EW messages (send us yours if missing):



Known protocol or API client

Android

Sources (github)

Public alpha version


Web sites