> For the complete documentation index, see [llms.txt](https://docs.relysia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.relysia.com/utility/post.md).

# Post

{% embed url="<https://share.synthesia.io/046d191d-698b-46ca-891c-675792113059>" %}

The bitcoin blockchain is a timestamp server. That means it can proof that certain documents were added to the blockchain at exactly that time and not modified later, which led to a variety of applications within the BSV space. From certifying documents against the blockchain to later proof no modification of it occurred to social media posts. \
\
While miners are not required to keep a copy of your blockchain post for all eternity on their mining servers, a whole ecosystem spawned over the years that uses the blockchain as decentralized storage system.&#x20;

{% hint style="warning" %}
OP\_R*eturn data on the blockchain can be pruned by individual miners since OP\_return transactions can't create another transaction (thus irrelevant for the validation process).*
{% endhint %}

Even though the hosting of uploaded data is not guaranteed, the hash of transactions is always verifiable via SPV networks and presents a long term reliable path to verify that B://cat data is unaltered since upload.&#x20;

{% hint style="info" %}
*The business of maintaining and hosting OP\_Return data onchain has found some traction with services such as Project Babbage, Metashard and Planaria.*
{% endhint %}

{% embed url="<https://api.relysia.com/docs/static/index.html>" %}

```javascript
const dataArray = [
    {
      "notes": [
        "note-1",
        "note-2"
      ]
    }
  ]
```

## Post Messages to the Blockchain.

<mark style="color:green;">`POST`</mark> `https://api.relysia.com/post`

The /post endpoint broadcasts a note to the blockchain (in B:// protocol format).

#### Headers

| Name     | Type   | Description |
| -------- | ------ | ----------- |
| walletID | string |             |

#### Request Body

| Name      | Type  | Description  |
| --------- | ----- | ------------ |
| dataArray | array | As per above |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  statusCode: 200,
  data: {
    status: 'success',
    msg: 'Data uploaded Successfully',
    txid: 'string'
  }
}
```

{% endtab %}
{% endtabs %}

```javascript
var parameters = { 
    serviceID: 'optional',
    walletID: 'optional',
    body: {
        notes: ["text1", "text2", "text3"]
    }
}

const response = await relysia.post(parameters);
```
