# Create Link Record §

{% hint style="warning" %}
The record will be submitted to the blockchain asynchronously. You should use GET Location Status to find out whether the record has been confirmed before performing any other operations on the returned location.
{% endhint %}

## **Create Encoded Link**

<figure><img src="/files/yD6RcxRI42Isg0R4tMIG" alt="" width="563"><figcaption></figcaption></figure>

1. The  record owner selects any encoders and salt to use
2. The record owner creates an encoded link record via Event
3. Event encodes the record as specified to produce a fingerprint
4. The linked fingerprint is written to the blockchain
5. The result is the fingerprint and its link location on the blockchain
6. The record owner stores the salt, fingerprint and location for later processing

#### Example code:

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST "$URL/api/v1/linkedrecords?encode=SHA256(01-02T13.14.15)|Base64" \
     -H "x-api-key: $KEY" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "hello"
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch('${url}/api/v1/linkedrecords?encode=SHA256(01-02T13.14.15)|Base64', {
  method: 'POST',
  headers: {
    'x-api-key': '${key}',
    'Content-Type': 'application/octet-stream'
  },
  body: 'hello'
});
```

{% endtab %}
{% endtabs %}

#### Example cURL response:&#x20;

```json
{
  "txId": "4f170a122b82783d....43d2b5d99d3ed190d0b",
  "encoding" : [ 
    { "content-type": "…|Base64", "output" : "ytfc5c5wv0V7hOo....G1ucRFzSIe6rw=" }
  ]
  ...
}
```

The final "output" shows the record that was written to the blockchain.

## **Create Unencoded Link** [**‡**](/nchain-event/overview/configuration-symbols.md)

<figure><img src="/files/DTM40Mky9QJfP92J9Yb3" alt="" width="375"><figcaption></figcaption></figure>

1. The record owner creates a record via Event
2. The result is the link location of the record on the blockchain
3. The record owner stores the link location for later processing
4. Ideally, the record owner should check the link location status

#### **Example** **code:**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST $URL/api/v1/linkedrecords \
     -H "x-api-key: $KEY" \
     -H "accept: text/plain" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "hello"
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch('${url}/api/v1/linkedrecords', {
  method: 'POST',
  headers: {
    'x-api-key': '${key}',
    'accept': 'text/plain',
    'Content-Type': 'application/octet-stream'
  },
  body: 'hello'
});
```

{% endtab %}
{% endtabs %}

#### **Example** cURL **response:**

```json
{
  "txId": "47175b2ee3345942….d58cd286198e1bc97",
  ...
}
```

## **Extract Location**

At least the location (shown as "txId") should be stored for subsequent operations:

{% tabs %}
{% tab title="cURL" %}

```bash
LOC=47175b2ee3345942....d58cd286198e1bcf97
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const data = await response.json();
const loc = data.txId;
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.teranode.group/nchain-event/linked-records/api-workflow/create-link-record.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
