Token Details

VOW is a token on the Ethereum Network.

Its contract address is : 0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb

You can view full data on Etherscan

Etherscan Link

The project has upgraded all its contracts for all vCurrencies and governance in order to operate with the new Voucher Ledger. You can read more about how the various contracts operate below.

Overview

  • The VSC Governor contract replaces all existing VSC tokens and their Token Managers, streamlining VSC management within the VOW ecosystem.

  • Region IDs have been introduced to make referencing the new VSC tokens easier.

  • Multi-step procedures that previously required manual repetition across regions have been replaced with single actions that can be executed simultaneously across multiple regions.

  • The Provable oracle system has been replaced with Chainlink price feeds where available, providing connected regions with free, real-time exchange rate data.

  • For regions without Chainlink integration, a new, optimized method for batch updating rates is provided.

  • New VSC regions can now be deployed and incorporated via a single command, significantly reducing deployment costs and complexity.

  • The VSC Governor contract is fully upgradeable, enhancing security and enabling future improvements and additional features.

  • The underlying VSC token implementation is also fully upgradeable, with changes being applied simultaneously across all regions.

VSC Governor Owner Functions

addRegion

Creates a new VSC region, deploying and integrating its token contract into the ecosystem.

liquidateMerchant

Callable only by the MVD for a region when a merchant is deemed to have defaulted. This function takes control of any VOW tokens locked against the merchant and uses them to acquire as many of the region's VSC tokens as possible via Uniswap, before subsequently burning them all.

setMVD

Sets the MVD for the specified region ID, locking whatever VOW deposit is required from them in the contract.

removeMVD

Removes the MVD for the specified region ID, returning their original VOW deposit, minus any forfeiture levied by the community (default is zero).

transferOwnership

Changing ownership of the VSC Governor is a two-phase process for added security:

  1. The current owner initiates the process by calling transferOwnership.

  2. The new owner completes the process by calling acceptOwnership.

updateConfig

Selectively updates the following contract values:

  • The address allowed to set the internal rates

  • The max permitted freshness of the internal rates

  • The value that determines when the VOW to USD Rate should be refreshed

  • The value determining the maximum permitted difference between the last observed rate and the rate calculated at the time of the transaction

updateDeposit

Updates the VOW deposit required to become an MVD for the specified region ID(s).

updateFeed

Updates the address of the fiat price feed for the specified region ID.

updateOwner

Updates the owner address for the specified region ID(s).

updatePauseTransfers

Pauses or unpauses token transfers and burns for the specified region ID(s).

updateTransferBurn

Updates the proportion of VSC burned on transfers between non-whitelisted accounts for the specified region ID(s).

updateTransferBurnWhitelist

Adds or removes an account from the transfer burn whitelist for the specified region ID(s).

updateVSCMintOnLock

Updates the multiplier determining the amount of VSC to be minted upon a merchant lock for the specified region ID(s).

updateVOWToVSCWhitelist

Adds or removes an account from the VOW to VSC conversion whitelist for the specified region ID(s).

Note: For convenience, passing an empty array applies an update to all regions.

Read Methods

previewLiquidateMerchant

Previews the expected result of a merchant liquidation.

regions

Returns the following data for all VSC regions:

  • Region ID

  • Token name

  • Token symbol

  • Token contract address

vscPerVOW

Returns the current number of VSC tokens equivalent to one VOW for the specified region ID.

Exchange Rates

VOW to VSC exchange rates are calculated whenever a VOW to VSC exchange (burn & mint), a merchant lock transaction, or a call to vscPerVOW occurs. The rates depend on VOW's current USDT value, along with the current fiat USD rate for the region. The VOW USDT price is retrieved directly from its Uniswap V2 pair. The source of the fiat rate depends on the region:

  • Regions with Chainlink integration use their Chainlink price feed for the current rate.

  • Regions without Chainlink use the latest rate stored in the VSC Governor, which must be periodically updated by the owner.

A helper task is provided to retrieve live rates for all non-Chainlink regions and batch-update the VSC Governor with any new rates:

npx hardhat --network sepolia updateRates --governor <VSC governor address>

VOW to VSC and Merchant Locking/Unlocking

The VSC Governor serves as the central point for users, MVDs, and merchants to send tokens to either exchange VOW for VSC or lock/unlock merchant accounts.

Exchanging VOW for VSC

Any whitelisted account can exchange VOW for VSC by sending VOW tokens to the Governor. The Governor will burn the VOW tokens and mint an equivalent amount of VSC tokens. The exact amount depends on the region's USD fiat exchange rate and the Uniswap VOW/USDT price at the time of the transaction.

Merchant Locking and Unlocking

Locking

MVDs can lock VOW against their merchants to generate new VSC for circulation on tier 2. To lock, the MVD sends VOW to the Governor, specifying the required VSC token and the merchant's address in the data payload. The VSC Governor will then:

  • Mint a multiplied amount of the specified VSC at the current market rate.

  • Trigger a lift of the minted VSC to the MVD's illiquid wallet on tier 2 via the connected VOW bridge.

  • Register the locked VOW against the merchant, along with the amount of VSC required to unlock it.

Unlocking

Any account can unlock a VOW position by sending the correct amount of VSC to the Governor, specifying the merchant in the data payload. The VSC will be burned, and the locked VOW will be released to the associated merchant.

Testing

All tests are executed against the current state of the Ethereum mainnet, using the real-world Uniswap, Chainlink, VOW Bridge, VOW, and USDT token contracts.

During testing, live market data is collected from Mixin and CoinGecko's APIs to verify the VSC Governor's calculations against live fiat and crypto exchange rates.

Contract gas consumption is reported at the end.


Ethereum Smart Contract Deployment : 24th September 2024

This section contains the latest deployment details of the Ethereum smart contracts as of 24th September 2024.

Contracts

Base Implementation

Governance Contract

Regions and Currencies

The following regions have been set up with corresponding contracts:

The following contracts and tokens have been depreciated or will soon not be in use.

The old contracts used in the project were / are:

Token
Function
Contract Address

vGBP

Token

0x6364d4f283601d4Beb170DcDF0080b84E056389A

vGBP

OrderBooks

0x5369e76EaDf5044fE2250F093B7C42AeE09c32E6

vZAR

Token

0x0E7F502E5e4FBa9C65c59989B68D31E5F5093F50

vZAR

OrderBooks

0x96b686f9e6CE837F8dfB541969F14AD553863684

vDKK

Token

0xBB337937b31eF383d6782BFA9E88A131B7Fcf531

vDKK

OrderBooks

0xF62FDf31811FAECAF828E86e534b70335a706D76

vEUR

Token

0xbf686dA68323d0425f2B0D7e33d3fA11B1239132

vEUR

OrderBooks

0x03Fd73Aa892C1a81fFF973EfE7fBf6Cc338D734C

vINR

Token

0x36eFD50912E8BBDCfdDB71344cA1C28B53347BC0

vINR

OrderBooks

0x3348364081C58FE4B2f10420d7385BC171379d18

vUSD

Token

0x0fc6C0465C9739d4a42dAca22eB3b2CB0Eb9937A

vUSD

OrderBooks

0x071d1bcA10aF031f2f32B610B05581fa60A1caf1

vZWL

Token

0x663cBf0F8ac632ff6eEa2A249e2f6e147e65a04B

vZWL

OrderBooks

0xDC6E053851FbfA37ABAe89e262EA6Ac88BC89607

Binance Chain

Token
Function
Contract

VOW

Token

0xF585B5b4f22816BAf7629AEA55B701662630397b

vUSD

Token (Old)

0xc0D8DaA6516BaB4eFCe440860987E735BaB44160

Decentralized Bridge

ETH to BNB

0xa7C14010afA616fa23A2Bb0A94d76Dd57dde644d

Core Uniswap Pool Addresses

VOW - V$ Pool
VOW - ETH Pool
VOW - USDT Pool

Pancake Swap Addresses

VOW / vUSD Swap

Last updated