# Subscriptions

On Grateful, a giver can start a subscription from one profile to another, but only if they have permission from the giver's profile. The giver gets to choose which vault they want to subscribe to and at what rate.

The rate determines how much is transferred from one profile to another every second. The rate unit is measured in `1e-20` per second.

> For example:
>
> If I subscribe with a rate of `38580246913580`, it means that in a month, the creator will end up receiving one complete asset. We figure this out by multiplying the rate by the approximate number of seconds in a month (`2592000`), which gives us roughly `1e20`.

In Grateful, the actual rate used for a subscription might be different from what the user provided. It depends on the chosen vault. If the vault generates rewards over time, the share-to-asset ratio may change. To calculate the subscription rate, it converts the asset rate into a share rate using a function called "convertToShares" from the ERC4626 standard.

<figure><img src="/files/vKLlQ5C6cWnwPTnAAxsv" alt=""><figcaption><p>Subscribe flow</p></figcaption></figure>

When a subscription is created for the first time, an NFT is minted. This NFT represents the unique link between a giver profile and a creator profile. It keeps track of how long the subscription has been active and is shown as an SVG. If a subscription already exists, it only updates the information with the new subscription values.

Users must take into account that if a profile is transferred, the subscription NFTs associated to that profile won't. Each subscription is an unique NFT that must be transferred on their own (or batching transfers).

<figure><img src="/files/Ow4jUfJWNkDByn0Pqefc" alt=""><figcaption><p>General subscription flow</p></figcaption></figure>

A giver can choose to end their subscription from one profile to another, but only if they have permission from the giver's profile. They can unsubscribe whenever they want.

<figure><img src="/files/Vk0EB5v5Ltev7MBpdk83" alt=""><figcaption><p>Unsubscribe flow</p></figcaption></figure>


---

# 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://grateful.gitbook.io/docs/subscriptions.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.
