> For the complete documentation index, see [llms.txt](https://ivantkf.gitbook.io/brc-4907/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ivantkf.gitbook.io/brc-4907/brc-4907-standard-rental-inscriptions.md).

# BRC-4907 Standard: Rental Inscriptions

<figure><img src="/files/K0V9DxmcyZ9fG3gfzHhF" alt=""><figcaption></figcaption></figure>

Author: Ivan Tsang (@ivantkf)

Created: 2023-03-21

Requires: Ordinals, BRC-1155 Standard

{% embed url="<https://docs.ordinals.com/>" %}

{% embed url="<https://ivantkf.gitbook.io/brc-1155/>" %}

## Idea

The concept is inspired by the ERC-4907 standard. The inscriptions with BRC-4907 standard are just another kind of Ordinals inscriptions, they can be traded, collected, and transferred as usual. The inscriptions here will be defined as the BRC-721 / BRC-1155 standard.

## Introduction

This is demonstrating what operations we can do {deploy, mint, transfer} by using the BRC-4907 standard,

|  Lender  | Borrower |
| :------: | :------: |
|  Deploy  |   Mint   |
| Transfer | Transfer |

## Operations

{% embed url="<https://emn178.github.io/online-tools/sha256.html>" %}
A secret code should be set by using SHA-256 algorithm for safety and transperancy during the verification
{% endembed %}

### 1.　Deploy

The lenders could create a BRC-4907 standard based on BRC-721 or BRC-1155 collection of their inscriptions to achieve rental function. Here is a basic example below (replace the x),

```
{
 "p": "brc-4907",
 "op": "deploy",
 "url": "inscription xxxxxx",
 "from": "xxxxxxxx.sats",
 "to": "xxxxxxxxxxxxxxxxxxx",
 "expire": "dd mmm yyyy",
 "vfy": "xxxxx"
}
```

{% hint style="danger" %}
The secret code should be told by the lenders for inscribing with the verification.
{% endhint %}

<table><thead><tr><th width="104.33333333333331" align="center">Key</th><th width="81" align="center">Must?</th><th>Description</th></tr></thead><tbody><tr><td align="center">p</td><td align="center">✅</td><td>Protocol: To identify and process BRC-4907 events</td></tr><tr><td align="center">op</td><td align="center">✅</td><td>Operation: Type of events {deploy, mint, transfer}</td></tr><tr><td align="center">url</td><td align="center">✅</td><td>The original document of the inscription for image location</td></tr><tr><td align="center">from</td><td align="center">✅</td><td>Identifier of the lenders with {.sats} domain</td></tr><tr><td align="center">to</td><td align="center">✅</td><td>To Address: States the borrowers address</td></tr><tr><td align="center">expire</td><td align="center">✅</td><td>Set the deadline (e.g. 21 MAR 2023), the valid time default to "23:59 UTC"</td></tr><tr><td align="center">vfy</td><td align="center">✅</td><td>Verify: Encrypted code by SHA-256 Algorithm for a further action</td></tr></tbody></table>

### 2.　Inscribe (Mint)

If the lenders have deployed the rental function, all users can borrow the Inscriptions using the {mint} code. The pairing of {deploy} and {mint} must be 1 to 1 with a connected verification code. When the deadline is over, that means the rental relationship is terminated automatically. Here is a basic example below (replace the x),

```
{
 "p": "brc-4907",
 "op": "mint",
 "url": "inscription xxxxxx",
 "from": "xxxxxxxx.sats",
 "to": "xxxxxxxxxxxxxxxxxxx",
 "expire": "dd mmm yyyy",
 "vfy": "xxxxx"
}
```

{% hint style="danger" %}
The secret code should be asked by the borrowers for inscribing with the verification.
{% endhint %}

<table><thead><tr><th width="104.33333333333331" align="center">Key</th><th width="81" align="center">Must?</th><th>Description</th></tr></thead><tbody><tr><td align="center">p</td><td align="center">✅</td><td>Protocol: To identify and process BRC-4907 events</td></tr><tr><td align="center">op</td><td align="center">✅</td><td>Operation: Type of events {deploy, mint, transfer}</td></tr><tr><td align="center">url</td><td align="center">✅</td><td>The original document of the inscription for image location</td></tr><tr><td align="center">from</td><td align="center">✅</td><td>Identifier of the lenders with {.sats} domain</td></tr><tr><td align="center">to</td><td align="center">✅</td><td>To Address: States the borrowers address</td></tr><tr><td align="center">expire</td><td align="center">✅</td><td>Set the deadline (e.g. 21 MAR 2023), the valid time default to "23:59 UTC"</td></tr><tr><td align="center">vfy</td><td align="center">✅</td><td>Verify: Encrypted code by SHA-256 Algorithm for a further action</td></tr></tbody></table>

### 3.　Transfer

Lenders and borrowers are allowed to transfer the inscriptions to the others for investment or trading purposes.  If the lenders / borrowers want to terminate the rental contract before the deadline, they could purchase / sell the rental contract during the period and the final owners have the right to sell it again. Here is a basic example below (replace the x),

```
{
 "p": "brc-4907",
 "op": "transfer",
 "url": "inscription xxxxxx",
 "from": "xxxxxxxx.sats",
 "to": "xxxxxxxxxxxxxxxxxxx",
 "expire": "dd mmm yyyy",
 "vfy": "xxxxx"
}
```

{% hint style="danger" %}
If the receiving address (bc1p...) is missing or incorrect, you might lose your inscriptions.
{% endhint %}

<table><thead><tr><th width="104.33333333333331" align="center">Key</th><th width="81" align="center">Must?</th><th>Description</th></tr></thead><tbody><tr><td align="center">p</td><td align="center">✅</td><td>Protocol: To identify and process BRC-4907 events</td></tr><tr><td align="center">op</td><td align="center">✅</td><td>Operation: Type of events {deploy, mint, transfer}</td></tr><tr><td align="center">url</td><td align="center">✅</td><td>The original document of the inscription for image location</td></tr><tr><td align="center">from</td><td align="center">✅</td><td>Identifier of the lenders with {.sats} domain</td></tr><tr><td align="center">to</td><td align="center">✅</td><td>To Address: States the borrowers address</td></tr><tr><td align="center">expire</td><td align="center">✅</td><td>Set the deadline (e.g. 21 MAR 2023), the valid time default to "23:59 UTC"</td></tr><tr><td align="center">vfy</td><td align="center">✅</td><td>Verify: Encrypted code by SHA-256 Algorithm for a further action</td></tr></tbody></table>

## Suggestions

It is welcomed to provide recommendations for better improvement upon the structure, designs, rules, or compression issues it poses. For traceability json {} is required, as well as the minimum required information to satisfy one of the functions.

## Ending

The standard is still updating. Thank you for the time to read the whole passage. You are going to be one of the historical witnesses in Bitcoin development. Please bear in mind that these might be worthless, but the journey should be priceless.&#x20;

## Extention  of Supporting Standard

{% embed url="<https://ivantkf.gitbook.io/brc-721a/>" %}

> BRC-5058 Standard: Locking Capability of BRC-721 / BRC-1155
>
> Coming Soon
