Fees
Caller Fees
Since subscriptions are an open ended obligation of the subscriber with no end date unless cancelled, there must be a method of extracting fees from either the subscriber or the provider on an ongoing basis. But how is this done?
As described in failed transactions the best way to pay fees to the caller is by having a reserve of ERC-20 tokens per subscriber per subscription. This reserve serves the dual purpose of both paying the caller fees for the periodic remittance of transactions and disincentivizing actions contrary to the protocol.
What is the amount of the caller fee?
Currently the caller fee is different based upon the average gas levels of the chain the contract is on. The fee can be adjusted by the protocol. The fees currently are as follows:
Chain | Caller Fee | System Fee | Total Fee |
---|---|---|---|
Base Sepolia | 0.25% | 0.25% | 0.5% |
Caller Fee Reserve
When is it filled?
The reserve for subscribers is filled at two points in time:
- When a user first subscribes
- When a user's reserve becomes less than the caller fee
Is it the same amount for each subscription?
The reserve is filled at different amounts based upon the frequency of the subscription and whether this is the first time the user has subscribed:
When the user first subscribes
Frequency | Minimum | In Between | Maximum | Maximum Time Charged |
---|---|---|---|---|
Weekly | Caller Fee | Prorated | Prorated | Prorated |
Monthly | Caller Fee | Prorated | 1/4 Amount | A weeks worth |
Quarterly | Caller Fee | Prorated | 1/12 Amount | A weeks worth |
Yearly | Caller Fee | Prorated | 1/12 Amount | A months worth |
Subsequent fees
Frequency | Amount reserved | Maximum Time Charged |
---|---|---|
Weekly | Full Amount | A week |
Monthly | 1/4 Amount | A week |
Quarterly | 1/12 Amount | A week |
Yearly | 1/12 Amount | A month |
How are refunds processed?
Depending on the reason for the refund the is sent to different locations based on the following table:
Initiator | Action | Amount | Refunds Sent to |
---|---|---|---|
Subscriber | Fail due to Approval | Partial Caller / Partial Provider | Caller / Provider |
Subscriber | Fail due to low funds | Partial Caller / Partial Provider | Caller / Provider |
Subscriber | Unsubscribes | All remaining | Provider |
Provider | Provider unsubscribers subscriber | All remaining | Subscriber |
Provider | Cancels overall subscription | All remaining on all subscribers | Subscribers |
System Fees
The protocol has the ability to require system fees in order to fund the eventual ongoing development of the protocol.