# Examples

Assuming the address: 19Up4xZ4Y6CBhUcXSQZdo7tHaGNYFn7EUj, according to the protocol, its inherent MetaID is: 8a15022dd74648c5158d237f41e544e6097b3f27dcc85788a4b7470c063ed33c

<figure><img src="https://1852888944-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQqzh03Cj3B0aOuGYLJKs%2Fuploads%2FJrolQCW0YR3R17msVVvV%2Fimage.png?alt=media&#x26;token=3dc87829-77fc-421e-8426-6780e6da4c28" alt=""><figcaption></figcaption></figure>

According to the agreement, the following paths are reserved

* **`/info`**: Stores user's basic information such as username and avatar.
* **`/protocols`**: Used for application protocol operations.
* **`/file`**: For file data storage.
* **`/ft`**: For storing user's fungible token (FT) asset actions.
* **`/nft`**: For storing user's non-fungible token (NFT) asset actions.
* **`/follow`**: Stores user's follow list data.

#### 2. Create Username and Avatar

Users can set their username and avatar by constructing **`PIN`** transactions:

1. **Set Username**: User sets their **`name`** to **`Alice`** with the **`path`** as **`/info/name`**.
2. **Set Avatar**: User sets a specific avatar with the **`path`** as **`/info/avatar`**.

Both paths are under the **`/info`** directory, indicating they are part of the user's personal information.

**Set Username**:

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

**Set Avatar**:

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

<figure><img src="https://1852888944-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQqzh03Cj3B0aOuGYLJKs%2Fuploads%2FtYRdSZ3ym9Y4OQGtA179%2Fimage.png?alt=media&#x26;token=5b16f25f-49f8-4823-be86-90a45ed62def" alt=""><figcaption></figcaption></figure>

### Submitting SimpleBuzz Protocol

Assume a user wants to post a **`buzz`**, they need to create and submit a new **`PIN`** in the **`/protocols/simplebuzz`** section.

This adds the **`buzz`** data to the **`/protocols/simplebuzz`** path, indicating it is a record under the user's SimpleBuzz protocol.

```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://1852888944-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQqzh03Cj3B0aOuGYLJKs%2Fuploads%2FrH6WVPD67VrZ4CIcedkx%2Fimage.png?alt=media&#x26;token=f20c31ee-12eb-49ea-a7d5-9ba7f6cd8d64" alt=""><figcaption></figcaption></figure>

### Modification

When performing a **`modify`** operation, use the **`@`** symbol to point to the **`PIN`** to be modified. For example, to modify a specific **`PIN`**, use **`@{PINID}`**.

```jsx
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
```

### Revocation

When performing a **`revoke`** operation, use the **`@`** symbol to point to the **`PIN`** to be revoked. For example, to revoke a specific **`PIN`**, use **`@{PINID}`**.

```jsx
OP_FALSE
OP_IF
	metaid                        
	revoke                           
	@{pinid}                           
	OP_0                                
	OP_0                             
	OP_0             
	OP_0
OP_ENDIF
```


---

# 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.metaid.io/metaid-specification/examples.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.
