# 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


---

# 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://ivantkf.gitbook.io/brc-4907/brc-4907-standard-rental-inscriptions.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.
