Contrived assumptions:
- USD value of 1 ETH is the same as the USD value of 1 ZEC
- Wrapped Service Fee is 10% of order value
- Ethereum network transactions cost 0.1 ETH
- Zcash network transactions are free
- Vault balances are real crypto balances in wallets
- Account balances are abstract balances derived from customer actions
- Starting state
- Wrapped.com has put 5 ETH in their own vault to pay for gas costs
- Wrapped.com has put 5 ETH in the customer's vault to pay for gas costs
- Wrapped.com has 100 ZEC in reserves
Token | Wrapped Vault Balance | Customer Vault Balance | Customer Account Balance |
---|---|---|---|
Zcash | 100 | 0 | 0 |
Wrapped Zcash | 0 | 0 | 0 |
Ether (for gas) | 5 | 5 | 0 |
- Deposit underlying token
- Customer Actions:
- Deposits 10 ZEC into their vault
- Side Effects:
- Customer's vault receives 10 ZEC
- Customer's acccount is credited 10 ZEC
Token | Wrapped Vault Balance | Customer Vault Balance | Customer Account Balance |
---|---|---|---|
Zcash | 100 | 10 | 10 |
Wrapped Zcash | 0 | 0 | 0 |
Ether (for gas) | 5 | 5 | 0 |
- Wrap 10 ZEC
- Customer Actions:
- Executes wrap order of 10 ZEC
- Side Effects
- Customer's account is debited 10 ZEC
- Customer's account is credited 10 WZEC (before fee's)
- Customer's account is debited 1 WZEC -- 10% service fee
- Customer's account is debited 0.1 WZEC -- Ethereum network execution cost (0.1 ETH)
- Customer's vault is minted 8.9 WZEC
Token | Wrapped Vault Balance | Customer Vault Balance | Customer Account Balance |
---|---|---|---|
Zcash | 100 | 10 | 0 |
Wrapped Zcash | 0 | 8.9 | 8.9 |
Ether (for gas) | 5 | 5 | 0 |
- Withdraw wrapped tokens
- Customer Action:
- Withdraws 8.9 WZEC from their vault
- Side Effects:
- Customer's account is debited 8.9 WZEC
- Customer's vault transfers out 8.9 WZEC
- Customer's vault pays 0.1 ETH to pay for WZEC token transfer
Token | Wrapped Vault Balance | Customer Vault Balance | Customer Account Balance |
---|---|---|---|
Zcash | 100 | 10 | 0 |
Wrapped Zcash | 0 | 0 | 0 |
Ether (for gas) | 5 | 4.9 | 0 |
- Starting state
- Wrapped.com has put 5 ETH in their own vault to pay for gas costs
- Wrapped.com has put 5 ETH in the customer's vault to pay for gas costs
- Wrapped.com has 100 ZEC in reserves
Token | Wrapped Vault Balance | Customer Vault Balance | Customer Account Balance |
---|---|---|---|
Zcash | 100 | 0 | 0 |
Wrapped Zcash | 0 | 0 | 0 |
Ether (for gas) | 5 | 5 | 0 |
- Deposit wrapped token
- Customer Action:
- Deposits 10 WZEC into their vault
- Side Effects:
- Customer's vault receives 10 WZEC
- Customer's acccount is credited 10 WZEC
Token | Wrapped Vault Balance | Customer Vault Balance | Customer Account Balance |
---|---|---|---|
Zcash | 100 | 0 | |
Wrapped Zcash | 0 | 10 | 10 |
Ether (for gas) | 5 | 5 | 0 |
- Unwrap 10 WZEC
- Customer Action:
- Executes unwrap order of 10 WZEC
- Side Effects
- Customer's account is debited 10 WZEC
- Customer's account is credited 10 ZEC (before fee's)
- Customer's account is debited 1 ZEC -- 10% service fee
- Customer's account is debited 0.1 ZEC -- Ethereum network execution cost (0.1 ETH)
- Customer's vault is burned out of 8.9 WZEC
- Wrapped vault internally transfers 8.9 ZEC to customer vault (should we / do we need to do this?)
Token | Wrapped Vault Balance | Customer Vault Balance | Customer Account Balance |
---|---|---|---|
Zcash | 91.1 | 8.9 | 8.9 |
Wrapped Zcash | 0 | 0 | 0 |
Ether (for gas) | 5 | 5 | 0 |
- Withdraw underlying tokens
- Customer Action:
- Withdraws 8.9 ZEC from their vault
- Side Effects:
- Customer's account is debited 8.9 ZEC
- Customer's vault transfers out 8.9 ZEC
Token | Wrapped Vault Balance | Customer Vault Balance | Customer Account Balance |
---|---|---|---|
Zcash | 91.1 | 0 | 0 |
Wrapped Zcash | 0 | 0 | 0 |
Ether (for gas) | 5 | 5 | 0 |