Let me try to clarify this a little better (just for my understanding). We have
- Stake Pool Operator (SPO)
- Pool Owners
- Delegators
The SPO is also an owner. So we have two stake.vkeys registered.
#1 --pool-owner-stake-verification-key-file /var/cardano/local/keys/${OWNER_TDI}/stake.vkey
#2 --pool-owner-stake-verification-key-file /var/cardano/local/keys/${OWNER_SSI}/stake.vkey
Now lets take this as an example
The SPO has pledged 55k and owner B has pledged 200k. There has nothing else been delegated.
For an owner’s margin reward I would calculate …
f - delegator reward
c - fix margin (cost)
m - margin
o - owner stake
p - reward stake
f * m * o / p
A: 717.62 * 0.02 * 55 / 255 => 3.10
B: 717.62 * 0.02 * 200 / 255 => 11.25
This leaves a reward to be distributed proportionally among all delegators (including owners) of …
717.62 - 14.35 => 703.27
Because there aren’t any other delegators, we have …
A: 703.27 * 55 / 255 => 151.82
B: 703.27 * 200 / 255 => 551.45
Because A is also the SPO we get in total …
A: 3.10 + 151.82 + 340 => 494.91
B: 11.25 + 551.45 => 562.71
This has been payed out by the network automatically here and here.
There is a slight discrepancy, that the network has payed out 494.77
instead of 494.91
which I attribute to rounding errors because o
and p
might not have been the exact numbers from above.
Because both owners have pledged all their respective stake there is no difference in pledge and active stake. I read that there is a slight advantage of having a larger pledge, which is not accounted for in the simple calculations above. Perhaps you could say a few words about what difference pledging lower amounts would have made?
The important part for me is that (as an SPO) I don’t have to handle reward payout and the network is handling this just fine.
It is a little problematic however, that I also need to have the stake.skey for B, which gives me access to rewards that are not mine. As mentioned above, I need that key to sign the pool’s registration certificate Tx.
Perhaps that HW wallet thing can provide a solution for that - I’ll look into it and post here when I find something.
Thank you again for your time