# 一些例子

假設Address：19Up4xZ4Y6CBhUcXSQZdo7tHaGNYFn7EUj，根據協議，其自帶的MetaID：8a15022dd74648c5158d237f41e544e6097b3f27dcc85788a4b7470c063ed33c

```jsx
OP_FALSE
OP_IF
	metaid  
	init  
	/     
	0      
	OP_0   
	OP_0   
	OP_0   
OP_ENDIF
```

<figure><img src="https://content.gitbook.com/content/NHx0f4Bxw8OTbRs9kele/blobs/ePyhCG2522phI7DhKtfO/image.png" alt=""><figcaption></figcaption></figure>

按協議約定，保留以下 `path`：

* `/info`：用於存儲用戶的基本資訊，如用戶名、頭像等。
* &#x20;`/protocols`：用戶可以在此進行應用協議操作。
* &#x20;`/file`：用於文件數據存儲。
* &#x20;`/ft`：用於存儲用戶的 ft 資產行為。
* &#x20;`/nft`：用於存儲用戶的 nft 資產行為。
* &#x20;`/follow`：用戶關注列表數據存於此。

#### 2. 創建用戶用戶名字和頭像

用戶可以通過構建 **PIN** 交易設置自己的姓名和頭像：

* 設置用戶名：用戶要為自己的 `name` 設定值為 Alice，其 `path` 為 `/info/name`。
* 設置頭像：用戶為自己的 `avatar` 設置某一個特定的頭像，其 `path` 為 `/info/avatar`。

以上 `path` 都位於 `/info` 目錄下，表明它們是用戶的個人資訊。

設置用戶名稱：

```jsx
OP_FALSE
OP_IF
	metaid  
	create     
	/info/name 
	0          
	OP_0       
	OP_0      
	Alice      
OP_ENDIF
```

設置用戶頭像：

```jsx
OP_FALSE
OP_IF
	metaid            
	create           
	/info/avatar      
	0                 
	OP_0             
	image/jpg;binary  
	<pfp data>        
OP_ENDIF
```

<figure><img src="https://content.gitbook.com/content/NHx0f4Bxw8OTbRs9kele/blobs/xneC5xCDHFgwYaJmikDZ/image.png" alt=""><figcaption></figcaption></figure>

### 提交 SimpleBuzz 協議

假設用戶想發一個 `buzz`，他需要在 `/protocols/simplebuzz` 部分創建並提交一個新的 `PIN`。

這樣，這個 `buzz` 數據就被添加到了 `/protocols/simplebuzz` 路徑下，表示它是該用戶在 SimpleBuzz 協議下的一條記錄。 OP\_FALSE

```jsx
OP_FALSE
OP_IF
	metaid                           
	create                           
	/protocols/simplebuzz            
	0                                
	0                               
	application/json;utf-8                
	{"content":"Hello bitcoin world!","contentType":"text/plain","createTime":1710741614716,"quoteTx":""}     
OP_ENDIF
```

<figure><img src="https://content.gitbook.com/content/NHx0f4Bxw8OTbRs9kele/blobs/188dw2d7fPA2alKEnWva/image.png" alt=""><figcaption></figcaption></figure>

### 修改

在進行 `modify` 操作時，需要使用 `@` 符號來指向要進行操作的 `PIN`。例如，如果我們要修改一個特定的 `PIN`，我們可以使用 `@{PINID}`。

```json
OP_FALSE
OP_IF
	metaid                           
	modify                          
	@{pinid}                       
	0                               
	0                             
	application/json;utf-8               
	{"content":"Hello bitcoin world!!!!!!!","contentType":"text/plain","createTime":1710741614716,"quoteTx":""}     
OP_ENDIF
```

### 廢棄

在進行 `revoke` 操作時，需要使用 `@` 符號來指向要進行操作的 `PIN`。例如，如果我們要廢棄一個特定的 `PIN`，我們可以使用 `@{PINID}`。

```c
OP_FALSE
OP_IF
	metaid                        
	modify                           
	@{pinid}                           
	OP_0                                
	OP_0                             
	OP_0             
	OP_0
OP_ENDIF
```
