VAP-002 - Create Asset - Tether USD ($USDT)

Title

VAP-002 - Create Asset - Tether USD ($USDT)

Summary

This proposal requests to list Tether USDT ($USDT) as a settlement asset on the Vega Network.

Rationale

  • USDT is the largest stablecoin in the DeFi ecosystem and is widely used across major DeFi protocols.
  • The Name, Symbol & Decimals are all driven by the values of the ERC20 contract so will not be discussed here.
  • Given USDT has 6 decimals and 1 USDT = 1 USD, its conversion to quantum decimals is 1000000
  • The withdrawal delay is set to 1 will act as a buffer in case of a bridge exploit.
  • The lifetime limit is set to $10,000 USD (equivalent) which would be sufficient for alpha mainnet given the high leverage.

New Asset/Update Details:

  • Name = Tether USD
  • Asset symbol = USDT
  • Decimals = 6
  • Quantum = 1000000
  • ERC20 Contract Address = 0xdAC17F958D2ee523a2206206994597C13D831ec7
  • Withdrawal delay threshold = 1
  • Lifetime deposit limit = 10000000000 (i.e, $10,000 USD)

Full Proposal JSON:

{
  "rationale": {
    "title": "VAP-002 - Create Asset - Tether USD ($USDT)",
    "description": "## Summary\n\nThis proposal requests to list Tether USDT ($USDT) as a settlement asset on the Vega Network as discussed in: https://community.vega.xyz/t/vap-002-create-asset-tether-usd-usdt/4239.\n\n## Rationale\n\n- USDT is the largest stablecoin and widely used across DeFi.\n- The Name, Symbol & Decimals are all driven by the values of the ERC20 contract so will not be discussed here.\n- Given USDT has 6 decimals and 1 USDT = 1 USD, its conversion to quantum decimals is 1000000\n- The withdrawal delay is set to 1 to act as a buffer in case of a bridge exploit.\n- The lifetime limit is set to $10,000 USD (equivalent) which would be sufficient for alpha mainnet given the high leverage.""
  },
  "terms": {
    "newAsset": {
      "changes": {
        "name": "Tether USD",
        "symbol": "USDT",
        "decimals": "6",
        "quantum": "1000000",
        "erc20": {
          "contractAddress": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
          "withdrawThreshold": "1",
          "lifetimeLimit": "10000000000"
        }
      }
    },
    "closingTimestamp": 1684170000,
    "enactmentTimestamp": 1684195200,
    "validationTimestamp": 1684160000
  }
}
3 Likes

The closing time is Monday 15th 5pm GMT according to https://www.unixtimestamp.com/.

Quantum seems to be interpreted correctly given the specs and asset decimals.

1 Like

@Jubi
Is planned to be VAP-002 or VAP-001?
The title of the post and the suggested proposal differs.

Thanks for the catch it was meant to be VAP-002

Yes this is correct and great to know that I got the quantum stats correct

1 Like

@Jubi the "validationTimestamp": 1684195200 needs to be before closingTimestamp

1 Like

Should be fixed, but I followed the guide in the docs which has validationtimestamp after closing timestamp :slight_smile:

I think the limits for the withdrawal delay need to be zero IIRC. Can you confirm @david?

1 Like

@bill0 1 is actually the smallest number one can choose, but if you are referring to safety in order to trigger a delay so that we have a chance, 24hrs, to review withdrawals 1 would be a safer option indeed.

You would receive the following error if you choose 0
Error: proposal_submission.terms.change.new_asset.changes.source.erc20.withdraw_threshold (must be positive)

It would probably be prudent to set the withdrawalDelayThreshold to 1 in this initial alpha stage - in case there is a bug that gets exploited.

With 1000 USDT it’s possible to submit many withdrawals for 999 USDT and potentially get a lot of funds out rather quick.

1 Like

Right, so the point here is that we want every withdrawal to be subjected to the delay. Otherwise an adversary could just submit thousands of small transcactions and drain the bridge anyway.

I think 1 is okay, because gas on Ethereum renders the kind of exploit described above unfeasible.

2 Likes

@Jubi in case you want it to be more easy to read you could use something like this, attached an image on how that would look.

"description": "## Summary\n\nThis proposal requests to list Tether USDT ($USDT) as a settlement asset on the Vega Network as discussed in: https://community.vega.xyz/t/vap-002-create-asset-tether-usd-usdt/4239.\n\n## Rationale\n\n- USDT is the largest stablecoin and widely used across DeFi.\n- The Name, Symbol & Decimals are all driven by the values of the ERC20 contract so will not be discussed here.\n- Given USDT has 6 decimals and 1 USDT = 1 USD, its conversion to quantum decimals is 1000000\n- The withdrawal delay is set to $1,000 which still provides some freedom for withdrawals but is also small enough to act as a buffer in case of a bridge exploit.\n- The lifetime limit is set to $10,000 USD (equivalent) which would be sufficient for alpha mainnet given the high leverage."

For safety in case of the bridge export that you referred to, using 1 to trigger a 24 hr delay would be a safer route to go during alpha mainnet.

Technically this proposal does look to be correct.

2 Likes

Finally, the real deal is the on-chain governance part, so if ppl are happy let’s see what the community will say in the on-chain vote.

1 Like

Thanks for the feedback everyone, I’ve adjusted both VAP-002 and VAP-001 to have a withdrawalDelayThreshold to 1. I will also proceed with posting this!

1 Like

I have a question: Is there a withdraw limit in Alpha mainnet? Or just withdrawal delay

  • Lifetime deposit limit = 10000000000 (i.e, $10,000 USD)
    Does that mean users can only deposit up to 10K or is this the maximum per deposit?

Only deposit 10k but you can whitelist yourself and you can update the asset at a later point.

voting is live: Vega Governance dApp

1 Like

:rocket:

Checking things again on the actual submitted proposal

:rocket:

It’s a pretty tight closing time (4am BST) so I am curious to see whether we get enough votes.

3 Likes