---
# System prepended metadata

title: DWN Messages

---

# DWN Messages

## Legend
| Symbol                  | Description |
| ----------------------- | ----------- |
| :heavy_check_mark:      | Required    |
| :eight_spoked_asterisk: | Optional    |
| :x:                     | Prohibited  |
| :question:              | Undecided   |


## Messages
| Message                | Auth                     | Capabilities                  | Data               |
|:---------------------- | ------------------------ | ----------------------------- | ------------------ |
| **PermissionsRequest** | :heavy_check_mark:[^pra] | :x:                           | :x:                |
| **PermissionsGrant**   | :heavy_check_mark:[^pga] | :x:                           | :x:                |
| **PermissionsQuery**   | :heavy_check_mark:       |                               | :x:                |
| **PermissionsRevoke**  |                          |                               | :x:                |
| **CollectionsWrite**   | :heavy_check_mark:       | :heavy_check_mark:            | :heavy_check_mark: |
| **CollectionsQuery**   | :x:                      | :eight_spoked_asterisk:[^cqc] | :x:                |
| **CollectionsCommit**  | :heavy_check_mark:       | :heavy_check_mark:            | :heavy_check_mark: |
| **CollectionsDelete**  |                          |                               | :x:                |
| **ThreadsCreate**      | :heavy_check_mark:       | :x:                           | :heavy_check_mark: |
| **ThreadsReply**       |                          | :x:                           | :heavy_check_mark: |
| **ThreadsQuery**       |                          |                               | :x:                |
| **ThreadsClose**       |                          |                               | :x:                |
| **ThreadsDelete**[^td] |                          |                               | :x:                |

[^pra]: Signature of grantee 
[^pga]: Signature of granter
[^cqc]: No capabilities returns all published data (e.g. `published: true`)
[^td]: :question: can you delete a thread in someone else's DWN?



## Questions
- Does this look right?
```javascript=
const grant = {
    descriptor: {
        method: "PermissionsGrant",
        grantedBy: "did:ex:alice",
        grantedTo: "did:ex:bob",
        scope: {
            method: "CollectionsWrite",
            schema: "https://schema.org/MusicPlaylist"
        },
        conditions: {
            delegation: true
        }
    },
    authorization: JWS(grantedByKey, { descriptorCid })
};

const msg = {
    descriptor: {
        method: 'CollectionsWrite',
        schema: "https://schema.org/MusicPlaylist",
        dataCid: CID(data)
    },
    data: 'chicken parfait',
    authorization: JWS(invokerKey, { descriptorCid, pgCid }),
    permissionsGrant: pg
}
```
