Consensys/UniversalToken

Escrow model

onigiri-x opened this issue · 5 comments

Hi there,

Looking for some help/suggestions around escrow of tokens.

Right now, we have a model where we keep track of tokens in centralized database during a "fundraising round"

We are not using DVP tool right now, because it introduces extra gas cost and the tokens must be minted first before using it. DVP looks useful for secondary trading, but this is primary issuance. And because a fundraising round there is a scenario where an investor requests a refund, or where soft cap is not reached and the sale is cancelled - we don't want to waste gas cost on a cancelled fundraising round. Also using DVP seems to require that the tokens are minted beforehand, this effecting the cap table of already existing tokens.

So, looking for a suggestion on how to do an initial "escrow" of tokens before they are distributed. Right now we are leaning towards an IBFT network hosted by Hyperledger Besu, where we would have a 1400 contract that just has "escrowed tokens". When the fundraising round completes- the tokens are burned on one network and minted on main network.

Thanks
Victor

For fundissuer.sol, is this meant to be used all on the main net? Would fundissuer be used in the case where the asset value is unknown?

Hi @victorwiebe ,
I think a good approach is to create a "primary issuance DVP" contract, where tokens are minted by the contract when payment is sent on-chain.

To recap, for the "primary issuance DVP":

  • only the cash leg is on-chain before the DvP transaction
  • both the cash leg and the asset leg are on-chain after the DvP transaction

While, for the "secondary market DVP":

  • both the cash leg and the asset leg are on-chain before the DvP transaction
  • both the cash leg and the asset leg are on-chain after the DvP transaction

I'll see if we can develop it in the following days and let you know.

Hello @victorwiebe ,
We've been able to develop the "pre-holds" feature in the following commit (56ef66a).
It shall allow to perform the "primary issuance DVP" described in my previous message.
Best
Gauthier

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.