---
# System prepended metadata

title: Resource Posting

---

# Resource Posting


This pallet commenting on any external resource or entites. This should be something like Disqus, or facebook comments on web pages/

This can be used in many ways:
- NFT market place where you can see what people think of an NFT collection
- To lookup comments on a specifc person e.g. elon musk
- A blockchain exploroere where you can comment on a transaction, smart contract, block, account, or anything.

## Entities
An entity in the context of this pallet is something that you can comment on. 

Examples of entities:
- Http url
- Movie
- NFT
- Token
- Book
- Person
- A specific Tweet
- Transaction
- Block


### Entity Locator

Each entity have a locator sting used to identify it, for example a specific NFT
on moonriver should have the following locator format `ntf::movr::0x255::01` where `0x255` is
collection id, and `01` is the NFT ID/index. If you want to comment on the entire collection
you can locate it using `ntf::movr::0x255`.

:construction: **TODO: Try to search for a format, or make-up a standard**

We should focuse on NFT markts and gov proposals sites.

```
chain://evm:<chain_id>/block:<block_num>
chain://evm:<chain_id>/tx:<tx_hash>
chain://evm:<chain_id>/token:<token_addr>
chain://evm:<chain_id>/account:<account_addr>
chain://evm:<chain_id>/nft:<collection_id>
chain://evm:<chain_id>/nft:<collection_id>/<nft_id>


chain://substrate:<chain_id>/block:<block_num>
chain://substrate:<chain_id>/tx:<tx_hash>
chain://substrate:<chain_id>/token:<token_addr>
chain://substrate:<chain_id>/account:<account_addr>

chain://substrate:<chain_id>/proposal:<account_addr>
chain://substrate:zeitgeist/market:<account_addr>

ipfs://cid

twitter://user:<username>
twitter://tweet:<tweet_id>

http://...
https://...
```

### Structure
`<res_location_type>://<res>/<sub-res>/<sub-res>`

- `res_location_type` represents the type of location this resource is found at. for example if this resource is on-chain its value will be `chain`, if the resource will be on ipfs the value will be `ipfs`.

- `res` represents the resource it self. this field can be nested unders another resource, for example, polygon network itself is a resource, and an nft collection on it it also a resource, and nft item in that collection is also a resource.
    - `chain://evm:0` eth network
    - `chain://evm:0/nft:12` nft collection with id 12
    - `chain://evm:0/nft:12/3` nft with id 3 in the collection


## How this pallet should work?
* Each resource will be represented by a post
* If a user wants to comment on a resource, he comments on the resource's post.
* All of resource posts is located in one space.
* The pallet will provide a way to lookup the post id of any resource, and allow users to create a post for this resource if there's none found already.

## How it will be implemnted on frontend?
We would have two ways of showing comments on any resource:
1. The webapp owners uses our library to show commnets on any specific part of the webapp
2. We devlop a browser extention to inject our comments, for example we inject comments beside a twitter profile.



## First iter
- backend service
    - parse http link and extract uri format
    - create post for this resource if not found


prio