Let's imagine each user's KOIN balance is divided into full-mana KOIN and depleted KOIN.
Currently only full-mana KOIN can be transferred; depleted KOIN cannot.
This should remain the default, to ensure the best possible user experience (i.e., able to transact immediately) when getting KOIN from exchanges or non-experts who just do a transfer with default settings.
However I envision it's quite possible to implement a separate operation (or perhaps flags on the existing transfer operation) like this:
message transfer_extended_arguments {
bytes from;
bytes to;
// Number of full-mana KOIN to send
uint64 value_full;
// Number of depleted KOIN to send
uint64 value_depleted;
// If true, fail if there's insufficient full-mana KOIN
// If false, use depleted KOIN instead to make up the deficiency if possible
bool full_is_exact;
// If true, fail if there's insufficient depleted KOIN
// If false, use full-mana KOIN instead to make up the deficiency if possible
bool depleted_is_exact;
}
Anything else?
The non-transferability of depleted KOIN may provide a systemically important economic incentive to hold KOIN.
This proposal may disrupt that incentive.
Therefore, further analysis of the economic implications may be needed before implementing this feature.
Is there an existing issue for this?
New feature
Let's imagine each user's KOIN balance is divided into full-mana KOIN and depleted KOIN.
Currently only full-mana KOIN can be transferred; depleted KOIN cannot.
This should remain the default, to ensure the best possible user experience (i.e., able to transact immediately) when getting KOIN from exchanges or non-experts who just do a transfer with default settings.
However I envision it's quite possible to implement a separate operation (or perhaps flags on the existing transfer operation) like this:
Anything else?
The non-transferability of depleted KOIN may provide a systemically important economic incentive to hold KOIN.
This proposal may disrupt that incentive.
Therefore, further analysis of the economic implications may be needed before implementing this feature.