One transaction to distribute to any number of receivers with a fixed gas cost
Alice can distribute funds to any number of recipients, at a fixed gas cost, based on pre-determined proportions (units)
Recurring one-to-many distributions are hard to scale; the more receivers there are, the more transfers must be done, which runs up gas costs.
An IDA makes recurring one-to-many distributions scalable. It does so by letting a sending account assign proportions to many receiving accounts and distribute tokens to them on the basis of the set proportions in a single transaction at a fixed gas cost. Here's how it works 👇
1. First, a sender (called a "publisher") publishes an IDA index which will work like a channel organizing how Super Tokens will proportionally distribute to receivers (called "subscribers").
2. Then, the publisher can set proportions for various subscriber accounts under the IDA Index. This is done by issuing units to the IDA Index which work like distribution shares. The more units an account has relative to other receivers, the more it will receive of each distribution.
3. When Super Tokens are distributed through the IDA Index, every subscriber will instantly receive tokens in proportion to the amount of units they have over the total outstanding units. This is done all at once with a fixed gas cost.
- IDA Index: A channel made by a publisher account to distribute Super Tokens to any amount of receivers on a proportional basis.
- Distribution: Takes the specified amount of Super Tokens from the sender's account and distributes them to all receivers.
- Units: Dictate the proportion of Super Tokens distributed through an index that a subscriber is to receive. They work like distribution shares. Receivers get Super Tokens sent through the IDA index in proportion to the units issued to them divided by total units issued for the index.
- Publisher: The sender. Creates the IDA index and issues units to receivers
- Subscribers: The receivers. Accounts that are given units to an IDA index and are able to receive Super Tokens distributed through it.
After publishing an index, a publisher can begin issuing units to subscribers. A subscriber's share of Super Tokens distributed through the index is equal to amount of shares owned divided by total amount of shares issued.
When a distribution is called, the publisher's Super Token balance falls by the total distribution amount while the receivers' balances rise by the transfer amount multiplied by the fraction of the total outstanding distribution shares they each respectively own.
Calculating the current balance of an account subscribed to one or many IDA Indices.
1. Account A publishes an IDA Index
2. Account A issue's 5 units to Account X, 10 units Account Y, and 15 units to Account Z.
3. Account A distributes 500 USDCx through the IDA Index
4. Account A updates Account Z to 10 units
5. Account A distributes 500 USDCx through the IDA Index